BlockChain --- 账号间的交易

1. 同一个节点下不同账户直接的交易

   1) 首先先在一个节点下创建两个账号:

personal.newAccount("111111")
personal.newAccount("222222")

 两个账号密码分别为6个1和6个2.要进行交易就先要让其中的一个账号有钱。所以我们执行挖矿操作

miner.start()

 默认情况下,miner挖矿所得都在账号1下面。查看账户1下面的余额

eth.getBalance(eth.accounts[0])

 2)交易账号解锁

  对每个要进行交易输出的账号都需要解锁操作,否则会提示 account is locked  的交易错误

acc0 = eth.accounts[0]
personal.unlockAccount(acc0)

 3)  挖矿进行中

      记住,以太坊中所有的交易都是需要被记录在一个特定的区块里的,挖矿就是 新建区块的过程。如果没有新的区块,那么这期间的所有的交易都是无效的。所以在交易之前,一定要保证是处于挖矿操作中。可以通过eth.mining来查看当前是否处于挖矿中

 

 4)进行交易

  为了方便交易,我们这里对账号1和2 分别进行别名设置

acc0 = eth.accounts[0]
acc1 = eth.accounts[1]

  之后调用sendTransaction(from,to,value)方法进行交易,该方法有三个参数:

  from: 交易输出方地址(付款方)

  to: 交易输入方地址(收款方)

  value: 交易金额

 比如,现在账号1要支付账号2  1以太币

eth.sendTransaction({from:acc0,to:acc1,value: web3.toWei(1)})

 如果当前不处于挖矿中,上面执行后,也会返回一个值,但是你如果去查看两个账号的各自余额,发现是没有任何变化的。所以一定一定要记得:挖矿中进行交易

2. 不同节点之间账户的交易 

  前面的步骤和1完全一样。只是在调用 sendTransaction的时候,需要传入的每个账号的address

eth.sendTransaction({from:"0x51c641e9b2e9693d0f3c94e4cd804ae4eb9c8900",to: "0x573dc3f3bdd9b9b579ee507412483cf43d9e7b08", value: amount})

 而且好像不同节点的交易是需要一定时间的。这个时间是怎么产生的需要再研究。 

 


 欢迎大家关注微信号:蜗牛讲技术。扫下面的二维码

     

 

  

posted @ 2017-04-04 16:15  shaotine  阅读(1368)  评论(0编辑  收藏  举报