zoukankan      html  css  js  c++  java
  • 以太坊搭建联盟链:两个节点完成一次转账交易

    创建组织

    • 新建两个文件夹啊a,b,分别代表两个组织在两个文件夹内分别创建文件genesis.json,内容如下:
    {
      "config": {
        "chainId": 666,
        "homesteadBlock": 0,
        "eip150Block": 0,
        "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
        "eip155Block": 0,
        "eip158Block": 0,
        "byzantiumBlock": 0,
        "constantinopleBlock": 0,
        "petersburgBlock": 0,
        "istanbulBlock": 0,
        "ethash": {}
      },
      "nonce": "0x0",
      "timestamp": "0x5ddf8f3e",
      "extraData": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "gasLimit": "0x47b760",
      "difficulty": "0x00002",
      "mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
      "coinbase": "0x0000000000000000000000000000000000000000",
      "alloc": {
        "0x1e82968C4624880FD1E8e818421841E6DB8D1Fa4" : {"balance" : "30000000000000000000"}
      },
      "number": "0x0",
      "gasUsed": "0x0",
      "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000"
    }
    
    • 在a中执行geth --datadir ./data-init1/ init genesis.json
    • 在b中执行geth --datadir ./data-init2/ init genesis.json

    启动控制台

    • 在a中执行geth --datadir ./data-init1/ --networkid 22 --nodiscover console;新开一个终端,在b中执行geth --datadir ./data-init2/ init genesis.json.
    • 出现 Welcome to the Geth JavaScript console!, 说明网络启动成功。

    添加账户

    • 在a,b上分别添加账户。
    personal.newAccount("123456")
    
    • a:"0xd4df3fab07d7d957b5f023b107c388173f0b24b1"
    • b:"0xe0e0772c036e0864d33d20c90bcd5f7ce9bf18bb"

    互通

    • 查看b节点信息,在a节点添加b

    • 执行命令admin.peers验证

    进行一次转账交易

    • 在a上执行eth.getBalance(eth.coinbase),账户余额为0,开始挖矿miner.start().

    • 然后再执行eth.getBalance(eth.coinbase):

    • 解锁账号,输入密码。向b的账户进行转账。

    • 开始挖矿

    • 在b上查询账户余额,转账成功(b未进行挖矿且初始账户余额为0)

    参考


    一个疑问,可能比较蠢-_- 一个节点可以创建多个账户,但只有一个coinbase?coinbase就是用来接受coin的?这个过程只是简单地走了一遍过程,具体的过程还没有捋顺,也没有使用智能合约?接下来就是看看如何部署智能合约。

  • 相关阅读:
    init_machine 在Kernel中被调用的过程
    maven-surefire-plugin的forkMode分析
    执行Maven install或Maven test命令时控制台输出乱码的解决办法
    Maven 中的dependencies与dependencyManagement的区别
    使用maven profile实现多环境可移植构建
    Maven最佳实践:划分模块
    MySQL的登陆错误:ERROR 1049 (42000): Unknown database 'root'
    Java 连接操作 Redis 出现错误
    关闭多个screen
    linux sed 批量替换字符串
  • 原文地址:https://www.cnblogs.com/20199321zjy/p/14113914.html
Copyright © 2011-2022 走看看