2018年5月11日金曜日

Truffle:是以太坊的开发环境、测试框架和资产通道。换句话说,它可以帮助你开发、发布和测试智能合约
Ganache:创建一个虚拟的以太坊区块链,并生成一些我们将在开发过程中用到的虚拟账号

Geth:Geth 是把你连接到区块链的核心应用程序,它也可以启动一个新的区块链,创建合约,挖掘以太币


truffle init  //初始化
在contracts中添加新的合约文件.sol
在migrations中添加新的js文件,通过运行将合约部署到区块链
truffconfig.js中定义连接的网络

ganache-cli -p 7545  //启动虚拟的太坊区块链,并生成测试账户
truffle compile  //将合约编译成虚拟机语言
truffle migrate --network development  //将代码部署到区块链,这里是ganache创建的development网络
truffle console --network development  //形成与development区块链交互的console


geth --datadir=./chaindata/ init ./genesis.json  //用geth来创建新的区块链
geth --datadir=./chaindata/ --rpc  //启动区块链,“--rpc” 参数让 geth 接受 RPC 连接
mist --rpc ./chaindata/geth.ipc  //连接到geth启动的区块链上,8545是默认端口

geth attach ipc:./chaindata/geth.ipc  //Start an interactive JavaScript environment (connect to node)
  miner.start()  //开始挖矿
  miner.stop()  //停止挖矿
  personal.unlockAccount('0xCe58315c7b4f4FA696473689273BD7598886Af2B','password')

在Shell上
truffle migrate --network ourTestNet  //将合约部署到ourTestNet。要在挖矿情况下,否则将不被执行
truffle console --network ourTestNet
Wrestling.address  //返回已部署的 Wresting 合约实例的地址
JSON.stringify(Wrestling.abi)  //返回 Wresting 合约 ABI(Application Binary Interface)。ABI 基本上就是对合约的描述。它包含了一个函数、变量和其他因素的列表。