安装IDE
brew tap ethereum/ethereum
brew install cpp-ethereum
brew linkapps cpp-ethereum
#或安装测试版及图形界面
brew reinstall cpp-ethereum --devel --with-gui
brew linkapps cpp-ethereum
#you can then find AlethZero and Mix in your Applications folder
使用Solidity
- Solidity Documentation - Solidity is the flagship Ethereum high level language that is used to write contracts.
- Solidity online realtime compiler
- Standardized Contract APIs
- Useful Ðapp Patterns - Code snippets which are useful for Ðapp development.
contract HelloWorld {
event Print(string out);
function() { Print("Hello, World!"); }
}
编译
Compiling a contract
Compilation of solidity contracts can be accomplished via a number of mechanisms.
- Using the
solc
compiler via the command line. - Using
web3.eth.compile.solidity
in the javascript console provided bygeth
oreth
(This still requires thesolc
compiler to be installed). - The online Solidity realtime compiler.
- The Meteor dapp Cosmo for building solidity contracts.
- The Mix IDE.
- The Ethereum Wallet.
The compiler is also available via RPC and therefore via web3.js to any in-browser Ðapp connecting to geth
via RPC/IPC.如
$ geth --datadir ~/eth/ --loglevel 6 --logtostderr=true --rpc --rpcport 8100 --rpccorsdomain '*' --mine console 2>> ~/eth/eth.log
$ curl -X POST --data '{"jsonrpc":"2.0","method":"eth_compileSolidity","params":["contract test { function multiply(uint a) returns(uint d) { return a * 7; } }"],"id":1}' http://127.0.0.1:8100
布署一个contract
var primaryAddress = eth.accounts[0]
var abi = [{ constant: false, inputs: { name: 'a', type: 'uint256' } ]
var MyContract = eth.contract(abi)
var contract = MyContract.new(arg1, arg2, ..., {from: primaryAddress, data: evmByteCodeFromPreviousSection})