Closed soudegesu closed 6 years ago
入るためには Ropsten
の 1Ethが必要らしいので取りに行く
Metamask
がいろんなサイトで紹介されているけど、パクられたらやなので、普段使いじゃない
FireFoxにpluginをインストールする
パスワードと12単語をコピって保存しておく
Ropsten Testネットで Buy
する
「request 1 ether from faucet」
を押して拝借する
getできたので 開発者コミュに入れた
やっぱudemyか
Gethをインストールする
brew tap ethereum/ethereum
brew install ethereum
プライベートネットを作成する
mkdir ~/workspace/eth_private_net
jsonファイルを作成する.
{
"config": {
"chainId": 15
},
"nonce": "0x0000000000000042",
"timestamp": "0x0",
"parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"extraData": "",
"gasLimit": "0x8000000",
"difficulty": "0x4000",
"mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x3333333333333333333333333333333333333333",
"alloc": {}
}
ブロックチェーン情報の初期化
geth --datadir ~/workspace/eth_private_net init ~/workspace/eth_private_net/myGenesis.json
こんなのが出た
INFO [02-26|16:35:29] Maximum peer count ETH=25 LES=0 total=25
INFO [02-26|16:35:29] Allocated cache and file handles database=/Users/takaaki-suzuki/workspace/eth_private_net/geth/chaindata cache=16 handles=16
INFO [02-26|16:35:29] Writing custom genesis block
INFO [02-26|16:35:29] Persisted trie from memory database nodes=0 size=0.00B time=13.347µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [02-26|16:35:29] Successfully wrote genesis state database=chaindata hash=7b2e8b…7e0432
INFO [02-26|16:35:29] Allocated cache and file handles database=/Users/takaaki-suzuki/workspace/eth_private_net/geth/lightchaindata cache=16 handles=16
INFO [02-26|16:35:29] Writing custom genesis block
INFO [02-26|16:35:29] Persisted trie from memory database nodes=0 size=0.00B time=2.303µs gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [02-26|16:35:29] Successfully wrote genesis state database=lightchaindata hash=7b2e8b…7e0432
通常の通貨のトランザクションは
hold on your hat
驚かないでね。(乞うご期待的な意味)
UTXO
という仕組みがある
http://gaiax-blockchain.com/utxo
Ethereum
はUTXOを使っていないのか
Ethereum
は Proof of Stake
を採用しているらしい
https://coinotaku.com/?p=1302
大きく2つあるらしい
Proof of work
に Coin Ageの概念を追加したもの
フォージング
と呼ばれるEthereum は今はProof of work を採用しているが将来的には Proof of Stake
に以降する。
でも予定は未定。
段階的アプデートが提唱されていて、以下のようなプロジェクトが存在する。
Proof of WorkからProof of Stakeに移行する際にマイナーがProof of Workを採用しているブロックチェーンに残り続けないように、ディフィカルティボムという仕組みが予め定められていました。このデフィカルティボムは、Proof of Workのままではマイナーの採算が合わなくなるように、マイニングの難易度を徐々に上げていくというものです。
Ethereum 上でのPoSの実装が Casper
で 不正なトランザクションを 承認した場合に与える罰としての仕組みとして Slasher
も提案されている
マイニング承認システム と トランザクションアルゴリズム を注目すると良い
3layer model
INFURA
っていうサービスがあるのか。知らなかった。
pseudonymity: 偽名
Bitcoinは1MB/blockなため4トランザクション/s, 4million gasのためEthは 20トランザクション/s
Visaカードは40000トランザクション/sでさばいているからそれに比べるとしょぼい
ganache はエミュレータらしい
以下を実行する
puppeth
こんなの出てきた
+-----------------------------------------------------------+
| Welcome to puppeth, your Ethereum private network manager |
| |
| This tool lets you create a new Ethereum network down to |
| the genesis block, bootnodes, miners and ethstats servers |
| without the hassle that it would normally entail. |
| |
| Puppeth uses SSH to dial in to remote servers, and builds |
| its network components out of Docker containers using the |
| docker-compose toolset. |
+-----------------------------------------------------------+
NetworkNameを決める
ChainSkills
GenesisBlockを作成する 2
を入力
Which consensus engine to use? (default = clique)
1. Ethash - proof-of-work
2. Clique - proof-of-authority
PoWのどのアルゴリズムを採用するか選ぶ。今回は 1
アカウントは何も押さずにEnter
Which accounts should be pre-funded? (advisable at least one)
> 0x
使うNetworkIDは
1がMainnet
2がMorden test net(obsolete)
3がRopsten test net
4がRinkeby test net
42がKovan test net
Specify your chain/network ID if you want an explicit one (default = random)
今回は 4224
とする
What would you like to do? (default = stats)
1. Show network stats
2. Manage existing genesis
3. Track new remote server
4. Deploy network components
> 2
1. Modify existing fork rules
2. Export genesis configuration
3. Remove genesis configuration
> 2
Which file to save the genesis into? (default = ChainSkills.json)
>
INFO [03-03|06:09:57] Exported existing genesis block
ここまで来ると1周するので Cntl + C
でExitする
ChainSkills.json
が出来ている
config
ブロックがChainのパラメータ
config: {
"chainId": 4224, //さっき指定したNetworkのID
"homesteadBlock": 1,
"eip150Block": 2,
"eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"eip155Block": 3,
"eip158Block": 3,
"byzantiumBlock": 4, //ビザンティウムにおける4block目から開始
"ethash": {}
},
"nonce": "0x0",
"timestamp": "0x5a99bb29", // difficultyが設定されたtimestamp。これとの差が大きければdifficultyが下がる。また、blockのオーダーにも使用される。
"extraData": "0x0000000000000000000000000000000000000000000000000000000000000000", //付加情報(ラベルとか)。今回は使わない
"gasLimit": "0x47b760", // gasのトランザクション最大数。各ブロックの処理要求の制限に利用。
"difficulty": "0x80000", // 値が低い方がいいらしい
"mixHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
"coinbase": "0x0000000000000000000000000000000000000000", // マイニング成功後に取得できるアドレス(新block追加時にマイナーの新しいアドレスに置き換わる)
"alloc": { // preallocate されたwalletのアドレス
"0000000000000000000000000000000000000000": {
"balance": "0x1"
},
"number", "0x0",
"gasUsed": "0x0" //このブロックで使用されたgas
"parent": "0x0000000000000000000000000000000000000000000000000000000000000000" //親のhash(今はないから0)
初期化をする
geth --datadir ./private init ./ChainSkills.json
INFO [03-04|06:55:40] Maximum peer count ETH=25 LES=0 total=25
INFO [03-04|06:55:40] Allocated cache and file handles database=/xxxx/private/truffle-test/private/geth/chaindata cache=16 handles=16
INFO [03-04|06:55:40] Writing custom genesis block
INFO [03-04|06:55:40] Persisted trie from memory database nodes=354 size=65.02kB time=2.714835ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [03-04|06:55:40] Successfully wrote genesis state database=chaindata hash=5ef01e…4055b0
INFO [03-04|06:55:40] Allocated cache and file handles database=/xxxx/private/truffle-test/private/geth/lightchaindata cache=16 handles=16
INFO [03-04|06:55:40] Writing custom genesis block
INFO [03-04|06:55:40] Persisted trie from memory database nodes=354 size=65.02kB time=2.125845ms gcnodes=0 gcsize=0.00B gctime=0s livenodes=1 livesize=0.00B
INFO [03-04|06:55:40] Successfully wrote genesis state database=lightchaindata hash=5ef01e…4055b0
なんかファイルが更新された。 ここでは初期化されただけっぽい
geth --datadir . account new
パスワード作成を要求されるので適当に打ち込む
addressが出てきた
Your new account is locked with a password. Please give a password. Do not forget this password.
Passphrase:
Repeat passphrase:
Address: {2f048cd640f7de2fbde6eb611884c0c1f57b28f0}
↑のコマンドを実行するたびにアカウントが作成できる
開発者向けコミュニティに入るために頑張る https://qiita.com/amachino/items/605ff76209d7193dc92c