GethをVagrantのUbuntuにインストール

(参考)
https://github.com/ethereum/go-ethereum/wiki/Installation-Instructions-for-Ubuntu
http://loumo.jp/wp/archive/20150626000042/

#vagrantのインストール

vagrant box add ubuntu14.04 https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
vagrant init
vim Vagrantfile 
config.vm.box = "ubuntu14.04"
vagrant up

#ログイン
vagrant ssh  または外部の場合 ssh 192.168.0.1 -l ubuntu

#インストール
sudo apt-get install software-properties-common

(aptパッケージを探すためのユーティリティ)

sudo apt-get install apt-file
sudo apt-file update
sudo apt-file search add-apt-repository
sudo apt-get install software-properties-common

(イーサリアム用のパッケージを入れる)

sudo add-apt-repository -y ppa:ethereum/ethereum
sudo apt-get update

(ここでようやくイーサリアムをインストールできる)

sudo apt-get install ethereum

#ポート解放する

sudo ufw status
sudo ufw allow 8575 <-Gethで使う
sudo ufw allow 80 <-browser-solidityで使う
#許可ポート以外閉じる
sudo ufw default deny

#準備

sudo apt-get install vim
mkdir data_testnet
cd data_testnet
vim genesis.json  -> 設定する
{
"nonce": "0x0000000000000042",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"difficulty": "0x400",
"alloc": {},
"coinbase": "0x3333333333333333333333333333333333333333",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "0x",
"gasLimit": "0x8000000",
"config": {}
}
#初期化
geth --datadir /home/ubuntu/data_testnet/ init /home/ubuntu/data_testnet/genesis.json
#ログイン
geth --networkid "10" --nodiscover --datadir "/home/ubuntu/data_testnet" console 2>> /home/ubuntu/data_testnet/geth_err.log
#ログイン2
geth --mine --minerthreads 2 --identity "sampleNode" --rpc --rpcport 8575 --rpcapi "web3,eth,net,personal" --rpccorsdomain "*" --rpcaddr "0.0.0.0" --datadir "/home/ubuntu/data_testnet" --unlock 0 --nodiscover --networkid 10 console 2>> /home/ubuntu/data_testnet/geth.log

#curlして見る。8575ポートが解放されていて、Gethが起動して入れば疎通できるはず。

curl -X POST http://192.168.0.1:8575/  --data '{"jsonrpc":"2.0","method":"web3_clientVersion","params":[],"id":1}'

#solcインストール

sudo apt-get install solc
solc --version
>Version: 0.4.14+commit.c2215d46.Linux.g++
which solc
>/usr/bin/solc

#browser-solidityを使えるようにする為にapacheを起動してコードを/var/www/html配下に設置する

sudo apt-get -y install apache2
sudo apt-get install git
sudo apt-get install unzip
sudo apachectl start

cd /var/www/html/
sudo wget https://github.com/ethereum/browser-solidity/archive/gh-pages.zip
sudo unzip gh-pages.zip

http://192.168.0.1/browser-solidity-gh-pages/

eth.accounts
personal.unlockAccount("0xd9155326452b5e90e81e1a878794b061a7c719ec", "hoge1")
personal.unlockAccount("0x5ad66cc65fa30eb8ef7b4ae4935a0dcb28bf4105", "hoge2")
eth.sendTransaction({from: "0xd9155326452b5e90e81e1a878794b061a7c719ec", to: "0x5ad66cc65fa30eb8ef7b4ae4935a0dcb28bf4105", value: web3.toWei(1, "ether")})
pragma solidity ^0.4.0;
contract sample {
    int num;
    function set_num(int n){
        num = n;
    }
    function get_num() returns(int) {
        return num;
    }
}