Ethereum: Difference between revisions
No edit summary |
No edit summary |
||
| Line 72: | Line 72: | ||
Copy the ~/.ethereum/keystore as a backup. It contains your encrypted key. Also, don't forget your passphrase. | Copy the ~/.ethereum/keystore as a backup. It contains your encrypted key. Also, don't forget your passphrase. | ||
=== Private Test Net === | |||
To start your own test network with your own ether, install geth and then do the following: | |||
<syntaxhighlight lang="text"> | |||
mkdir /tmp/eth/70 | |||
geth console | |||
personal.newAccount('password') | |||
eth.accounts[0] | |||
// you can check the eth.accounts[0] address, copy it and memo to somewhere | |||
// control + c then escape from geth console. | |||
// next make the private net genesisblock json file. | |||
vim privatenet_genesis_block.json | |||
// this is my sample of testnet genesis block json thank you @karalabe san | |||
{ | |||
"nonce": "0xlitebeefdeadbeef", | |||
"timestamp": "0x0", | |||
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000", | |||
"extraData": "0x634f727365", | |||
"gasLimit": "0x8000000", | |||
"difficulty": "0x400", | |||
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000", | |||
"coinbase": "0x3333333333333333333333333333333333333333", | |||
"alloc": { | |||
} | |||
} | |||
// then use the previous eth.accounts[0] to the {should be input } place. | |||
geth --datadir="/tmp/eth/70" --etherbase="{should be input }" --genesis privatenet_genesis_block.json console | |||
privatenet | |||
</syntaxhighlight> | |||
[[Category:Linux]] | [[Category:Linux]] | ||
{{Navbox Linux}} | {{Navbox Linux}} | ||
Revision as of 06:47, 31 August 2015
Ethereum is a crypto platform for running smart contracts and exchanging Ether.
My address is 0xd2f887eda1b28c8714dbb2cf63a59f77fb68fb94
Go-Ethereum (geth)
The Ethereum client written in Go.
Setup
On a Fedora 22 machine, download and install the go client from golang's website. Compile the most recent version of go-ethereum using the official client and then run geth.
The Fedora 22 version of go will not work.
Usage
Get Balance
web3.fromWei(eth.getBalance(eth.coinbase), "ether")
Get my address
eth.coinbase
or
eth.accounts[0]
Start CPU Mining
miner.setEtherbase(eth.accounts[0]) miner.start()
CPP-Ethereum (eth)
The official C++ version of the Ethereum client.
Setup Overview
On a Fedora 22 machine, you will need to:
- Download and compile the most recent version of LLVM. The packaged version of LLVM available from the official repositories is only version 3.7.
- Git clone v0.4.1 branch of the libjson-rpc-cpp code base. Versions higher may not compile. The most recent version fails due to dependency issues. Install to /usr or /opt/
- Install QT5.5 from the official website using their binary blob installer. The official repository does not have QT5 webengine. Neither does the official source.
- Compile ethereum using the dependencies installed above.
Some dependencies:
yum -y install libffi-devel cryptopp cryptopp-devel \ argtable argtable-devel libmicrohttpd libmicrohttpd libmicrohttpd-devel \ cmake jsoncpp-devel jsoncpp gmp-devel \ leveldb-devel leveldb-devel pocl
Build LLVM 3.8
git clone http://llvm.org/git/llvm.git cd llvm mkdir build ; cd build ../configure --prefix=/opt/llvm --enable-libffi make -j 8 make install
Build libjson-rpc-cpp
git clone https://github.com/cinemast/libjson-rpc-cpp cd libjson-rpc-cpp git checkout tags/v0.4.1 mkdir -p build cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make sudo make install sudo ldconfig
Build Ethereum
You may want to make a symlink for llvm/include/llvm-c and llvm/include/llvm in /usr so that the cmake files can find it. Defining LLVM_DIR is not sufficient.
git clone ethereum-cpp cd ethereum-cpp mkdir build cd build LLVM_DIR=/opt/llvm/include CMAKE_PREFIX_PATH=/opt/llvm/include:/opt/Qt5.5.0/Tools:/opt/Qt5.5.0/5.5/gcc_64/ cmake -DCMAKE_INSTALL_PREFIX=/opt/ethereum ..
Other Topics
Backing up your key
Copy the ~/.ethereum/keystore as a backup. It contains your encrypted key. Also, don't forget your passphrase.
Private Test Net
To start your own test network with your own ether, install geth and then do the following:
mkdir /tmp/eth/70
geth console
personal.newAccount('password')
eth.accounts[0]
// you can check the eth.accounts[0] address, copy it and memo to somewhere
// control + c then escape from geth console.
// next make the private net genesisblock json file.
vim privatenet_genesis_block.json
// this is my sample of testnet genesis block json thank you @karalabe san
{
"nonce": "0xlitebeefdeadbeef",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x634f727365",
"gasLimit": "0x8000000",
"difficulty": "0x400",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {
}
}
// then use the previous eth.accounts[0] to the {should be input } place.
geth --datadir="/tmp/eth/70" --etherbase="{should be input }" --genesis privatenet_genesis_block.json console
privatenet