フック・スリー3:技術プレビューリリース(XRP元帳の上でスマート契約で遊びます!)


あなたが前の2つのブログをすでに読んでいないならば、最初にそうしてください


  • 技術プレビュープレビューリリース


    これは、XRP元帳の今後のフックの改正について別の技術的なブログです.議論の数ヶ月後、設計、いくつかの詳細については、議論Richard , 帽子を脱ぐ!)試験等we (the people at XRPL Labs) あなたが独自のローカルフックを有効にすることができますので、このブログ、ソースコード、サンプルフック&Dockerコンテナを公開することに興奮している.

    Dockerで実行している技術プレビューを得てください


    🐉 🐲 Here be dragons! We want to stress this is a tech preview it is not indicative of the final Hooks Amendment nor has it been optimised. The purpose of the preview is to demonstrate what Hooks will be able to do and how they will work in general.


    コンテナを実行するには、対話的に使用します.
    < div >
    <高橋潤子>p >
    < tt >ログを表示するための2番目の端末を設定するには、システム上の新しいターミナルウィンドウを開き、実行します.
    < div class ="LagagCount - gig - Link - tag "
    "スクリプトのID "https://gist.github.com/WietseWind/14babf8b12a39546ca31ddddeec70ef9.js?file=logs.sh//>
    < div >
    これはXRPLDのトレースログを表示します.これは、トランザクションが失敗したり成功したかどうかを知ることが重要です.p >

    Dockerとの対話


    上記の手順を実行した後、コンテナ内のシェルの内側になります.リップルはすでに正しい設定で動作し、フックの修正が有効になっています.p >
    <堀田>/opt/rippled-hooks 容器の中に
    このパスにはthis folder Githubリポジトリからp >

    フックで遊びましょう


    これは、フック技術プレビューを読む場所ですREADME.md . これはREADMEです.MDはDockerコンテナの内部にあり、in the Github repository . このReadMeは、例のフックと一緒に構築、インストール、相互作用の指示を含んでいます.すべてのフックフォルダには、フォルダ内のノード( javascript )ファイルをインストールするために、webassemblyフックに組み込まれるCで書かれたフックが含まれています.p >
    サンプルフックは以下の通りです.
    <ウル>
  • accept - このフックは最低限のフックです.
  • carbon - このフックをインストールすると、アカウントから別のTXNが送信されるたびに1 %の炭素オフセットTXNを送るようになります.
  • firewall - このフックをインストールすると、ブラックリストのアカウントからのトランザクションが拒否されますインストールを拒否する2段階のプロセスは、最初にブラックリストのストレージアカウントを作成し、ブラックリストをインストールし、次に保護されたアカウントにファイアウォールフックをインストールします.
  • liteacc - このフックをインストールすると、アカウントがアカウント上の資金を受け取ることができるユニークなdestタグを取得する各ユーザーと一緒に、マルチパーティプールアカウントになります.
  • < ull >

    ソースコード


    < ref id ="http ://www . linux . or . jp/"name ="http ://www . linux . or . jp/"> < htmlurl url ="http ://www . linux . or . jp/"name ="http ://www . linux . or . jp/
    < div class ="ltag github readmeタグ"
    < div class ="readme概要"

    原研先端研 / XRPLDフック



    < div >
    < div class ="ltag github本体"
    < div class ="md "データパス="README . md "> < articleクラス="Markdown Body Entry Content Container LG "itemProp = "text "

    フック技術プレビュー


    これは、進行中の仕事「フック」改正を取り入れている波打ったコードベースのフォークです.この修正により、WebアセンブリスマートコントラクトがXRP元帳上で直接実行され、採用されます.p >

    ドッカーコンテナ


    このような場合、修正されたライブラリを使用しているので、リップルされた建物は非自明です.私たちはあなたの便宜のためにハイテクプレビューDockerコンテナを提供している.以下の手順に従います.p >

    コンテナの起動


    < OL >
  • Dockerをダウンロードしてインストールします.
  • コンテナをダウンロードするには、次の手順に従います.
  • < OL >
    ハイライト表示のソースシェルのハイライト
    <紹介> Docker - pull Richardah/XRPLDフック技術プレビュー< pre/>
    < div >
    < tt/="3 "
  • 次に、コンテナを実行するには対話的に使用します.
  • < OL >
    ハイライト表示のソースシェルのハイライト
    <博士> Docker Run --名前XRPLD Hooks Richardah/XRPLDフックテクノプレビュー<スパンクラス>スパン
    Docker < span class ="pl - c "> exec - xrpld - hooks/bin/bash
    < div >
    < tt ="4 "
  • ログを表示する2番目の端末を設定します.
  • < OL >
    <高橋>p >
    ハイライト表示のソースシェルのハイライト
    <堀田>
    < div >
    これはXRPLDのトレースログを表示します.これはトランザクションが失敗したかどうか知るために重要です.
    < div >
    < div class ="GH BTNコンテナ"View on GitHub < div >

    フックAPI


    フックAPIはフック開発者のための摩擦を減らすいくつかの規則を確立します

    命名規則


    < p >フックは以下のように命名されます
    < P >noun [ _ ( adjective | noun#2 ) ][ _verb ]


    < P >adjective , noun#2 and verb はオプションです.指定されない場合、動詞は暗黙のうちにget . これは最初は混乱しているかもしれませんが、いくつかの例の後で直感的です
    < P >state() 手段' get state '
    < p >と< p/p >
    < P >state_set() 手段「セット状態」
    < p >と< p/p >
    < P >state_foreign() 他のアカウントからのフックの状態などの「外国状態を取得する」ことを意味します.p >
    可能な場合、先頭名詞はAPIの件名を示します.state しかし、スパゲッティにAPIを回すのを避けるために、主要な名詞は、単にゆるく関連したAPIのグループでありえます.util .


    パラメータ慣例


    < tt >フックは整数値をxrpld . しかし、これは自身のメモリ内のポインタを含んでいます.p >
    < OL >
  • ポインターは、何によって命名されますかxrpld はポインタで行われる.例えばxrpld はポインタに書き込むことが期待されるwrite_ptr .
  • ポインタは常に読み書き可能なバッファのサイズを示すバイト長である.このパラメーターは、上記と同じ規約で名前を付けます.write_len .

  • < p >同じタイプの複数のポインタが存在する場合、名前を示す先頭文字がそれらをあいまいにするのに使われます.例えば、ポインタ長ペアのキーとデータセットは以下のようになります.
    < P >kread_ptr , kread_len , dread_ptr , dread_len


  • ポインタを書いている場合は、常にパラメータリストの先頭に表示されます.p >

  • <パラメータポインタがない場合は常にパラメータリストの末尾に来ます.p >
  • < OL >

    返り値


    返り値が負の場合は成功です.典型的に、正の整数は読み取られるか、書き込まれるバイト数(APIに従います)または処置の量を反映します.しかし、場合によってはutil_subfield ) APIの戻り値は、正のint64 ' tにエンコードされます.
    返り値が負の場合、常に定義されているエラーコードのいずれかです.書き込み時には< tt/p >です.
    < div class ="LagagCount - gig - Link - tag "
    "スクリプトのID "https://gist.github.com/WietseWind/14babf8b12a39546ca31ddddeec70ef9.js?file=returnvalues.c//>
    < div >

    フックAPI関数リスト


    < tt > API関数リストを表示する最良の方法は、ヘッダコメントを読むことです.hookapi.h


    次のブログ


    私たちは、今後の数週間と数ヶ月間のライブフックのテストネットにつながるデザインの選択肢と開発の進捗状況を議論するさらなるブログをリリースする予定ですp >
    < hr/>
    をチェックしてくださいsource & README's そしてQ 1の一般的なTestnetリリースのために追跡しているので、もう少し我慢してください

    ディスカッション


    議論here »