一般機能
Bubblegumツリーの作成
はじめに
圧縮NFTのデータはトランザクション内に保存され、オンチェーンアカウントには保存されませんが、マークルツリーとその設定を追跡するためのオンチェーンアカウントが必要です。そのため、圧縮NFTのミントを開始する前に、2つのアカウントを作成する必要があります:
- マークルツリーアカウント。このアカウントは、あらゆる種類のデータの真正性を検証するために使用できる一般的なマークルツリーを保持します。これは、Solanaによって作成・維持されているアカウント圧縮プログラムによって所有されています。私たちの場合、これを使用して圧縮NFTの真正性を検証します。
- ツリー設定アカウント。この2番目のアカウントは、マークルツリーアカウントのアドレスから派生したPDAです。これにより、圧縮NFTに特有のマークルツリーの追加設定(例:ツリー作成者、ミント済みcNFTの数など)を保存できます。
これらの2つのアカウントがあれば、圧縮NFTのミントを開始するために必要なすべてが揃います。関連するツリー設定アカウントを持つマークルツリーアカウントをBubblegumツリーと呼びます。
Bubblegumツリーの作成
これらのアカウントの両方を作成してBubblegumツリーを作成する方法を見てみましょう。幸いなことに、私たちのライブラリはすべてを処理するツリー作成操作を提供することで、このプロセスを簡単にしています。この操作は、さまざまなパラメータ(そのほとんどがオプション)を受け入れ、Bubblegumツリーを私たちのニーズに合わせてカスタマイズできます。最も重要なものは次のとおりです:
- マークルツリー: マークルツリーアカウントの作成に使用される新しく生成された署名者。マークルツリーアカウントは、このアドレスでアクセス可能になります。
- ツリー作成者: Bubblegumツリーを管理し、圧縮NFTをミントできるアカウントのアドレス。
- 最大深度と最大バッファサイズ: 最大深度パラメータは、マークルツリーが保持できるリーフの最大数、つまり圧縮NFTを計算するために使用されます。この最大値は
2^maxDepthで計算されます。最大バッファサイズパラメータは、マークルツリーの最小同時実行制限を示します。言い換えると、ツリーで並行して発生できる変更の数を定義します。これらの2つのパラメータは任意に選択することはできず、以下の表に表示されている事前定義された値のセットから選択する必要があります。
以下は、Solanaエコシステム内での互換性のための推奨ツリー設定です。
| cNFTの数 | ツリーの深度 | キャノピーの深度 | 同時実行バッファ | ツリーのコスト | cNFTあたりのコスト |
|---|---|---|---|---|---|
| 16,384 | 14 | 8 | 64 | 0.3358 | 0.00002550 |
| 65,536 | 16 | 10 | 64 | 0.7069 | 0.00001579 |
| 262,144 | 18 | 12 | 64 | 2.1042 | 0.00001303 |
| 1,048,576 | 20 | 13 | 1024 | 8.5012 | 0.00001311 |
