開発ツール群
イーサリアムのエコシステムが拡大するにつれ、アプリケーションを開発するための周辺環境も充実してきました。
開発者向けではありますが、ここでいくつか紹介しておきます。
フレームワーク
- Truffle:https://trufflesuite.com/
- Embark:https://framework.embarklabs.io/
- OpenZeppelin:https://openzeppelin.com/
ライブラリ
- web3.js:https://github.com/ChainSafe/web3.js
- web3.py:https://github.com/ethereum/web3.py
- EthereumJS:https://ethereumjs.github.io/
- web3j:https://www.web3labs.com/web3j-sdk
- ethers.js:https://github.com/ethers-io/ethers.js/
その他
- EthereumJS helpeth:https://github.com/ethereumjs/helpeth
- dapp.tools:https://dapp.tools/
- SputnikVM:https://github.com/etcdevteam/sputnikvm
- Ethereum Developer Tools List:https://github.com/ConsenSys/ethereum-developer-tools-list#ethereum-developer-tools-list
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
ガス関連
イーサリアムを使用する場合、ガス代がいくらなのかは重要な確認事項になってきます。
ガス代をすぐに確認できるよう、見慣れたWebサイトを決めておくと良いでしょう。
- Etherscan:https://etherscan.io/gastracker
- ETH Gas Station:https://ethgasstation.info/
- Gas Now:https://www.gasnow.org/
- Bloxy:https://stat.bloxy.info/superset/dashboard/gas/
- Blocknative:https://www.blocknative.com/gas-estimator
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
エクスプローラ
イーサリアムのようなパブリックチェーンの場合、記録されたデータは全て閲覧することが可能です。
しかしながら、ブロックチェーンに精通した開発者でもない限り、ブロックチェーンを実際に覗いてみることは難しいでしょう。
そのため、ほとんどパブリックチェーンにはエクスプローラが用意されています。
特にイーサリアムはエクスプローラが充実しているため、気軽に覗いてみることが可能です。
- Etherscan:https://etherscan.io/
- Etherchain:https://etherchain.org/
- Blockchain.com:https://www.blockchain.com/explorer?view=eth
- Blockchair:https://blockchair.com/ethereum
- Ethplorer:https://ethplorer.io/
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
クライアント、ノード
イーサリアムにアクセスするには、専用のクライアントが必要になります。
- Geth(Go実装):https://geth.ethereum.org/
- OpenEthereum(Rust実装):https://github.com/openethereum/openethereum
- Nethermind(C#、NET実装):https://nethermind.io/
- Besu(Java実装):https://consensys.net/quorum/developers/
- Trinity(Python実装):https://trinity.ethereum.org/
上記のクライアントを使用することで、「フルノード」「ライトノード」「アーカイブノード」を実行することができます。
- フルノード:完全なイーサリアムブロックチェーンのデータを保存し、全てのブロックとステートを検証する
- ライトノード:ヘッダーチェーンを保存し、ブロックヘッダーのステートルートに対してデータの有効性を検証する。主に低容量のデバイスで実行する際に使用
- アーカイブノード:フルノードと同様のデータを保存し、履歴を参照する際などに使用する。主にエクスプローラやウォレットが使用
- Etherscan(ノード関連データ):https://etherscan.io/nodetracker
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
ブロックサイズ
イーサリアムは、ビットコインと異なりブロックチェーンの各ブロックには明確なブロックサイズが設けられていません。
その代わり、ブロック内に格納されているトランザクションのgasLimitの合計値が、ブロック全体のgasLimitを下回るように設計されています。
つまり、ブロックサイズ=全トランザクションのgasLimitの合計となるのです。
ブロック全体のgasLimitは、イーサリアムの需要に合わせて少しずつ引き上げられています。
gasLimitの値はEtherscanで確認することが可能です。
なお、gasLimitはイーサリアムのマイナーが投票によって決定しています。
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
GHOSTプロトコルとNothing at Stake問題
ブロックチェーンは常に分岐を繰り返しながらブロックを連結させています。
イーサリアムでは、どのチェーンを正しいチェーンにするか決める際に、GHOST(Greedy Heaviest Observed Subtree)と呼ばれるプロトコルを使用します。
これは、単に最も長いチェーンを正しいチェーンとするのではなく、最も多くの計算が蓄積されているチェーンを正しいチェーンとする仕組みです。
イーサリアムは、ビットコインの約10分と比べてブロック生成時間が約15秒と短くなっています。
そのため、多くのマイナーが同時にマイニングに成功しやすくなっており、結果的に無駄になるマイニングリソースが多いのです。
これに対して、最も多くの計算が蓄積されているチェーンを正しいチェーンとすることで、最終的に正しいチェーンに費やされなかったマイニングリソースも無駄にせずに済みます。
具体的には、正しいチェーンから分岐したommer(uncle、孫)ブロックに費やされたマイニングリソース(ハッシュパワー)も、正しいチェーンの決定要素として考慮する仕組みです。
一方で、このあとのレッスンで学習するようにイーサリアムは将来的にプルーフオブステーク(PoS)へ移行します。
PoSへ移行するとマイニングが不要となるため、GHOSTプロトコルについても把握しておく必要はなくなります。
しかしながら、PoSにもNothing at Stakeと呼ばれる問題が存在します。
これは、PoSにおける不正なチェーンを生成する動機の抑制が弱いことを意味する問題です。
プルーフオブワーク(PoW)の場合、ブロックを生成するのに膨大な電気代がかかりますが、PoSの場合はETHをステークするだけで済みます。
そのため、ETHを持ってさえいれば簡単に不正なチェーンを生成することができてしまうのです。
もちろんこの問題にも対策は施されています。
イーサリアムのPoSでは、Slashing(スラッシング)という仕組みにより、不正なチェーンを生成した場合にステークしていたETHが没取されることになっています。
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!
イーサリアムの改善提案(EIP)
ビットコインやイーサリアムのようなパブリックチェーンには、改善提案を行う仕組みが用意されています。
ビットコインの場合はBIP(Bitcoin Improvement Proposals)、イーサリアムの場合はEIP(Ethereum Improvement Proposals)と呼ばれ、誰でも改善のためのアイデアを提案することが可能です。
このEIPに付随する形で誕生したのがERC(Ethereum Request for Comment)です。
ERCは、イーサリアムのスマートコントラクトに関する実装の提案で、ユーティリティトークンを簡単に開発できるERC-20や、Non-Fungible Token(NFT)を簡単に発行できるERC-721などがあります。
このERC-20によって爆発的に普及したのがICO(Initial Coin Offering)です。
Periksa kemajuan pelajaran
Setelah Anda memahami konten pelajaran,
klik tombol "Periksa"!