問題タブ [tendermint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
node.js - Tendermint ABCI と適切に通信するにはどうすればよいですか?
abci
Node.JS パッケージによって生成された Tendermint サーバーに適切に接続するのに多くの困難に直面しました。
公式サイトのドキュメントに従ってみましError: invalid wire type 4 at offset 3
たが、protobuf とリクエストのデコードに問題があると思われるエラーが表示されます。ライブラリ内にconsole.log
いると、意味のないリクエストの部分文字列をデコードしようとしているように見えます。
例として、 に長いtx
パラメータを指定して GET リクエストを送信するbroadcast_tx_commit
と、デコードしようとするメッセージET /broadcast_tx_commit?tx=0x017465
は非常に奇妙なものになります。これは過去数日間私を悩ませていたので、どんな助けも大歓迎です!
prometheus - Prometheus bind: アドレスは既に使用されています
Linux amd64 用の prometheus バージョン 2.19 をインストールしました。prometheus を起動しようとすると、bind: address in use と表示されました。コマンド './prometheus --config.file=prometheus.yml' を使用すると、bind: address in use 9090 というエラーが発生しました。ただし、コマンド './prometheus --web.listen.address =:9010 &' の場合、localhost/9010 と localhost/9000 でメトリックが表示されます。今、ポート 26660 を使用して、tendermint で使用しようとしました。prometheus.yml のターゲットを変更して、localhost:26660 を含めました。しかし、再びプロメテウスを起動すると、使用中のアドレスエラーが表示されます。
go - 長い WebSocket IO の一時停止を減らすには?
Golangで書かれた Tendermintというツールがあります。トランザクションを処理し、ブロックを作成します (詳細は意図的に省略されています)。トランザクションは、WebSocket サーバーを介して送信できます。ブロックは毎秒 ~ 作成されるように構成されています。
現在、2 つ以上の WS 接続を開き、アプリケーションが処理できる以上のトランザクションを定期的に送信すると、Tendermint が動かなくなります。
この間、ブロックは作成されませんが、WebSocket IO の処理にかなりの時間が費やされます。
これらの一時停止の正確な性質をまだ理解していません。ここに誰かが知っているか、適切な質問をすることができますか? また、IOを制限する方法は何ですか? 各接続を調整しますか?
注: WebSocketにはhttps://github.com/gorilla/websocketを使用しています。当社の WS サーバーはここにあります。お時間をいただきありがとうございます!
UPD 1: WS サーバーで応答をバッチ処理することで一時停止を平準化することができました ( https://github.com/tendermint/tendermint/issues/3905#issuecomment-684860429を参照) 。