以太坊应用开发24步

1. 安装go-ethereum

brew install ethereum


2. 安装solidity

brew install solidity

=====


3. 启动go-ethereum

geth  --datadir “~/ethdev” --dev


4. 进入go-ethereum终端,日志输出到file_to_log_output

geth --dev console 2>>file_to_log_output 


5. 创建新帐户,密码为111111,可以创建多个帐户

personal.newAccount(‘111111’)


6. 把帐户赋给变量,方便记忆。也可以直接用帐户地址”0x……”

account1=eth.accounts[0]


6. 开始挖以太矿,可以用miner.stop()停止

miner.start()


7. 查看日志文件file_to_log_output

tail -f file_to_log_output


8. 解锁帐号权限

personal.unlockAccount(account1,’111111’)


9.发送交易,帐号1向帐号2转移3以太币

eth.sendTransaction({from: account1,to: account2,value: web3.toWei(3,"ether")})

=====


10.编写test智能合约,包含multiply函数,赋给source变量

source = "contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"


11.编译test智能合约

contract = eth.compile.solidity(source).test


12.
创建合约ABI接口,可以自定义,也可以使用contract.info.abiDefinition

abi = [{constant:false,inputs:{name:'a',type:'uint256'}}]


13.
通过合约ABI接口创建合约类

Contract1 = eth.contract(abi)

Contract2 = eth.contract(contract.info.abiDefinition)


14.
合约类通过帐户和智能合约字节码创建合约实例,就是一个交易,交易发送到区块链后,会得到一个地址

instanceContract1= Contract1.new({from:account1,data:contract.code})


合约类也可以用现有合约实例的地址创建合约实例

instanceContract2= Contract2.at(instanceContract1.address)


15.
通过call()调用,测试合约函数结果

instanceContract1.multiply.call(3)


16.
通过sendTransaction()调用,改变合约状态,合约将会使调用的结果成为全局共识的一部分。

instanceContract1.multiply.sendTransaction(3, {from:account1})

=====


17.安装Truffle

npm install -g truffle


18.安装Testrpc

npm install -g ethereumjs-testrpc


19. 新建项目

mkdir project

cd project

truffle init


20.编译项目

truffle compile


21.启动TestRPC

testrpc 


22.部署项目

truffle migrate


23.启动服务

truffle serve


24.访问项目

http://localhost:8080/

=====

你可能感兴趣的:(区块链)