搭建以太坊私有链多节点环境

原文地址https://blog.csdn.net/koastal/article/details/78749211

搭建节点00

参照:http://blog.csdn.net/koastal/article/details/78737543

搭建节点01

实验环境中,00节点和01节点运行在同一台服务器,如果节点在不同的服务器,需要使用同样的gensis.json初始化区块,不同服务器的端口并不影响,都可以使用默认的8545和30303端口。

初始化创世区块

geth --datadir /home/blockChain/data/01 init genesis.json
  • 1

启动节点01

geth --networkid 14  --nodiscover --datadir /home/blockChain/data/01   --port 61911 --rpcapi net,eth,web3,personal --rpc  --rpcaddr ip_address  --rpcport 8101 console


添加节点00

在节点00的控制台,查看00节点的enode

admin.nodeInfo.enode
"enode://a1e18dd40fbce856d8.......2eabd24e29a@[::]:30303?discport=0"
  • 1
  • 2

在节点01的控制台,添加节点00

admin.addPeer("enode://a1e18dd40fbce856d84b8c6872d4158ab152812a081d1608643fd8a9c7d650ad161b5ef0b0a2a94357d2d6f3a044b380445

admin.addPeer("enode://a1e18dd40fbce856d84b8c6872d4158ab152812a081d1608643fd8a9c7d650ad161b5ef0b0a2a94357d2d6f3a044b380445f9033550233f8ded232eabd24e29a@ip_address:30303")

连接成功之后,节点01会自动快速同步节点00的区块。

查看连接的节点

可以在节点00和01控制台中,查看连接的节点数量和连接的节点列表

net.peerCount
admin.peers

进行交易和部署合约

节点01和节点00都可以进行挖矿,并且只要有一个节点在进行挖矿,其他节点的交易也都能正常进行。在节点01可以查询节点00中账户的余额,也可以在不同节点之间进行转账。

使用mist连接节点00,部署智能合约,并让节点01进行挖矿。

mist --rpc http://ip_address:port
  • 1

部署一个简单的智能合约

扫描二维码关注公众号,回复: 194078 查看本文章
pragma solidity ^0.4.18;

contract MyContract {
    /* Constructor */
    string name;
    int num;
    function MyContract() public{
        name = "default";
        num = 1;
    }
    function setName(string v) public{
        name = v;
    }
    function getName() public view returns(string){
        return name;
    }
    function setNum(int n) public{
        num = n;
    }
    function addNum(int m) public view returns(int res){
        res = m + num;
    }
}

  • 22
  • 23

部署智能合约需要手续费,选择一个有充足余额的账户部署智能合约。 

合约部署完成之后,可以进行操作,读取合约不需要手续费,写入合约需要手续费。 

智能合约相关文档(中文翻译的不全,建议还是看英文文档): 
http://book.8btc.com/books/6/solidity-zh/_book/ 
https://solidity.readthedocs.io/en/develop/

猜你喜欢

转载自blog.csdn.net/metal1/article/details/80221850
今日推荐