搭建智慧合約開發環境
阿新 • • 發佈:2019-02-18
本地安裝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的環境也基本搭建完成了