区块链 | geth以太坊创建私有链

2019-03-13  本文已影响0人  Ricsy


方法一

创建私有链并启动节点


{
"config": {
            "chainId": 15,
            "homesteadBlock": 0,
            "eip155Block": 0,
            "eip158Block": 0
       },
       "difficulty": "200000000",
       "gasLimit": "2100000",
       "alloc": {
           "7df9a875a174b3bc565e6424a0050ebc1b2d1d82": { "balance": "300000" },
           "f41c74c9ae680c1aa78f42e5647a62f353b7bdde": { "balance": "400000" }
      }
}

geth --datadir "node1" init genesis.json

geth --datadir "node1" --networkid 989898 --rpc console --port 30304 --rpcport 8546

admin.nodeInfo

注意:

  • 我们现在只是启动了一个节点,如果还需要启动第二个节点,将node1变为node2,然
    后同样运行初始化,以及启动节点命令即可(以此类推).
  • 需要注意的是,要指定不同的端口,否则可能会导致端口占用冲突.
  • 若创建多个节点,则节点之间可以通过admin.addPeer连接.
  • 在本机启动多个节点或者在不同的计算机上运行多个节点都可以,这样可以模拟出一个私有链网络.

创建账户后进行挖矿

提示:

  • 账户名称可改
//启动挖矿
miner.start()

//停止挖矿
miner.stop()


方法二

说明

可以快速方便进行测试使用以及智能合约开发.

提示:

使用npm安装TestRPC

npm install -g ethereumjs-testrpc

使用npm安装装Truffle

npm install –g truffle

安装solc

npm install -g solc

注意

  • 安装后的命令是solcjs——这是用来编译智能合约代码的

运行测试

参阅:webpack


pragma solidity ^0.4.11;
contract MyCalc {
function SumAdd(uint a) public returns(uint d) {
return a + 100;
}
}

注意:

  • 回到mytruffle的目录才进行编译
  • 编译中遇到的问题和解决方法
Q A
1. No visibility specified. Did you intend to add "public"? 在函数后面returns前面添加public关键词
2. nightly builds are considered to be strictly less than the released version 找到truffle-config.js中的compiler项,将里面的version改为你智能合约的编译版本,然后再编译或改变pragma solidity声明的版本.

说明:

  • Truffle Develop是truffle内置的客户端
  • truffle develop里执行truffle命令的时候需要省略前面的truffle
  • Truffle仅默认编译自上次编译后被修改过的文件,来减少不必要的编译。如果你想编译全部文件,使用
    truffle compile --compile-all
  • migrate会执行所有migrations目录下的js文件。如果之前执行过truffle migrate命令,再次执行,只会部署新的js文件,如果没有新的js文件,不会起任何作用。如果想重新的执行所有脚本的部署,使用
    truffle migrate --reset

更新中......


上一篇 下一篇

猜你喜欢

热点阅读