イーサリアムネットワーク
イーサリアムネットワークは、ユーザーが分散型の方法でスマートコントラクトを記述し計算することを可能にする分散合意プラットフォームです。スマートコントラクトは本質的にチューリング完全なプログラムであり、ネットワークのユニークなアドレスで利用可能です。スマートコントラクトがトランザクションの一部として実行されると、その結果と契約の現在の状態は、ネットワーク全体のノードによって合意された検証可能な合意に保存されます。
ユーザーが特定の入力でスマートコントラクトを実行したい場合、彼らはコマンドと共にETHとして知られる通貨を提供します。この通貨は、トランザクションを分散合意に追加するために貢献する特定のノードセットに割り当てられます。
スマートコントラクトがネットワーク内の異なる個人に金銭的な金額を移動させる場合、これも合意に記録されます。このようにして、この合意はネットワークの現在の状態を表し、各個人が所有するイーサリアム通貨の正確な量を示します。
ネットワーク上のすべてのトランザクションは、全体の合意を構成する「ブロック」に保存されます。簡単に言えば、合意は、イーサリアムプラットフォームの全履歴におけるすべてのトランザクションを表す、ユニークな識別子が増加する単一のブロックのシーケンスです。
各ブロックには、ブロックを取得して検査するために使用できるユニークなハッシュ識別子(0xd4e56740f876aef8c010b86a40d5f56745a118d0906a34e69aec8c0db1cb8fa3qのような長い16進数文字列)が含まれています。ブロック内の各トランザクションにも、個々のトランザクションを取得するために使用できるユニークなハッシュ識別子があります。新しいトランザクションがブロックの一部として合意にアップロードされると、この更新はネットワーク全体に送信され、誰でも発生したトランザクションの性質を読むことができます。これにより、ネットワーク全体の状態が説明可能になります。
コンテンツを読むには、ユーザーは稼働中のイーサリアムノードと対話する必要があります。このようなノードは、ユーザーのマシン上でデーモンとしてローカルに実行できます(例: https://github.com/ethereum/go-ethereum/ ↗)。ユーザーがそのようなノードにアクセスすると、公式のJSONRPC APIを使用してネットワークにクエリを送信し、合意の特定の側面について学ぶことができます。
コンテンツの書き込みも同様に簡単で、単一のJSONコマンド ↗を使用して行うことができます。ただし、トランザクションの書き込みには、通貨を保持するイーサリアムウォレット ↗の秘密鍵と共に一定量の通貨を提供する必要があります。これが提供できれば、書き込みトランザクションは広範なネットワークに送信され、合意に追加されます。
カスタムドメイン名からアクセス可能なイーサリアムネットワークを利用したい場合は、新しいイーサリアムゲートウェイを作成する ↗ことで実現できます。
さらに学びたい場合は、公式のRPCドキュメント ↗や、イーサリアムによって提供される公式ドキュメントを読むことができます ↗。