在https://github.com/ethereum/go-ethereum下载客户端源码
构建geth等命令行
go install -v ./cmd/...
初始化私链,json文件放后面
geth init ./genesis.json --datadir "./chain"
geth --datadir "./chain" --nodiscover console 2>>eth_output.log
web3.personal.newAccount("123456")
把以下脚本放入here.js ,使用loadScript('./here.js')加载、
acc0 = web3.eth.accounts[0]
acc1 = web3.eth.accounts[1]
function checkbal() {
var totalBal = 0;
for (var acctNum in eth.accounts) {
var acct = eth.accounts[acctNum];
var acctBal = web3.fromWei(eth.getBalance(acct), "ether");
totalBal += parseFloat(acctBal);
console.log(" eth.accounts[" + acctNum + "]: \t" + acct + " \tbalance: " + acctBal + " ether");
}
console.log(" Total balance: " + totalBal + " ether");
};
function maketx() {
web3.eth.sendTransaction({from:acc0,to:acc1,value:web3.toWei(3,"ether")})
miner.start()
miner.stop()
checkbal()
};
web3.personal.unlockAccount(acc0,"123456")
var mshkdemoContract = web3.eth.contract([{"constant":false,"inputs":[{"name":"a","type":"uint256"}],"name":"mshkadd","outputs":[{"name":"","type":"address"},{"name":"b","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"}]);
var mshkdemo = mshkdemoContract.new(
{
from: web3.eth.accounts[0],
data: '0x608060405234801561001057600080fd5b5060f98061001f6000396000f300608060405260043610603f576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff168063ee64a560146044575b600080fd5b348015604f57600080fd5b50606c6004803603810190808035906020019092919050505060b5565b604051808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019250505060405180910390f35b60008060006107d984019050338192509250509150915600a165627a7a7230582029e5190fe281a5291ff000ec7a083311b2d1b2d4de3bd2c3472c4e52faf3bf580029',
gas: '3000000'
}, function (e, contract){
console.log(e, contract);
if (typeof contract.address !== 'undefined') {
console.log('Contract mined! address: ' + contract.address + ' transactionHash: ' + contract.transactionHash);
}
})
mshkdemoContract智能合约的代码可以通过https://remix.ethereum.org/ 生成。
智能合约对应的solidity代码如下
pragma solidity ^0.4.9;
contract mshkDemo {
function mshkadd(uint a) public returns (address, uint b) {
uint resutl = a+2009;
return (msg.sender, resutl);
}
}
执行智能合约
miner.start()
mshkdemo.mshkadd.call(10)
miner.stop()
genesis.json内容
{
"config": {
"chainId": 10,
"homesteadBlock": 0,
"eip155Block": 0,
"eip158Block": 0
},
"coinbase" : "0x0000000000000000000000000000000000000000",
"difficulty" : "0x20000",
"extraData" : "",
"gasLimit" : "0x2fefd8",
"nonce" : "0x0000000000000042",
"mixhash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"parentHash" : "0x0000000000000000000000000000000000000000000000000000000000000000",
"timestamp" : "0x00",
"alloc" : {}
}
https://www.cnblogs.com/lion.net/p/7809862.html
http://www.cnblogs.com/lion.net/p/7809891.html
http://www.hyipc.com/?p=974