-
카테고리
-
세부 분야
블록체인
-
해결 여부
해결됨
예제 소스 질문 입니다.
21.08.06 21:03 작성 조회수 315
1
답변을 작성해보세요.
1
Kyung-il In
질문자2021.08.07
너무 감사합니다.
저도 구글 검색을 통해 여러가지를 시도해봤는데 위 가이드로 다시 시도해보겠습니다.
제가 찾은 답은 "ethereumjs-tx": "^1.3.7", 버전을 내리는 거 였습니다.
버전을 내리고 소스 수정하니 동작하네요.. 답변 너무 너무 감사합니다. 알려주신 방법으로도 다시 해보겠습니다.
감사합니다.
coldmind
지식공유자2021.08.08
버전을 내리는 것은 바람직하지 않습니다. 이더리움은 주기적으로 하드포크되면서 변경되는 부분들이 생깁니다. ethereumjs도 이렇게 변경된 것들을 반영하여 업그레이드가 되는데 계속 이전 버전을 쓸 수는 없습니다. ethereumjs는 패키지명이 @ethereumjs로 바뀌고 버전이 3.x.x까지 올라간 상태입니다.
다른 라이브러리도 마찬가지 입니다. 이더리움 트랜잭션 부분도 변경 사항이 생기고 그에 따라서 트랜잭션을 생성해줄 때도 그런 점들을 반영해주어야 할 겁니다.
Kyung-il In
질문자2021.08.09
네 저도 버전을 내리는건 바람직하지 못하다고 생각합니다. 하도 안되서 구글링을 통해 찾은 답이 내리는거라 해본거에요 알려주신 내용으로도 작업을 했어나 동일한 오류가ㅜ발생되어 몇일 더 해봐야할거 같네요..
주말에 하이퍼레저 베수 세팅하느라 더 자세히 하지 못했네요. 선생님의 판테온강의 최고네요!! 판테온 강의 다 보고 베수 세팅 다 했습니다.이제 디앱 트랜잭션 발생하면 실습이 완료 될고 같아요 😀😀
감사합니다
1
coldmind
지식공유자2021.08.07
Geth에 직접 테스트하려면 코드를 변경해야 할 것 같습니다. 일단 서버측에서 서명할 때 서명 개인키를 확인해보시고... setTx 에 const privateKey = Buffer.from(...) 부분입니다.
가나슈는 개발용이라서 그런지 모르겠는데 트랜잭션 정보가 부실(?)해도 그냥 처리되는 것 같습니다. 😅 그래서 다음과 같이 변경해줘야 할 듯 싶습니다.
우선 ethereumjs-common 패키지를 설치합니다(deprecated된 패키지이지만 강좌가 만들어진 시점을 기준으로 하겠습니다).
https://www.npmjs.com/package/ethereumjs-common
그리고 eth.controller.js 에 있는 const tx = new ethTx(txObject); 부분을 다음과 같이 수정합니다.
const Common = require('ethereumjs-common').default;
...
const local = Common.forCustomChain(
'mainnet',
{
name: 'local',
networkId: 444,
chainId: 444
},
'petersburg'
)
const tx = new ethTx(txObject, {common: local});
전체 소스는 다음 링크를 참조하세요.
https://gist.github.com/swkim109/e3fcdb45cf19aa9c16d9c2ec60a0bb5e
답변 2