inflearn logo
강의

Course

Instructor

Blockchain Dapp Ethereum Transaction

예제 소스 질문 입니다.

Resolved

468

Kyung-il In

16 asked

1

안녕하세요! 저번에 문의한 내용에 대한 답변 너무 너무 감사합니다.
이번에도 하나 더 질문 드립니다.
로컬pc에서 가나슈어를 이용하여 테스트하면 정상적으로 동작합니다.
하지만 서버에 geth설치 후 실행하면 3번째 setTx를 이용하여 구현한 부분이 에러가 나네요!
이것저것 로그를 찍어보고 있는데요
 Returned error: invalid sender <-- 이런 오류가 발생되네요.. 혹시 어떤 오류 인지 아시는지요~
전체 오류 로그
txCount ==>113
from ==>0xE9bb502a7150d5326bE9a16BAA9aada75a644c4b
privateKey ==>
������v��     �t��ʥ%m�%� }��<
address ==>0xd617FB0b6ba3f3855c903a73225DCbD4511E9Fd1
data ==>0x60fe47b100000000000000000000000000000000000000000000000000000000000085c2
verifySignature =>true
XshellError: Returned error: invalid sender
    at Object.ErrorResponse (/home/dapp_tx/node_modules/web3-core-helpers/lib/errors.js:28:19)
    at /home/dapp_tx/node_modules/web3-core-requestmanager/lib/index.js:302:36
    at XMLHttpRequest.request.onreadystatechange (/home/dapp_tx/node_modules/web3-providers-http/lib/index.js:98:13)
    at XMLHttpRequestEventTarget.dispatchEvent (/home/dapp_tx/node_modules/xhr2-cookies/dist/xml-http-request-event-target.js:34:22)
    at XMLHttpRequest._setReadyState (/home/dapp_tx/node_modules/xhr2-cookies/dist/xml-http-request.js:208:14)
    at XMLHttpRequest._onHttpResponseEnd (/home/dapp_tx/node_modules/xhr2-cookies/dist/xml-http-request.js:318:14)
    at IncomingMessage.<anonymous> (/home/dapp_tx/node_modules/xhr2-cookies/dist/xml-http-request.js:289:61)
    at IncomingMessage.emit (events.js:388:22)
    at endReadableNT (internal/streams/readable.js:1336:12)
    at processTicksAndRejections (internal/process/task_queues.js:82:21) {
  data: null
}
  InternalServerError: Internal Server Error
      at Object.throw (/home/dapp_tx/node_modules/koa/lib/context.js:97:11)
      at setTx (/home/dapp_tx/src/api/eth/eth.controller.js:105:18)
      at runNextTicks (internal/process/task_queues.js:60:5)
      at listOnTimeout (internal/timers.js:524:9)
      at processTimers (internal/timers.js:498:7)
      at async bodyParser (/home/dapp_tx/node_modules/koa-bodyparser/index.js:86:5)

blockchain dapp

Answer 2

1

Kyung-il In

너무 감사합니다.

저도 구글 검색을 통해 여러가지를 시도해봤는데 위 가이드로 다시 시도해보겠습니다.

제가 찾은 답은   "ethereumjs-tx": "^1.3.7", 버전을 내리는 거 였습니다.

버전을 내리고 소스 수정하니 동작하네요.. 답변 너무 너무 감사합니다. 알려주신 방법으로도 다시 해보겠습니다.

감사합니다.

0

coldmind

버전을 내리는 것은 바람직하지 않습니다. 이더리움은 주기적으로 하드포크되면서 변경되는 부분들이 생깁니다. ethereumjs도 이렇게 변경된 것들을 반영하여 업그레이드가 되는데 계속 이전 버전을 쓸 수는 없습니다. ethereumjs는 패키지명이 @ethereumjs로 바뀌고 버전이 3.x.x까지 올라간 상태입니다. 

다른 라이브러리도 마찬가지 입니다. 이더리움 트랜잭션 부분도 변경 사항이 생기고 그에 따라서 트랜잭션을 생성해줄 때도 그런 점들을 반영해주어야 할 겁니다. 

0

Kyung-il In

네 저도 버전을 내리는건 바람직하지 못하다고 생각합니다. 하도 안되서 구글링을 통해 찾은 답이 내리는거라 해본거에요 알려주신 내용으로도 작업을 했어나 동일한 오류가ㅜ발생되어 몇일 더 해봐야할거 같네요.. 

주말에 하이퍼레저 베수 세팅하느라 더 자세히 하지 못했네요. 선생님의 판테온강의 최고네요!!  판테온 강의 다 보고 베수 세팅 다 했습니다.이제 디앱 트랜잭션 발생하면 실습이 완료 될고 같아요 😀😀

감사합니다 

1

coldmind

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

강의자료 요청드립니다.

0

47

1

3-3 트랜잭션이란 무엇인가 강의자료는 없나요?

0

89

2

ova 구글 드라이브 404

0

46

1

강의 자료 요청 및 오류 질문

0

106

2

질문이요

0

88

1

질문이요

0

91

1

[긴급] 전체 소스코드 파일 있었던거 같은데 어디서 받나요?

0

244

2

블록체인 강의

0

178

2

강의내용 질문입니다 메타마스크

0

278

1

localhost 전환이 안됩니다.

0

168

1

민팅한 nft의 판매 등록이 되지 않아요.

0

249

1

metadata를 읽어오지 못해요 ㅠ

0

250

1

React Native 설치 전 단계가 무엇일까요?

0

489

1

시뮬레이터 기종이나 설정은 어떻게 진행해야할까요?

0

383

1

Intel x86 Emulator Accelerator (HAXM installer) 설치가 불가능합니다.

0

783

1

리팩토링 1 강의 getAnimalTokens() 함수 사용 권한 문의

0

261

1

세폴리아 테스트 네트워크

0

441

2

강의 자료 요청!

0

376

2

강좌 코드 다운로드

0

304

1

메타데이터 다운로드 링크가 바뀐거 같습니다.

0

517

2

truffle project 세팅관련

0

302

1

npm run start에러

0

353

1

예제 소스 문의

2

257

1

truffle box는 react를 사용하신건가요?

1

181

1