首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >geth -dev不能开采一个以上的合同。

问geth -dev不能开采一个以上的合同。
EN

Ethereum用户
提问于 2018-02-24 16:06:02
回答 1查看 169关注 0票数 0

我通过以下方法安装geth和solc

代码语言:javascript
复制
sudo apt-get install software-properties-common
sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update
sudo apt-get install ethereum-unstable
sudo apt-get install solc

然后我跑了

代码语言:javascript
复制
geth --dev

并做到了

代码语言:javascript
复制
geth attach

我创建了一个契约,并编译了它,并将它“部署”到我的区块链中。

代码语言:javascript
复制
var abi = <abi from solc>;
var jarContract = eth.contract(abi); 
var bin = '0x' + "<bytecode from solc>";
var txDeploy = {from:eth.accounts[0], data: bin, gas: 1000000}; 
var jar = jarContract.new(txDeploy); 

它立即被埋了下来,我找到了一个地址,可以使用它。

但后来我做了

代码语言:javascript
复制
var jar2 = jarContract.new(txDeploy); 

也就是说,使用与以前完全相同的变量,而从来没有发生过任何事情。它不是“雷”,我没有地址,不能与合同互动。

我有点不知所措。我似乎只能从-dev中得到一份合同,然后停止并重新启动它,以“我的”另一份合同。

任何想法都欢迎!

谢谢

EN

回答 1

Ethereum用户

发布于 2018-03-01 05:10:24

基于文档,您不应该在字节代码之前添加'0x‘。获取契约字节码的方法是:

代码语言:javascript
复制
let source = fs.readFileSync('nameContract.sol', 'utf8');
let compiledContract = solc.compile(source, 1);
let abi = compiledContract.contracts['nameContract'].interface;
let bytecode = compiledContract.contracts['nameContract'].bytecode;
票数 0
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/40796

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档