Skip to content

Commit

Permalink
fix: markdown syntax
Browse files Browse the repository at this point in the history
  • Loading branch information
wackerow committed Oct 16, 2024
1 parent 08d2fe0 commit 8845e38
Show file tree
Hide file tree
Showing 3 changed files with 3 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -150,8 +150,7 @@ Solidityスマートコントラクト用の単体テストフレームワーク

単体テストでは、コントラクトの関数を個別にデバッグしましたが、統合テストでは、スマートコントラクトのコンポーネント全体を評価します。 統合テストでは、スマートコントラクト間の呼び出しで発生する問題や、同じスマートコントラクト内の異なる関数間のやり取りで発生する問題を検出できます。 例えば、[継承](https://docs.soliditylang.org/en/v0.8.12/contracts.html#inheritance)や依存性注入などの機能が正しく動作するかどうかを確認するのに役立ちます。

統合テストは、コントラクトがモジュラー型アーキテクチャを採用していたり、実行中に他のオンチェーンコントラクトと接続する場合に有用です。 統合テストを実行する方法の1つは、([Forge](https://book.getfoundry.sh/forge/fork-testing)[Hardhat](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks)などのツールを使用して)ブロックチェーンの</a>特定のブロックの高さで
フォークすることです。そして、デプロイされたコントラクトと作成したコントラクトのやり取りをシミュレートします。</p>
統合テストは、コントラクトがモジュラー型アーキテクチャを採用していたり、実行中に他のオンチェーンコントラクトと接続する場合に有用です。 統合テストを実行する方法の1つは、([Forge](https://book.getfoundry.sh/forge/fork-testing)[Hardhat](https://hardhat.org/hardhat-network/docs/guides/forking-other-networks)などのツールを使用して)ブロックチェーンの特定のブロックの高さで[フォーク](/glossary/#fork)することです。そして、デプロイされたコントラクトと作成したコントラクトのやり取りをシミュレートします。

フォークされたブロックチェーンは、メインネットと同様の仕組みで動作し、アカウントに状態と残高が関連付けられています。 しかし、サンドボックス化されたローカル開発環境としてのみ機能します。例えば、トランザクションに実際のETHは必要なく、変更しても実際のイーサリアムプロトコルに影響することはありません。

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ event Deposit(

#### 出金イベント

`redeem`</a> あるいは [`withdraw`](#withdraw)メソッドにより、預金者がボールトからシェアを引き出す際に、**必ず**発行しなければなりません。
[`redeem`](#redeem) あるいは [`withdraw`](#withdraw)メソッドにより、預金者がボールトからシェアを引き出す際に、**必ず**発行しなければなりません。

```solidity
event Withdraw(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ SSLE(シークレット・シングル・リーダー選出)では、選出さ

## シークレット・非シングル・リーダー選出(SnSLE) {#secret-non-single-leader-election}

プルーフ・オブ・ワークにおいてブロックの提案を決定する方法と同様に、バリデータが各スロットでブロックを提案する機会をランダムに与える仕組みもあり、<strong x-id=1">シークレット・非シングル・リーダー選出(SnSLE)</strong>と呼ばれています。 例えば、現在のプロトコルでバリデータをランダムに選択するために使われているRANDAO関数を活用すれば、簡単に実現できます。 RANDAOを使うアイデアとは、多くの独立しているバリデータから送信されたハッシュを混合することで、十分な乱数が生成するというものです。 SnSLEにおいて、これらのハッシュを使って、次のブロック提案者を選ぶことができます。例えば、最小値のハッシュの選択です。 有効なハッシュ値の範囲を設定することで、各スロットでバリデータが選ばれる可能性を調整することができます。 ハッシュ値が`2^256 * 5 / N` (`N` = アクティブなバリデータ数)未満でなければならないとアサートすると、各スロットで個々のバリデータが選択される可能性は、`5/N`になります。 この例では、少なくとも1人の提案者が各スロットで有効なハッシュを生成する確率は99.3%になります。
プルーフ・オブ・ワークにおいてブロックの提案を決定する方法と同様に、バリデータが各スロットでブロックを提案する機会をランダムに与える仕組みもあり、**シークレット・非シングル・リーダー選出(SnSLE)**と呼ばれています。 例えば、現在のプロトコルでバリデータをランダムに選択するために使われているRANDAO関数を活用すれば、簡単に実現できます。 RANDAOを使うアイデアとは、多くの独立しているバリデータから送信されたハッシュを混合することで、十分な乱数が生成するというものです。 SnSLEにおいて、これらのハッシュを使って、次のブロック提案者を選ぶことができます。例えば、最小値のハッシュの選択です。 有効なハッシュ値の範囲を設定することで、各スロットでバリデータが選ばれる可能性を調整することができます。 ハッシュ値が`2^256 * 5 / N` (`N` = アクティブなバリデータ数)未満でなければならないとアサートすると、各スロットで個々のバリデータが選択される可能性は、`5/N`になります。 この例では、少なくとも1人の提案者が各スロットで有効なハッシュを生成する確率は99.3%になります。

## 現在の進行状況 {#current-progress}

Expand Down

0 comments on commit 8845e38

Please sign in to comment.