이번 시간은 이더리움 트랜잭션 전송 및 Transaction에 메세지를 보내는 방법입니다.
포스트는 다음의 순서로 소개됩니다
1. 어카운트 만들기 및 채굴
2. 트랜잭션보내기
3. 트랜잭션 확인
1. 어카운트 만들기
어카운트 만들기와 채굴은 사실 지난 포스팅에서도 언급되었습니다.
어카운트는 다음의 명령어를 이용하여 만들수 있습니다.
personal.newAccount("acoount_name")
한 노드에서도 어카운트는 여러개 만들 수 있으니 원하시는 만큼 계정을 만드시면 됩니다. 저희는 여기서 "eth1" 과 "eth2"의 두개의 어카운트를 생성하였습니다.
채굴은 miner.start() 명령어를 통해 채굴할 수 있습니다. 채굴에 성공하게 되면 밑의 그림처럼 성공적으로 마이닝에 서공했다는 로그가 뜨게 됩니다.
정말 채굴이 되었는 지 한번 확인을 해야겟죠.
eth.getBalance(eth.accounts[0]) 와 eth.getBalance(eth.accounts[1]) 명령어를 통해 eth1과 eth2의 마이닝을 확인합니다.
2. 트랜잭션보내기
트랜잭션을 보내기 전 먼저 계정을 unlock해야 합니다.
계정의 unlock은 personal.unlockAccount(eth.accounts[N],"passwd") 로 할 수있습니다.
다만 바로 언락이 되지 않고, 보안상의 이유로 해당계정에 HTTP 를 사용할 수 없다고 뜨기도 하는데, 이럴땐 --allow-insecure-unlock 를 네트워크 접속시 명령어에 추가하여 새로 접속하도록 합니다.
geth --networkid 1004 --allow-insecure-unlock --datadir test1 --nodiscover --port 30303 --rpc --rpcport "8545" --rpcaddr "0.0.0.0" --rpccorsdomain "*" --rpcapi "eth, net, web3, miner, debug, personal, rpc" console
이제 트랜잭션을 보낼차례다. 우리는 아래 명령어를 통해 트랜잭션을 생성하고 메세지를 담을 수 있습니다.
eth.sendTransaction({from:eth.accounts[0], to:eth.accounts[1], value:web3.toWei(1,"ether"),data:web3.toHex("test23")})
3. 트랜잭션 확인
이제는 트랜잭션을 확인해볼 차례입니다.
먼저 현태 마이닝을 하고 있지 않는다면, 트랜잭션이 pending 상태일 것이며, 이때의 트랜잭션은 eth.pendingTransactions 으로도 확인이 가능합니다.
트랜잭션은 아래의 명령어를 통해 확인할 수 있습니다.
eth.getTransaction("hash")
트랜잭션의 input 에 들어간 hex 데이터인 7465 7374를 변환해보면 원래 트랜잭션에 포함하였던 "test" data 인것을 확인할 수 있습니다.
다음은 Mysql 과 geth를 연동하여 트랜잭션과 해당 데이터 정보를 저장하는 방법에 대해 포스팅 하겠습니다.
'연구활동 > 블록체인' 카테고리의 다른 글
[이더리움에 데이터베이스 연결하기] 1-Private Ethereum Network Building (사설 이더리움 환경 구성하기) (0) | 2020.06.07 |
---|