zoukankan      html  css  js  c++  java
  • 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})
    

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

     


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

         

     

      

  • 相关阅读:
    scss-数据类型
    scss-@import
    scss-&父选择器标识符
    scss-嵌套属性
    Python之NumPy(axis=0 与axis=1)区分
    Java map 详解
    java之JDBC多条语句执行
    p-value值的认识
    numpy.random之常用函数
    Python random模块sample、randint、shuffle、choice随机函数
  • 原文地址:https://www.cnblogs.com/StephenWu/p/6665273.html
Copyright © 2011-2022 走看看