美文网首页
区块链 | geth以太坊创建私有链

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

作者: Ricsy | 来源:发表于2019-03-13 18:23 被阅读0次


方法一

创建私有链并启动节点

  • 创建一个配置私有链的数据目录ethprivate
  • 数据目录下,新建创世区块的初始化文件genesis.json

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

  • 打开cmd
  • 创建私有链

geth --datadir "node1" init genesis.json

  • 启动私有链

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

  • 查看节点摘要信息

admin.nodeInfo

注意:

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

创建账户后进行挖矿

  • 创建账户
    personal.newAccount("admin1")

提示:

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

//停止挖矿
miner.stop()


方法二

说明

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

  • 安装Node.js

提示:

使用npm安装TestRPC

npm install -g ethereumjs-testrpc

  • 查看版本信息
    testrpc -version

使用npm安装装Truffle

npm install –g truffle

  • 查看版本信息
    truffle -version

安装solc

npm install -g solc

注意

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

运行测试

  • 启动TestRPC
    testrpc
  • 开启另一终端,创建项目框架
    mkdir mytruffle && cd mytruffle
    truffle unbox webpack

参阅:webpack

  • 创建智能合约

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

  • 编译智能合约
    truffle compile

注意:

  • 回到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
    compile
    migrate

说明:

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

更新中......


相关文章

网友评论

      本文标题:区块链 | geth以太坊创建私有链

      本文链接:https://www.haomeiwen.com/subject/vrbtmqtx.html