Ethereum 入门
2021-11-16 10:00:00
geth --datadir /Volumes/work/ethereum/data --http --http.addr 127.0.0.1 --http.api web3,eth,debug,personal,net --http.corsdomain "http://remix.ethereum.org,package://6fd22d6fe5549ad4c4d8fd3ca0b7816b.mod" --dev --vmdebug --allow-insecure-unlock > /Volumes/work/ethereum/data/geth.log 2>&1
geth attach --datadir /Volumes/work/ethereum/data
personal.newAccount('Eth1234Pwd')
personal.unlockAccount(eth.accounts[1],'Eth1234Pwd',0)
eth.sendTransaction({from:eth.coinbase,to:eth.accounts[1],value:web3.toWei(10000,'ether')})
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')
测试合约 经简单修改如下:
pragma solidity >=0.4.16 <0.9.0;
contract SimpleStorage {
uint storedData;
event history(uint x);
function set(uint x) public {
storedData = x;
emit history(x);
}
function get() public view returns (uint) {
return storedData;
}
}
var SimpleStorageContract = eth.contract([{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"x","type":"uint256"}],"name":"history","type":"event"},{"inputs":[],"name":"get","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"x","type":"uint256"}],"name":"set","outputs":[],"stateMutability":"nonpayable","type":"function"}])
var SimpleStorage = SimpleStorageContract.at('0x0')
SimpleStorage.history().watch(function(error,result){console.log(error,JSON.stringify(result))})
SimpleStorage.get.call()
SimpleStorage.set.getData(1024)
eth.sendTransaction({from:eth.coinbase,to:'0x0',data:'0x60fe47b10000000000000000000000000000000000000000000000000000000000000400'})
curl localhost:8545 -X POST \
--header "Content-Type: application/json" \
--data '{"jsonrpc":"2.0","method":"eth_call","params":[{"to":"0x0","data":"0x6d4ce63c"},"latest"],"id":1}'