Open1

Symbol開発覚書

松岡靖典松岡靖典

開発で良く自分が参考にする情報をメモしておきます。

ほぼすべての情報がここにあります!まとめてくださっているxembookさんに感謝!

https://qiita.com/nem_takanobu/items/4f50e5740318d92d7dcb

一応自分が良く参照する情報もメモしておきます。

メインネットノードリスト

https://symbolnodes.org/nodes/
https://symbol-tools.com/symbolTools/view/tool/nodeList.html

テストネットノードリスト

https://symbolnodes.org/nodes_testnet/

トランザクションの種類の一覧

ドキュメントリンク切れていた。後で探す。
cat-bufferの対象ファイルリンク切れていた。後で探す。

ドキュメント ... ドキュメントに書かれたコードはあまりにも一部だけ抜粋されているので雰囲気しかわからない。雰囲気だけつかんだら、すぐにGitHubのリンクを踏んで、GitHub上のコードを見た方が良い。その際、ノードのアドレスや、ネットワーク固有の情報はそのままだと動かないことが経験的に多かったので、適宜読み替えが必要だと思う。

ドキュメントリンク切れていた。後で探す。

ネットワーク固有の情報 ... これが罠になりやすい。いずれも、ノードが提供してくれているREST APIのエンドポイントやそこへのリクエストをWrapしてくれているSDKで動的に取得できるので、ノードから動的に取得して使用するような実装にしておくと、テストネットリセットの際等に対応が楽だと思う。

  • generationHash ... 各ネットワーク毎に固有の値。EthereumのChain IDのようなものと思うとよいと思う。
  • epochTime ... Symbolでは、ブロックチェーンネットワーク間で、独自の時刻を持つ?らしく、その時刻は、一般的なUNIX Timeではなく、ブロック1の時刻を0とした時刻になる。そのため、UNIX Timeからオフセットが必要で、Symbolブロックチェーンの生のタイムスタンプデータから時刻に変換するには注意が必要。

レポジトリ

  • symbol-bootstrap: https://github.com/symbol/symbol-bootstrap -> https://github.com/fboucquez/symbol-bootstrap ... (オーナーが変わった?なぜオーガニゼーション配下から外す?と正直思うけど...) ノードを動作させるためのツール群がセットになったもの。普通のノードオーナーはこれでノードを動作させることになる。(各ツール個別に動かすこともできるけど環境構築の難易度かなりあがっちゃうと思うので、ふつうはこれ使うよねという感じ。注意点としてはdocker-composeを使う形になっていて、新しいdockerのバージョンではdocker composeがインストールされdocker-composeはインストールされないので、自分でaliasで読み替えるなり、明示的にdocker-composeをインストールするなりする必要があることに注意が必要。)
  • symbol-sdk v2系: https://github.com/symbol/symbol-sdk-typescript-javascript ... JavaScript, TypeScript向けのクライアントライブラリ。Rest APIとの通信や、Symbol固有のデータ構造をかなり楽に実装できる。ただし、継続的なメンテナンスが今後適切になされるかに若干不安を感じると思っていたらオフィシャルにdeprecated扱いのアナウンスがあった。(もっとシンプルな別のJavaScriptベースの別のsdkの開発がされていて、今後はそちらを使ってほしいということらしい。)
  • symbol-sdk v3系: https://github.com/symbol/symbol/tree/dev/sdk/javascript ... モノレポの中のこれが今後オフィシャルにメンテされていくらしい。ただ、JavaScriptベースに見える&Rest APIアクセスのところはスコープ外で、かなりシンプルな実装に見える。これだけだとちょっとしんどいと思うが...
  • sdk-python: https://github.com/symbol/symbol/tree/dev/sdk/python ... JavaScript, TypeScript向けSDKと比べるとかなりシンプルな印象。これに雰囲気揃えるイメージのJavaScript, TypeScript版SDKが開発中らしい。個人的には既存のJavaScript, TypeScript版をきっちりメンテしたり改善することに注力してほしいと思うがどうなんだろう...

各種ツールの互換性の一覧表 ... メンテが止まっている気がする。どこか別の箇所に最新情報がある?

  • ドキュメントリンク切れていた。後で探す。