TL;DR: オープン ディスカッション セクションの 3 つの主なトピック: - Semiotic Labs の Gustavo が、インデクサー サービスとインデクサー エージェントの新しい構成オプションと機能を含む、インデクサー RS と TAP の更新を発表しました。 - Edge & Node の Ricky が、インデクサー データ分析チュートリアルを共有し、インデクサーの操作を自動化し、サブグラフのパフォーマンスを分析するツールをデモンストレーションしました。 - Pinax の Guillaume と Matthew は、インデクサーが Kubernetes を使い始めるのに役立つように設計されたランチパッド ダイアグラムをデプロイするための Kubernetes デモを発表しました。
皆さん、こんにちは。Indexer オフィスアワー会議議事録、セッション 179 へようこそ。
動画リンク:https://youtu.be/sNdeo-eiVIY
成長する新興企業や新興テクノロジー企業に焦点を当てたデジタル マーケティング会社、CircleClick Media の共同創設者兼 CEO である Anne Ahola Ward による GRTiQ ポッドキャストをご覧ください。
重要なリポジトリの最新アップデート
- Reth: 新しいバージョン v1.1.0:
- このリリースでは、ETH チェーンの新しいデフォルト エンジン アーキテクチャが導入されています。これは、以前は –engine.experimental フラグを介してのみ利用可能でした。従来のエンジンの動作を維持したいノードは、-engine.legacy フラグを使用する必要があります。新しいアーキテクチャにより、特に Engine_forkchoiceUpdated レイテンシの短縮において、チェーンの先頭付近のパフォーマンスが大幅に向上します。
- 重大な変更: ExExNotifications::recv メソッドと poll_recv メソッドが削除されました。ユーザーは exEx 通知を受信するには ExExNotifications::with_head に変換する必要があります。
- 優先度: 非ロード ビルダーには優先度 (中優先度) の更新が与えられ、パフォーマンスの向上を利用できます。ロード ジェネレーターには低優先度が与えられます。
- ヘイムダル: 新しいバージョン v1.0.10:
- いくつかのクリーンアップと rpm パッケージへの追加が含まれる優先度の低いリリース。
- GraphOps はこのバージョンを Polygon Amoy で問題なく実行します。
さまざまなクライアントに関する情報
- Teku: 新しいバージョン v24.10.1:
- 高優先度パッチ (v24.10.1) は、–validators-proposer-config オプションを使用した Teku の起動エラー、Windows との非互換性を解決します。また、サフィックスが "_total" となったメトリック名への重大な変更が含まれています。
- このバージョンは Windows と互換性がありません。
- インデクサー サービスおよびエージェント (TS): 新しいバージョン v0.21.5:
- これは TypeScript インデクサー サービス リポジトリです。
- 優先度の高いアップデートにより、ブローカーにおける大規模なメモリ リークが解決され、TAP 機能が改善され、エラー ロギングとレシート検証のための新機能が追加され、複数のチェーンのドキュメントが大幅に改善されました。
- GraphOps は、このバージョンを Graph Arbitrum Sepolia で問題なく実行します。
注: 公開プロセスが変更されました。現在、インデクサー サービスとインデクサー TAP エージェントの 2 つの個別のパッケージがあり、ユーザーはインデクサー サービスとインデクサー TAP エージェントの異なるバージョンを実行できます。
インデクサー サービスとクリック エージェント (RS): 新しいバージョンがリリースされました:
- これは Rust インデクサー サービス リポジトリです。
- インデクサーサービス v1.1.0 の場合:
- 優先度の高い更新により、構成の柔軟性、メトリクスの改善、PostgreSQL 接続設定の変更が導入されます。
- PostgreSQL URL 接続を URL として指定することも、さまざまなコンポーネントを個別に指定することもできます。
- 構成の柔軟性により、構成ファイルまたは環境変数を指定できるようになります。以前は、常に構成ファイルを指定する必要がありました。
- インデクサー サービス v1.1.1:
- INFO をログのデフォルト レベルとして使用するためのバグ修正が含まれました。
- インデクサータップエージェントv1.1.0:
- INFO をログのデフォルト レベルとして使用するためのバグ修正が含まれました。
- インデクサータップエージェントv1.1.1:
- 優先度の高い更新により、構成の柔軟性 (環境変数を介してのみ構成を指定できるようになりました)、メトリクスの改善、バグ修正が導入され、構成の処理とデータベースの相互作用に重大な変更が加えられる可能性があり、具体的にはファイルまたは環境変数を介した構成と PostgreSQL 接続設定の変更が可能になります。
- GraphOps は、Graph Arbitrum Sepolia 上で Indexer-service-v1.1.1 および Indexer-tap-agent-v1.1.1 を問題なく実行します。
チャット ルームから:
Marc-André |Ellipfra: 0.21.5 はここで失敗し、一見したところ、未リリースのグラフ ノード バージョンが必要であるように見えます。
アナ |GraphOps: わかりました、再確認する必要があります。お知らせいただきありがとうございます。
Marc-André |Ellipfra: インデクサー エージェント: Null 以外のフィールドの Null 値解析が一時停止されました #1025
Vincent |Data Nexus: このような状況には遭遇していません。私は過去にこの状況に遭遇したことを覚えています。問題を解決するために何をすればよかったのか思い出せません:
私たちが何をしたか理解してください。実際に、インデクサー エージェント ステータス エンドポイント専用の Graph ノードにパッチを適用しました。明らかに最高の UX ではありませんが、ピンチの場合には機能します。
index 4d7e06779..a93f2e93c 100644
--- a/server/index-node/src/schema.graphql
+++ b/server/index-node/src/schema.graphql
@@ -71,7 +71,7 @@ type SubgraphIndexingStatus {
chains: [ChainIndexingStatus!]!
node: String
- 一時停止: ブールentityCount: BigInt!
- paused: Boolean!
+ paused: Boolean
historyBlocks: Int!
}
Marc-André |Ellipfra: ドキュメントで提案されている指定されたコミットに戻しました...そして、それに満足しています。ありがとう。
ランチパッドのチャート:
Marc-André |Ellipfra: ドキュメントで提案されている指定されたコミットに戻しました...そして、それに満足しています。ありがとう。
ランチパッドのチャート:
- 新しいチャートのバージョンがリリースされ、機能強化とバグ修正が行われました。
- セロ
- ヘイムダル
- ニンバス
- 灯台
- グラフネットワークインデクサー
- Firehose-イーサリアム
Launchpad 名前空間:
- ETH、Gnosis、Celo、Monitoring、Arbitrum、Graph の新しい安定バージョン
質問:
- Launchpad チャートの問題: 問題を表示または報告する
- Launchpad 名前空間の問題: 問題を表示または報告する
チャット ルームから:
Matthew Darwin |Pinax: 誰かが arbitrum-nitro に関する問題を目撃したかどうかを尋ねています。 Johnathan|Pinax は、いくつかの奇妙な RPC 応答問題を修正しようとしています。
Vincent |Data Nexus: 具体的にどのような問題が発生しましたか?
Johnathan |Pinax: RPC ノードからの空の応答。
Matthew Darwin |Pinax: おそらく、BOATLOAT リクエストを同時に RPC に送信するときです。
Marc-André |Ellipfra: 多くのスペースとリソースを占有することを除けば、見た目はかなり良いです...パフォーマンスは一般的に標準以下です。
プロトコルの重要な変更に関する最新の更新情報
コア開発の更新:
- Pinax 2024 年 10 月アップデート
- 記号論の 2024 年 10 月の更新
- エッジとノードの 2024 年 9 月/10 月の更新
- Geo 2024 年 10 月の更新
- GraphOps 2024 年 10 月更新
- StreamingFast 2024 年 10 月更新
- メッサーリの 2024 年 10 月のアップデート
- ❄️ グラフ ホライズンおよびサブグラフ サービス ❄️ #944 (オープン)
- 雑用 (Horizon): TAPCollector #1060 の署名者を追加 (マージ)
- 修正: subgraphNFT が先頭に 0 を含むメタデータを正しく処理することを確認 #577 (クローズ)
- Indexer-rs と TAP の更新 (新機能)
- インデクサー データ分析のチュートリアル
- Kubernetes のデモとディスカッション
Semiotic Labs の Gustavo は、indexer-rs の新機能を紹介しました。
スライドショーを見る
- 大規模なバンドル リリースはリリースしませんが、機能やバグ修正が組み込まれたらすぐにリリースします。
- これにより、報告された問題がより迅速に修正されます。
- Indexer-service-rs と Indexer-tap-agent は現在分離されており (バージョン番号は同じですが)、そのうちの 1 つのみに対する修正に対応するために個別にリリースされる予定です。
- どちらも同じ構成を共有するため、構成が更新されるたびに、両方の当事者がそれを受け取ります。
- リポジトリ: インデクサー-rs
- 問題を作成するか機能をリクエストする
新機能のほとんどは構成の品質に関連しています。
- リポジトリ: インデクサー-rs
- 問題を作成するか機能をリクエストする
新機能のほとんどは構成の品質に関連しています。
- 以前は、PostgreSQL URL を指定する必要がある最初のオプションしかありませんでしたが、現在は、URL 全体の代わりにホスト、ポート、ユーザー、パスワード、データベースを指定する 2 番目のオプションが用意されています。
- 一部のインデクサーでは、環境変数の使用に問題があります。これは、タグには環境変数のインデクサー サービス プレフィックスまたは TAP エージェント プレフィックスが必要であり、構成の場合と同じ環境変数を共有したい場合、実際にはそれができないためです。少し。単一の API を使用できるようになり、両方で機能するようになりました。
- ここで、設定なしで実行しようとして環境変数が不足している場合、システムはどのフィールドが不足しているかを通知し、パラメータ config も使用できることを提案します。
- 以前は、環境変数を使用する場合は接頭辞を使用する必要がありましたが、現在はいくつかの環境変数を構成と混合できるようになりました。
以前の機能により、古い環境変数から新しい構成にマッピングする移行構成を作成しました。
以前の機能により、古い環境変数から新しい構成にマッピングする移行構成を作成しました。
- 以前の構成から新しい構成に簡単に移行できる推奨構成が (リポジトリにあります) あります。
- docs/migration-config/arbitrum ドキュメント
- docs/migration-config/arbitrum-sepolia ドキュメント
- 引き続き、時間外構成を使用することをお勧めします。
チャット ルームから:
chris.eth | GraphOps: 素晴らしいですね、Gustavo さん!
Marc-André |Ellipfra: これらは良い改善です。
- ログを表示するには RUST_LOG を指定する必要があるバグを修正しました。デフォルトは INFO になりました。
- タップエージェント
- 保留中のレシートの追跡が改善されました (バッファ追跡)。
- 送信者がデータベースから削除されている場合は、送信者を再度拒否します。
- 受信に失敗した場合に備えてエラー原因をDBに保存します。
- インデクサーサービス
- Prometheus/Grafana のメトリクスを追加しました。
- これは、提案された名前付けを使用するという点で、以前の TypeScript インデクサー サービスとは異なります。重大な変更により、更新してより適切な名前を付けることができます。
- インデクサーエージェント
- 内部サブグラフ クエリのすべてのページがフェッチされなかったバグを修正しました。
- エスクロー口座に十分な資金がない場合は、償還しないでください。
chris.eth | GraphOps: TAP Payments では、ゲートウェイは完全にパーミッションレスではありません (プロトコル レベルでパーミッションレスの支払者がいる場合でも)。インデクサーは、(署名者キーのタップ アグリゲーター エンドポイント構成を追加することによって) 新しいゲートウェイにアクセス許可を付与する必要があります。または、コア開発者が新しいゲートウェイと調整して、そのタップ アグリゲーター構成を含む新しいソフトウェア デフォルトをロールアウトする必要があります。 。この権限の依存関係を削除する方法はありますか?
Gustavo 氏の答え: これは現在私たちが抱えている問題であり、フィードバックをお待ちしております: [Feat.Req] Gateway Discovery and Authentication Protocol #342。
いわゆるゲートウェイ発見機能と認証プロトコルを作成する予定です。そもそも TAP アグリゲーターを提供することを誰にも許可していませんでした。なぜなら、TAP アグリゲーターが実行されていることを何らかの形で信頼する必要があり、検証がなかったからです。
したがって、たとえば、TAP アグリゲーター エンドポイントがある場合でも、レシートを RAV (Request Aggregation Voucher) に集約しようとすると失敗します。これの問題は、この初期 RAV または損失を覚悟した額を失うことになり、実際には、不良ゲートウェイごとに損失することになります。したがって、最初はインデクサーがゲートウェイを信頼するか少なくとも許可し、TAP アグリゲーター自体をプロビジョニングする必要があると判断しました。
ゲートウェイ検出および認証プロトコルは、ゲートウェイにインデクサーにアプローチさせ、TAP アグリゲーターを送信し、RAV に集約できることをインデクサーに示すためにいくつかのクエリを送信しようとします。
この質問を確認して、これをどのように行うかについてさらに話し合ってください。
チャット ルームから:
Vince | Nodeify: すべてを盗むゲートウェイ、更新は必要ありません、あなたが停止するまであなたの基地はすべて私のものですか?ゲートウェイのリストを作成するか、ゲートウェイを発見する必要があると感じます。
チャット ルームから:
Vince | Nodeify: すべてを盗むゲートウェイ、更新は必要ありません、あなたが停止するまであなたの基地はすべて私のものですか?ゲートウェイのリストを作成するか、ゲートウェイを発見する必要があると感じます。
chris.eth | GraphOps: TAP により、インデクサー<>ゲートウェイ関係の信頼性は最小限であり、したがってインデクサーにとって非常に安全です。ただし、消費者 <> ゲートウェイの関係は 100% 信頼されているため、ゲートウェイ オペレーターはエコシステムにおいて非常に重要なプレーヤーです。
Matthew Darwin |Pinax 投稿者: Vince |Nodeify もう TAP を使用していますか?他にTAPを使用している人は誰ですか?
Vince | Nodeify: 数週間前のシャーディング移行から pg データベースを調整していませんし、まだ調整中です。ダッシュボードなどを修正する
Vincent |Data Nexus: 参考までに、新しい Indexer-service-rs メトリクスのダッシュボードを作成しました。
- Discord へのリンクをクリックし、画面の右上隅にある [チャットを表示] を選択すると、コードを含むメッセージが表示されます。
calinah |GraphOps: これは最近共有したものですか?
Vincent | Data Nexus: はい、マージコミットの前の週、バージョンがカットされる前に共有しました。
Ricky は Edge & Node のデータ サイエンティストであり、インデクサーの観点から分析を紹介します。彼は、自分が作成したチュートリアル「インデクサーのためのデータ分析」を共有しています。今後のRickyのセッションにもご期待ください!
リッキー:
データをより適切に視覚化するために、独自のインデクサー rickydata-indexer.eth を開始しました。
私はインデクサーのさまざまな部分を自動化し、インデクサー コミュニティのための便利なデータ ツールを構築することに取り組んできました。
まず、これまでインデクサーに提供してきた自動化のほぼすべての側面をカバーする、私が作成したチュートリアルを共有します。このチュートリアルは完全な初心者向けであり、Python に似た R プログラミング言語を使用します。
29:00 から Ricky によるチュートリアルのデモンストレーションをご覧ください。
- パート 1 の「はじめに」では、このチュートリアルに続く手順に従うために必要なすべてのツールが提供されます。
- QoS サブグラフの実際のクエリ ボリューム データを使用したウォークスルー。クエリ ボリュームがリアルタイムから約 10 分遅れている一方、オンチェーンのクエリ ボリュームには 28 エポックかかるか、オンチェーンに表示されない可能性があることが示されています。
- これは、9 月 20 日頃から始まる各サブプロットの完全な毎日のデータを含む優れたリソースです。日付とサブグラフ ID ごとにクエリ コスト、クエリ数、完了を表示できます。
- データの要約と変換のためのツールを確認し、いくつかの視覚化を検討してください。
- 「Close Alpositions」では、アクティブな割り当てを抽出する方法、GraphQL クエリを実行してその動作を確認する方法、現在のエポックを抽出する方法、大容量のサブグラフを除外する方法、および割り当てを閉じる方法について説明します。
- 「同期されたサブグラフ」は、インデクサー上で現在同期されているサブグラフを表示します。どのサブグラフを割り当てることができるか、またどのサブグラフを同期するかを決定します。
- インデックス付け報酬の割合は、各サブグラフのインデックス付け報酬の割合を計算できるように、シグナルと割り当てられたトークンを抽出します。
- クエリ コスト比では、さらに一歩進んで、さまざまなサブグラフ (QoS サブグラフから抽出) のクエリ コストを調べ、その観点から最適な機会を特定します。
- サブグラフからの利用可能なトークン データ インデクサーによって新しく割り当てられたトークンの数を抽出します。
- サブグラフからのアクティブな割り当てデータは、インデクサーがすでに所有している割り当てを調べるため、それらの割り当てにさらにトークンを割り当てることはありません。
- 「新しい割り当ての計算」では、Ricky の現在の割り当てメカニズムの概要を示します。最良の取引を得るには一度に 100 GRT を使用し、再計算してプロセスを続行します。
- Allocate は実際の割り当てを実行します。
その他のデータツール [35:38]
Ricky は、開発中の Web サイトのデータ ツール ページを共有しました。
- サブグラフ ボリューム データ ダウンロードを使用すると、サービス品質サブグラフから最新の 100,000 行を直接ダウンロードできます。最近クエリ ボリュームが最も増加したコンテンツを調べ、チェーンでフィルタリングし、それを使用して、インデックスを作成する適切なクエリ ボリュームの機会を見つけます。
- Curation Signal Optimizer はキュレーション側のすべてをカバーしているわけではないため、もう少し作業が必要ですが、シグナルに対して現在実行している APR を提供し、どのシグナルがパフォーマンスの低いシグナルであるかを示します。これは、キュレーターとしてクエリ料金から得られる 10% に基づいています。
- これにはインデックス ボーナスが有効になっていないサブプロットが含まれているため、修正する必要があります。
- インデクサー データのダウンロードを使用すると、インデクサーの生の完全な履歴データを抽出して、長期にわたる報酬の追跡や視覚化の作成に役立てることができます。
インデクサー コミュニティからのフィードバックは非常に役立ちますので、Ricky と共有してください。
注: Ricky は独立した寄稿者としてこれを行っています。エッジとノードではありません。
今後の Know Your Indexer フォーラムの投稿にご期待ください。
Abel |GraphOps: リッキー、これは信じられないほどです。あなたがチャットを見る機会があったかどうかはわかりませんが、Indexer は完全に衝撃を受けました。分析という点で、明らかに別のレベルに到達しました。他のインデクサーのアップグレードを支援するには、専用の IOH セッションが必要になる可能性があります。これは誰もが気に入っているためです。
Vincent |Data Nexus: GRT はどれくらい割り当てられていますか?インデクサーが大量の GRT を割り当てる必要がある場合、一度に 100GRT を割り当てる戦略ではパフォーマンスの問題が発生すると思いますか?
Ricky の答えは次のとおりです。私のスクリプトでは、総ベット サイズの最大 10% のみをサブプロットに割り当てる最大上限しきい値を設定しています。特別な理由はありません。他の人はさまざまなことを試しているかもしれませんが、報酬が減少するという大きなリスクを自分に課すことなく、報酬を最大化することに決めたのです。
もう 1 つの側面は、自動化の実行速度を上げることであり、同じエポックの割り当てのクローズをよりインテリジェントに開始でき、潜在的により複雑になる可能性があります。
Vincent |Data Nexus: はい、大丈夫だと思います。素晴らしいデモ、ありがとう!
Vince | Nodeify: データ サイエンティストがインデクサーになることは禁止されるべきです。
Slimchance: ここで Ricky に委任してください: rickydata-indexer.eth。
Pinax の Guillaume と Matthew は、インデクサーが Kubernetes を使い始めやすくするためにいくつかのリソースを共有しました。
- kind を使用した Kubernetes アプリケーションのテスト
- FluxCD を使用してクラスターをブートする
- Flux で Helm を使用してランチパッド チャートをデプロイする
ギョーム:
これは、Kubernetes と Pinax でのそれを行う方法の紹介です。
これは、開始するために使用できる Kubernetes IOH デモ リポジトリです。
このリポジトリは、FluxCD を使用してランチパッド チャートをデプロイする方法を示します。
リポジトリは再現可能なので、試してみることができます。
このリポジトリは、FluxCD を使用してランチパッド チャートをデプロイする方法を示します。
リポジトリは再現可能なので、試してみることができます。
私はFlux、kindファイルとtiltファイルを使用しています。これにより、種類を指定して Kubernetes クラスターが作成されます。したがって、これは本番用ではなく、開発用です。 kind は Kubernetes と Docker を表すため、マシンに Docker がインストールされていればクラスターが作成され、Kubernetes 上でアプリケーションを開発、テスト、デプロイできます。
クラスターは一連のコンポーネント (Cilium、Cilium Envoy、ロード バランサー ID) をデプロイし、Flux もブートストラップします。
このクラスターでは、Flux を使用する場合、すべてのインフラストラクチャがコードとして必要です。 Docker Compose を使用する代わりに、Flux と Kubernetes を使用して、任意の数のブロックチェーンまたは任意の数のコンポーネントをスケーリングおよびデプロイできます。
所有するブロックチェーンとノードの数が増えるほど、Docker Compose での拡張が難しくなり、プロセスがより手動になるため、Kubernetes に切り替えると、新しいブロックチェーンを作成してクラスターに追加することが簡単になります。
インフラストラクチャー:
- 監視スタック: kube-prometheus-stack
- ランチパッドチャート
- Kubernetes で PostgreSQL データベースをブートストラップするための PostgreSQL オペレーター
- cert-manager は発行者に対して TLS を自動的に適用します
- チャートを自動的に更新する
50:09にクラスタの稼働状況を確認します。
マシュー|ピナックス: ありがとうギョーム。これは確かに急いでいますので、今後の会議でもう一度議論する必要があると思います。しかし、ここでのアイデアは、人々が Kubernetes を使い始めるきっかけとなり、「Kubernetes は複雑なので調べる時間がない」という問題を克服するものを構築しようとすることです。このようにして、ローカル マシン上で何かを実行できるので、非常に魔法です。リポジトリのクローンを作成すると、それほど手間をかけずにこれらを実行できます。
ギョーム: うまくいけば、自動的に動作するでしょう。 😁
Abel | GraphOps: 必ず、もっと時間をかけて別のセッションを予定しています。デモを注意深く見る時間ができたら、もう一度デモを見てみる価値があるかもしれません。
マシュー: 最初に人々が抱く質問も役に立ちます。 Kubernetes を使い始めるには何を知っておく必要がありますか? Guillaume は多くの概念を手早く説明し、インフラストラクチャ コードと、GitHub で何かを変更したときにすべてが自動的にデプロイされる方法について話します。したがって、Kubectl を実行したり、手動でデプロイしたりする必要はありません。
また、Launchpad とは異なるアプローチも採用しています。 Kubernetes では人によってやり方が異なります。 20 のインデクサーを調査すると、20 の異なる作業方法が得られる可能性があるため、ここでのアイデアの一部は、私たちが行っていることのサブセットを示して、なぜ物事がそのように行われるのかを説明できるようにすることです。
Chris |GraphOps: マシュー、ちょっと思い出してください。 Launchpad はスーパーモジュラーであり、多くのコンポーネントが含まれています。明らかに、この例で使用している Launchpad チャートがあります。これは、Launchpad Namespaces がこれらのチャートを調整する方法とは少し異なります。はい、そこでのトレードオフについて議論するのは良いことです。
Matthew: それは Launchpad の素晴らしい点の 1 つで、非常にモジュール化されているので、何か他のものが必要な場合は、好きな部分を選択して別のことを行うことができます。ヴィンスは別の方法で物事を進めたいと考えていますが、それはまったく問題ありません、ヴィンス、あなたがたくさんのさまざまな人々と話してきたことは知っていますが、物事がどのように機能するかについて異なる意見を持っていると思います。
Vince | Nodeify: そうですね、とにかく素晴らしいイントロだと思います、なぜならたくさんのイントロを見ることができるからです。しかし、実際にそれを行う唯一の方法は、それを演奏してキーボードに頭をぶつけることです、それは素晴らしい方法だと思います。やってください。
チャットから:
chris.eth | GraphOps: これは Guillaume によってデプロイされたグラフ ノード グラフです: グラフ ノード Helm グラフ
チャットから:
chris.eth | GraphOps: これは Guillaume によってデプロイされたグラフ ノード グラフです: グラフ ノード Helm グラフ
また、graph-network-indexer チャートもあり、これには、indexer-agent、indexer-service-rs、indexer-tap-agent が含まれています。graph-network-indexer helm chart
Vince | Nodeify: Argo CD、FluxCD、Launchpad 宗教的な質問です。
chris.eth | GraphOps: Argo + Helmfile 両方の長所。しかし、はい、それは宗教的です。
ヴィンス | ノード化: ナノ
Guillaume |Pinax: 私は ED のみを使用し、他はすべてブロットです。
Vincent |Data Nexus: 今最も注目されているのは Neovim だと思います (笑)。
(関連する専門用語、コメント、コード ライブラリ、ハイパーリンクなどについては、ブログを参照してください)
#web3dataindex#ブロックチェーンデータ#開発者
全てのコメント