我面临以下挑战。我尝试通过 websocket 订阅“newPendingTransactions”。我可以成功连接到 websocket。连接后,我希望有新的传入待处理事务流,我可以读出这些事务并将其传播到某个通道 (chan json.RawMessage)。
...
c, httpResponse, err := websocket.DefaultDialer.Dial(u.String(), req.Header)
...
for {
messageType, message, err := c.ReadMessage()
if err != nil {
log.Println("ERROR:", err)
os.Exit(1)
return
}
_, _ = message, messageType
// s.Out is the outgoing chan json.RawMessage
s.Out <- message
}
...
遗憾的是我没有收到任何消息(待处理的 tx).. 只有一条关于关闭整个结构的消息。当我在控制台中直接使用“txpool.status”检查我的节点时,我可以看到一直有新的待处理 tx 传入。他们只是不想传播到我的 websocket 连接。有人可以帮我吗?也许我缺少启动 geth 节点本身的参数?
这是我启动 geth 节点的方式:
geth --http.api eth,web3,debug,txpool,net,shh,db,admin,debug --http --ws --ws.api eth,web3,debug,txpool,net,shh,db,admin,debug --ws.origins localhost --gcmode full --http.port=8545 --maxpeers 120
这是我的“admin.nodeInfo”:
Geth/v1.10.16-stable-20356e57/linux-amd64/go1.17.5
慕村225694
相关分类