2つのアップグレードを同時リリース;BSV v1.0.8 (ベータ版) と mAPI v1.3.0 (ベータ版)

By Press Release Published: 5月 11, 2021
2-upgrades-released-simultaneously-BSV-v1.0.8-(Beta)-&-mAPI-v1.3.0-(Beta)

ビットコインSVチームは、2つのアップグレードを同時にリリースしました。

リリースは以下の通りです:

  1. ビットコインSV ノードソフトウェア – v1.0.8 ベータ版へのアップグレード
  2. mAPI v1.3.0ベータ版

 

ビットコインSVノードソフトウェア – v1.0.8(ベータ版)へのアップグレード

バージョン1.0.8(ベータ版)は、バージョン1.0.7.1からの推奨アップグレードです。この新バージョンでは、mAPIやカスタムアプリケーションなどのリモートエンドポイントに対する二重支出の試みを報告する機能がサポートされています。また、特に依存関係にあるトランザクションの複雑なグラフの処理に関して、パフォーマンスの向上が図られています。

コンテンツの詳細は以下の通りです:

  1. double-spend-notifyが有効なトランザクションのサポート。入力の二重支払が検出された場合、指定されたエンドポイントにHTTP通知が送信されます。(詳細は以下を参照してください https://github.com/bitcoin-sv-specs/protocol )
  2. 新規getorphaninfo RPC。
  3. 新規verifyScript RPC。
  4. 新規getmerkleproof2 RPCは、最新のTSCと一致しています。
  5. maxstackmemoryusageconsensusパラメータがgetsettings RPCの出力に追加されました。
  6. sendrawtransactionおよびsendrawtransactions RPCは、トランザクションが既知の場合でもdontCheckFeesで使用できます。
  7. Sendrawtransactionおよびsendrawtransactions RPCが、未確認の親のリストをオプションで返すように修正されました。
  8. 新規設定パラメータdustlimitfactorでダストを定義できるようになりました。 *
  9. ダストリターントランザクション*
  10. 非同期タスクのデフォルトの最大検証時間を調整し、チェーンや長いグラフをより適切に処理できるようになりました。
  11. アルゴリズムを,祖先の数ではなく祖先の高さを使用するように変更しました。
  12. オーファンプールからのリリース率を向上しました。
  13. cs_mainの処理の改善により、パフォーマンスが向上しました。
  14. チェーンの検証を強化しました。
  15. トランザクションは、結果が高さ10,000以上のメモリプール内祖先チェーンにある場合は受け付けられません。これまでこの制限は1,000件でした。
  16. コンフィギュレーションパラメーターmaxorphantxsizeのデフォルト値が1GBに変更されました。
  17. maxcollectedoutpoints設定パラメータは使用されなくなり、削除されました。
  18. STNがリセットされています。

 

*追加の注意事項

8.新しいコマンドラインオプション-dustlimitfactorでダストを定義できるようになりました。

これまでは、トランザクションの出力金額とそれに対応する手数料の最小比率は3/1でした。この条件が満たされていない場合、そのトランザクションは「ダスト」とみなされ、検証時に拒否されました。

この係数は、パーセント表示の新しいオプション“-dustlimitfactor”で設定できるようになりました。デフォルトは300%ですが、300%から0%までの任意の値に設定できます。

dustlimitfactor が0に設定されている場合は、どのトランザクション出力もダストとはみなされません。

ダスト閾値の計算式は以下の通りです(整数演算):

s = トランザクション出力のシリアル化されたサイズ

d = dustlimitfactor、3300から0までのパーセント値、デフォルト: 300

r = dustrelayfee、デフォルト:default-minrelaytxfee、v1.0.8時点で250

m = 148、消費可能な入力の最小バイト数

d * (r * (s + m)/1000)) / 100

なお、 dustlimitfactor はパーセント値を指定しているので,100で割っています。

: 出力サイズが34バイトの典型的なトランザクションの場合、この計算式では135サトシの閾値が得られます。

d = 300

s = 34

r = 250

閾値 = (300 * (250 * (34 + 148)/1000)) / 100 = 135

なお、浮動小数点演算を用いた場合、同じ計算式で136.5サトシの閾値が得られます。

その結果、1.0.8におけるデフォルトのパラメータ設定では、典型的なトランザクションの出力は、ダストとは見なされないためには少なくとも135サトシの価値がなければなりません。なお、 dustlimitfactor と dustrelayfee が非常に小さい場合、四捨五入の関係で、例のトランザクションで計算されたダスト閾値は0になります。

 

9.ダストリターンのトランザクション。

トランザクションの検証が緩和され、新しい種類のトランザクションである ダストリターントランザクションが使用可能になりました。この新しいトランザクションタイプは、ウォレットダスティング攻撃に対抗する新しい方法として、手数料を介してマイナーにダストを寄付できます。これはネットワークにとってより経済的です。なぜなら、ウォレットやUTXOのデータベースをクリアにすることで、実質的に使用不可能な出力を得ることができるからです。その一方で、ダストアタックを行うインセンティブを完全に排除しています。

