我通过以下方法安装geth和solc
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然后我跑了
geth --dev并做到了
geth attach我创建了一个契约,并编译了它,并将它“部署”到我的区块链中。
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); 它立即被埋了下来,我找到了一个地址,可以使用它。
但后来我做了
var jar2 = jarContract.new(txDeploy); 也就是说,使用与以前完全相同的变量,而从来没有发生过任何事情。它不是“雷”,我没有地址,不能与合同互动。
我有点不知所措。我似乎只能从-dev中得到一份合同,然后停止并重新启动它,以“我的”另一份合同。
任何想法都欢迎!
谢谢
发布于 2018-03-01 05:10:24
基于文档,您不应该在字节代码之前添加'0x‘。获取契约字节码的方法是:
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;https://ethereum.stackexchange.com/questions/40796
复制相似问题