1. 程式人生 > >搭建智慧合約開發環境

搭建智慧合約開發環境

本地安裝remix-ide線上編譯器

首先選擇一塊風水寶地

mkdir tools/solidity-browser -p

cd tools/solidity-browser 

下載remix安裝包

git clone https://github.com/ethereum/remix-ide

進入目錄編譯即可

npm install

啟動服務

    npm start

訪問localhost:8080

安裝solcJs編譯器

全域性安裝

npm install solc -g 

編寫智慧合約

pragma solidity ^0.4
.4; /** pragma : 版本宣告 solidity : 開發語言 0.4.4 : 當前合約的版本, 0.4 代表朱版本, 後面代表修改的版本 ^ : 代表向上相容,0.4.4 ~ 0.4.9 都可以對當前的程式碼進行編譯 */ contract Person { uint _height; uint _age ; address _owner; //建構函式 function Person() public { _height = 180; _age = 29; _owner = msg.sender; } function setAge
(uint age) public {
_age = age; } function setHeight(uint height) public { _height = height; } function getAge() constant returns (uint) { return _age; } function getHeight() constant returns (uint) { return _height; } //解構函式 function kill() { //判斷是否是合約的擁有者呼叫 if
( msg.sender == _owner){ selfdestruct(_owner); } } }

檢視編譯器的版本

solcjs --version

編譯命令

solcjs --abi --bin xx.sol

這個命令會生成2個檔案。
–bin : 生成以太坊的二進位制檔案(EVM的位元組碼)
–api : 介面檔案

全域性安裝testrpc

sudo npm install -g ethereumjs-testrpc

啟動(預設的埠號是8545)

testrpc

testrpc會自動生成10個測試的地址,和10個私鑰

安裝web3.js

npm install web3@0.20.1

或者

npm install web3

web3初始化操作

進入node互動控制檯,引入web3模組建立web3物件,並連線testrpc環境

 node 
 > require('web3')
 > var Web3 = require('web3');
 var web3Provider = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));
 eth = web3Provider.eth

裝載編譯好的bin,abi檔案

> abi = JSON.parse(fs.readFileSync('~/Person_sol_Person.abi').toString());
> bin = fs.readFileSync('~/Person_sol_Person.bin').toString()

釋出智慧合約

> contract = eth.contract(abi)
> deployed = contract.new({from:eth.accounts[0],data:code,gas:470000})

通過web3js與合約互動

> deployed.address
> c1 = eth.contract(abi)
> instance = c1.at(deployed.address)
> instance.setAge.call(1)
> instance.getAge.call();
BigNumber { s: 1, e: 1, c: [ 29 ] }

這種方式比較原始,走一遍熟悉一下還是不錯的。
ps:
call是本地的函式呼叫

遠端呼叫方式

> instance.setAge(3,{from:eth.accounts[0]});
'0xa0d493eb1285d10ad2b58d3065cbaab137558e0865e041158d5b8bece15a2358'

返回的交易地址,這個交易會被testrpc自動挖掛的。

安裝InteliJ solidity外掛

直接在外掛上搜索:Intellij Solidity

利用自定義的擴充套件工具類編譯我們的Sol檔案

新增新的工具:

這裡只產生bin和abi檔案

 progarm: solcjs
 parameters: --bin --abi $FileName$ -o $OutputPaht$
 working directory: $FileDir$

設定完成後


執行我們自定義的工具之後我們可以看見生成我們預期的檔案了

到這裡我們Idea的環境也基本搭建完成了