以下の条件を満たした場合、そのトランザクションは ダストリターントランザクションとみなされます。

  • トランザクションには、ゼロ価値(ゼロ額)の単一の出力があります。
  • scriptPubKeyは次の通りです:

OP_FALSE OP_RETURN n ‘dust’。

n=プロトコルIDの長さ、つまり‘dust’の文字列サイズです。

  • 全ての入力が標準装備されているか、以下のパラメータが設定されているかのいずれかです。
    -acceptnonstdconsolidationinput=1 (デフォルト:0)
  • 非標準的なトランザクションを許可する必要があり、以下のような設定が必要です:
    -acceptnonstdtx=1 (デフォルト:1)

ダストリターントランザクション は、コンソリデーショントランザクションと以下2つの設定パラメータを共有しています:

  • -acceptnonstdconsolidationinput (デフォルト: false)
  • -minconsolidationfactor (デフォルト: not zero。コンソリデーションファクターを0にすると、コンソリデーショントランザクションができなくなり、ダストリターントランザクションもできなくなります。)

 

ダストリターントランザクションの例:

{
‘txid’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘hash’: ‘7a234eaa8615858e7b59cc46820fb71940fa9b1fd2cbac6c4ca3efc33767c6dc’,
‘version’: 1,
‘size’: 226,
‘locktime’: 0,
‘vin’: [
{
‘txid’: ‘471e1070d48faf20b599b2291c5c7550f9152d6e3549987d85dae82f2e96e93f’,
‘vout’: 0,
‘scriptSig’: {
‘asm’: ‘616161616161616161616161616161616161616161616161616161616161
61616161616161616161616161
616161616161616161616161616161616161616161616161616161616161616161616
1616161616161616161616161
616161616161616161616161616161616161616161616161616161616161616161616
16161616161616161616
161616161616161616161616161c2’,
‘hex’:
‘4c95616161616161616161616161616161616161616161616161616161616161616161
6161616161616161616
161616161616161616161616161616161616161616161616161616161616161616161616
16161616161616
161616161616161616161616161616161616161616161616161616161616161616161616
1616161616161616161616161
6161616161616161616161616161c2’
},
‘sequence’: 0
}
],
‘vout’: [
{
‘value’: Decimal(‘0.00’),
‘n’: 0,
‘scriptPubKey’: {
‘asm’: ‘0 OP_RETURN 11 647573745f72657475726e’,
‘hex’: ‘006a5b0b647573745f72657475726e’,
‘type’: ‘nulldata’
}
}
],
‘blockhash’: ‘380fe8631752b75ee3ce027bdf80e22f3445f4b620a9585b369fb9a0c3f2677e’,
‘confirmations’: 1,
‘time’: 1620224004,
‘blocktime’: 1620224004,
‘blockheight’: 208,
}

 

バイナリとソースコードはこちらからダウンロードできます:

URL: https://download.bitcoinsv.io/bitcoinsv/

サポートに関するご質問は、Eメール [email protected]またはテレグラムhttps://t.me/bitcoinsvsupport経由でお寄せください。

 

mAPIソフトウェア – v1.3.0(ベータ版)へのアップグレード

バージョン1.3.0(ベータ版)は、バージョン1.2.0からの推奨アップグレードです。今回のmAPIのリリースでは、リモートノードからの二重支出通知の受信をサポートしています。

ZMQサブスクリプションを介してmAPIに直接接続されているローカルノードに加えて、二重支出通知アドレスを含むトランザクションの二重支出を検出したBSVネットワーク内のリモートノードは、HTTPコールバックを介して検出された二重支出についてmAPIに通知できるようになりました。詳細は以下を参照してください https://github.com/bitcoin-sv-specs/protocol 

また、二重支出の通知機能も改善され、確認されていない親での二重支出が検出されるようになりました。mAPIは、二重支出を検出した場合、そのトランザクションだけでなく、確認されていない親のいずれかで二重支出が検出された場合も、加盟店に通知します。

コールバック通知に16進数でエンコードされたブロックヘッダを返す標準的なTSCフォーマットをMerkle証明通知に使用できるようになりました。

さらに、コールバックURLでのコールバック理由パラメータのサポート、カスタムデータベースサーバーの展開のサポート、より良い統合のための設定オプションの追加などの改良が加えられています。

コンテンツの詳細は以下の通りです:

  • 未確認の親には二重支出を通知します。
  • リモートノードからのダブルスパート通知用のコールバックエンドポイントをサポートしました。
  • TSC merkle proof formatのサポートを追加しました。
  • コールバックURLのcallback reasonパラメータのサポートを有効にしました。
  • カスタムデータベースサーバーの導入をサポートします。
  • 料金チェックを無効にする設定オプション。
  • mAPIでノードを登録する際に、ZMQエンドポイントを指定するオプション。
  • 開発目的でmAPIをHTTPで実行するオプション。

 

バイナリとソースコードはこちらからダウンロードできます:

URL: https://github.com/bitcoin-sv-specs/brfc-merchantapi

サポートに関するご質問は、Eメール [email protected]またはテレグラムhttps://t.me/bitcoinsvsupport経由でお寄せください。

今後ともビットコインSVをよろしくお願いいたします。