LoginSignup
2
1

More than 5 years have passed since last update.

Ethereumの環境構築(ethereum1)

Last updated at Posted at 2017-12-19

Inside Mac

Mac上でvagrantにguestを追加

bash
vagrant box add "ubuntu-16_0_4" https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-vagrant.box
bash
mkdir ethereum_workspace
bash
cd ethereum_workspace
bash
vagrant init
bash
vi Vagrantfile
Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.define "host" do |node|
    node.vm.box = "ubuntu-16_0_4"
    node.vm.hostname = "ethereum1"
    node.vm.network :private_network, ip: "192.168.43.61"
  end

  config.vm.provider "virtualbox" do |vm|
    vm.customize ["modifyvm", :id, "--memory", "2048"]
  end
end
bash
vagrant up
bash
vagrant ssh

inside Ubuntu

bash
sudo apt-get update
bash
sudo apt-get install -y build-essential libgmp3-dev golang git tree
bash
cd
bash
git clone https://github.com/ethereum/go-ethereum.git
bash
cd go-ethereum/
bash
git checkout refs/tags/v1.5.5

build

bash
make geth

check geth version

bash
./build/bin/geth version
shell-session
Geth
Version: 1.5.5-stable
Git Commit: ff07d54843ea7ed9997c420d216b4c007f9c80c3
Protocol Versions: [63 62]
Network Id: 1
Go Version: go1.6.2
OS: linux
GOPATH=
GOROOT=/usr/lib/go-1.6
bash
sudo cp build/bin/geth /usr/local/bin/

confirm user

bash
id
shell-session
uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),110(lxd)
mkdir ~/data_testnet
cd ~/data_testnet
pwd
shell-session
/home/ubuntu/data_testnet
vi genesis.json
genesis.json
{
  "nonce": "0x0000000000000042",
  "timestamp": "0x0",
  "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "extraData": "0x0",
  "gasLimit": "0x8000000",
  "difficulty": "0x4000",
  "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
  "coinbase": "0x3333333333333333333333333333333333333333",
  "alloc": {}
}

Gethを初期化

geth --datadir ~/data_testnet init ~/data_testnet/genesis.json
shell-session
I1219 08:17:08.410343 cmd/utils/flags.go:615] WARNING: No etherbase set and no accounts found as default
I1219 08:17:08.410851 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /home/ubuntu/data_testnet/geth/chaindata
I1219 08:17:08.418139 ethdb/database.go:176] closed db:/home/ubuntu/data_testnet/geth/chaindata
I1219 08:17:08.418272 ethdb/database.go:83] Allotted 128MB cache and 1024 file handles to /home/ubuntu/data_testnet/geth/chaindata
I1219 08:17:08.423806 cmd/geth/chaincmd.go:131] successfully wrote genesis block and/or chain rule set: 3b3326d56983eec74bcd3c5757801dcd42e0bf2f169fc0c5d695e28e20f217d7

check current status

tree
.
├── genesis.json
├── geth
│   └── chaindata
│       ├── 000002.log
│       ├── CURRENT
│       ├── LOCK
│       ├── LOG
│       └── MANIFEST-000003
└── keystore

start geth

geth --networkid 4649 --nodiscover --maxpeers 0 --datadir /home/ubuntu/data_testnet console 2>> /home/ubuntu/data_testnet/geth.log
Welcome to the Geth JavaScript console!

instance: Geth/v1.5.5-stable-ff07d548/linux/go1.6.2
 modules: admin:1.0 debug:1.0 eth:1.0 miner:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0

explanation of option

サービスレベル サービス名
--networkid 4649 ネットワーク識別子(整数)。0 ~ 3 は予約済みです (0=Olympic (disused), 1=Frontier, 2=Morden (disused), 3=Ropsten) (default: 1)。それ以外の数値であれば問題ありません。今回は 4649 を指定 しました。
--nodiscover あなたのノードを、他のノードから検出できないようにするオプションです。ノード追加は手動にな ります。指定しないと、同じ GenesisファイルとネットワークIDのブロックチェーンネットワークにあなたのノードが接続してしまう可能性があります。
--maxpeers 0 あなたのノードに接続できるノード数です。0 を指定すると、他のノードとは接続しなくなります。
--datadir /home/ubuntu/data_testnet データディレクトリを指定します。指定しないと、デフォルトのディレクトリが使用されます。
console 対話型のJavaScriptコンソールを起動します。
2>> /home/ubuntu/data_testnet/geth.log ログファイルを作成するため、エラー出力をリダイレクトします。これは Geth のオプションではあ りません。
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1