
eth.pendingTransactions: 처리해야 하는 트랜잭션 목록
처리해야 하는 트랜잭션이 아무것도 없다면 아래와 같이[] 빈 배열이 출력된다

> eth.sendTransaction({
from:eth.accounts[0],
to:eth.accounts[1],
value:web3.toWei(2)
})
from: 트랜잭션을 보내는 계정의 주소
to: 수신자 계정의 주소
value: 전송 금액
메시지도 함께 보내고 싶다면
data: web3.toHex("메시지 내용")을 추가
web3.toHex는 인자로 주어진 값을 16진수로 변환하고, 문자열은 UTF-8 문자열로 표현
정상적으로 트랜잭션이 만들어지면
트랜잭션 해시가 출력된다!
(아래 사진의oxff0c28...)
아래에서eth.getTransaction()함수에서 사용할 예정이니 잘 모셔 두자
새롭게 생성된 트랜잭션은 pending 상태이므로 eth.pendingTransactions에서 확인할 수 있다

blcokHash, blockNumber , transactionIndex 주목!!
아직 트랜잭션이 블록에 담겨 채굴되지 않아서 null인 상태
miner.start(1): 채굴 시작
miner.stop(): 채굴 종료
채굴 중에
eth.pendingTransactions로 pending 상태의 트랜잭션이 처리되었는지 확인
->[]빈 배열로 모두 처리되었다면 채굴 종료

eth.getBalance(eth.accounts[1])을 확인하면 땡전 한 푼 없던 [1] 계정에 잔액이 생긴 걸 볼 수 있다

ether로 변환하고 싶다면web3.fromWei(eth.getBalance(eth.accounts[1]), 'ether')

위에서 트랜잭션을 생성하면서 반환 받은 해시값으로 트랜잭션의 정보를 얻을 수 있다
eth.getTransaction("트랜잭션 해시값")

input: eth.sendTransaction()에서 입력한 data
나는 data를 입력하지 않았으므로 "0x"만 뜬다
value: 전송한 금액
blockNumber: 해당 트랜잭션이 포함되어있는 블록 번호
blockNumber를 통해서도 트랙잭션 내용을 조회할 수 있다
eth.getTransactionFromBlock("블록번호")

eth.getBlock("블록번호")

송금이 완료된 후, accounts[0]의 잔고는 어떨까?
기존 잔액에서
송금한 금액 + 수수료가 빠져야 할 것이다
근데?
eth.getBalance로 확인해보면 트랜잭션 수수료가 빠져 나가지 않았다
카카오페이나 토스처럼 이더리움도 수수료 무료 이벤트를 하는 걸까...?
아니다
송금 시 수수료(gas)는 출금되고 트랜잭션을 담은 블록의 채굴자에게 수수료가 돌아간다
아까 블록 채굴을 무슨 계정으로 했는지 기억하는지?
-> accounts[0]
eth.accounts[0]가 송금자인 동시에 채굴자이므로
송금자인 accounts[0]의 계좌에서 수수료가 출금되어
채굴자인 accounts[0]의 계좌에 입금된 것

accounts[2]를 만들고 코인베이스로 지정
accounts[0]에서 accounts[1]로 송금
accounts[2]가 블록 채굴
eth.getBalance(eth.accounts[n]) 으로 각 잔액 확인
편하게 받기만 한 accounts[1]은 2이더씩 2번 총 4 ether가 깔끔하게 들어 있다
중요한 것은 accounts[0]과 accounts[2]
약 0.000021 ether가 송금자인 accounts[0]로부터 채굴자인 accounts[2]에게 이동했다
이처럼 트랜잭션을 처리하기 위해서는 수수료가 필요하다
Gas는 블록을 만들 때 주는 보상으로 채굴자에게 지급된다
채굴자는 다시 말해, 블록을 생성한 노드의 Etherbase

gasPrice: 1gas의 가격. 단위는 wei/gas
gas: 지불 가능한 최대 gas
실제로 해당 트랜잭션을 처리하는 데 지불한 gas가 아니다
실제로 지불한 gas는 트랜잭션에서 지정한 gas의 값보다 작다