方法一
创建私有链并启动节点
- 创建一个配置私有链的数据目录
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
更新中......
网友评论