2018-03-28 RSK开发环境搭建

RSK开发环境搭建

1、操作系统用的ubuntu16,用virtualbox安装的

2、搭建以太坊开发环境,参考https://mshk.top/2017/11/truffle-4-0-geth-1-7-2-testrpc/

因为rsk是拿以太坊环境开发智能合约的,因此这块必需先跑通

3、rsk代码环境,参考https://github.com/rsksmart/rskj/wiki/RSK-node-on-Linux

我安装的是eclipse,没有使用收费的IntelliJ IDEA 

a、拉取代码

make rsk & cd rsk

git clone --recursive https://github.com/rsksmart/rskj.gitcd rskj

git checkout tags/BAMBOO-0.4.1 -b master

b、执行./configure.sh

否则会缺少一些必要的库

c、使用eclipse导入grade项目运行后

可以看代码目录下logs目录下的日志,查看错误信息虚拟机必需能够直连网络,不能通过代理上网

4、配置rsk为regtest环境,参考https://github.com/rsksmart/rskj/wiki/Get-your-Standalone-RSK-Node-(RegTest)

运行后查看日志,可以看到有挖矿,这样后续步骤就不愁发布合约的费用了

5、发布合约


参考https://github.com/rsksmart/tutorials/wiki里面module1-4部分把合约先发布到以太坊的测试环境验证没有问题,这里我参考文章实现了自己的dapp,目录为rskdemo

然后参考module5,https://github.com/rsksmart/tutorials/wiki/Module-5-%E2%80%93-Smart-contract-on-RSK-(50-minutes),这个里面有些错误,需要注意

a、修改truffle.js

module.exports = {

networks : {

rsk: {

gas : 2500000,

gasPrice : 1,

from : "0xc702ea7a0404aa9b34ab0e4f10abda4ae3b809ed",

host : "localhost",

port : 4444,

network_id : "*" // Match any network id

}

}

};

b、truffle console --network rsk

在这里主要是给truffle.js里面配置的地址"0xc702ea7a0404aa9b34ab0e4f10abda4ae3b809ed"转账

如果没有eth后面发布的合约会出现下面的错误:

truffle migrate --reset --network rskUsing network 'rsk'.Running migration: 1_initial_migration.jsDeploying Migrations...... undefinedError encountered, bailing. Network state unknown. Review successful transactions manually.Error: From address private key could not be found in this nodeat Object.InvalidResponse (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/errors.js:38:1)at /usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/requestmanager.js:86:1at /usr/lib/node_modules/truffle/build/webpack:/~/truffle-migrate/index.js:225:1at /usr/lib/node_modules/truffle/build/webpack:/~/truffle-provider/wrapper.js:134:1at XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/httpprovider.js:128:1)at XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:64:1)at XMLHttpRequest._setReadyState (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:354:1)at XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:509:1)at IncomingMessage. (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:469:1)

at emitNone (events.js:111:20)

at IncomingMessage.emit (events.js:208:7)

at endReadableNT (_stream_readable.js:1064:12)

at _combinedTickCallback (internal/process/next_tick.js:138:11)

at process._tickCallback (internal/process/next_tick.js:180:9)

执行以下命令转账:

web3.eth.blockNumber

web3.eth.accounts

web3.eth.getBalance(web3.eth.accounts[0])

web3.eth.sendTransaction({from:web3.eth.accounts[0],to:web3.eth.accounts[10],value:web3.toWei(5,'ether')})

web3.eth.getBalance(web3.eth.accounts[10])

这里的账户编号10就是我们自己配置在conf里面的账户

c、发布合约

新打开一个terminal终端,进入rskdemo目录,执行truffle migrate --reset --network rsk

这个过程出现过两个错误,一个就是上面因为没有eth出现的Error: From address private key could not be found in this node;

另外一个错误是:

truffle migrate --network rsk --resetUsing network 'rsk'.Running migration: 1_initial_migration.js Deploying Migrations... ... undefinedError encountered, bailing. Network state unknown. Review successful transactions manually.Error: Local wallet is disabled in this node at Object.InvalidResponse (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/errors.js:38:1) at /usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/requestmanager.js:86:1 at /usr/lib/node_modules/truffle/build/webpack:/~/truffle-migrate/index.js:225:1 at /usr/lib/node_modules/truffle/build/webpack:/~/truffle-provider/wrapper.js:134:1 at XMLHttpRequest.request.onreadystatechange (/usr/lib/node_modules/truffle/build/webpack:/~/web3/lib/web3/httpprovider.js:128:1) at XMLHttpRequestEventTarget.dispatchEvent (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:64:1) at XMLHttpRequest._setReadyState (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:354:1) at XMLHttpRequest._onHttpResponseEnd (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:509:1) at IncomingMessage. (/usr/lib/node_modules/truffle/build/webpack:/~/xhr2/lib/xhr2.js:469:1)

    at emitNone (events.js:110:20)

    at IncomingMessage.emit (events.js:207:7)

    at endReadableNT (_stream_readable.js:1057:12)

    at _combinedTickCallback (internal/process/next_tick.js:138:11)

    at process._tickCallback (internal/process/next_tick.js:180:9)

这个错误如果参考步骤4实现了regtest测试环境,就不会出现问题,其原因是本地钱包功能没有打开

当我们看到下面的信息的时候,就是发布成功了

truffle migrate --reset --network rskUsing network 'rsk'.

Running migration: 1_initial_migration.js

  Deploying Migrations...

  ... 0xdb59186695cde97d6e487cb6237d30ce9a1811dabb43a9cb006179e42b77ca14

  Migrations: 0xa1d1bb14e5ae204229f8ea58de20b7444596ec3c

  Deploying HelloWorld...

  ... 0x43bcd6f6eb401f6e0819e73f75cdf85147e55784d170ebafdcf59c579864ab9f

  HelloWorld: 0x3cc6f8881453e1125111eb3632a08626de37c8ec

Saving successful migration to network...

  ... 0x7652ef0a895e9bde67bc8d4bbcceee00658892f3645fbfc696252e1ab914567e

Saving artifacts...

如果没有成功,建议去https://gitter.im/rsksmart/rskj提问,他们一般晚上答复,和我们作息时间不一致

d、测试合约

这个时候需要关闭前面的truffle console --network rsk,然后重新执行truffle console --network rsk

然后执行以下命令:

var contract;

HelloWorld.deployed().then(function(instance){contract= instance;});

contract.getGreeting()

contract.setGreeting("test")

contract.getGreeting()

如果contract.getGreeting()能够正确输出数据,测试就成功了   

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容