我一直在玩 libtorrent/rasterbar 的 python 绑定。我想做的是生成一个新的“node-id”并将其重新发布给其他节点。
我读到需要创建一个“编码字典”,我假设使用 force_dht_rennounce 之类的东西宣布,这是正确的吗?
我一直在玩 libtorrent/rasterbar 的 python 绑定。我想做的是生成一个新的“node-id”并将其重新发布给其他节点。
我读到需要创建一个“编码字典”,我假设使用 force_dht_rennounce 之类的东西宣布,这是正确的吗?
您可以通过制作会话状态文件来强制 libtorrent 使用 DHT 的特定节点 ID,并将其提供给session::load_state()
函数。完成此操作后,您还需要通过调用session::stop_dht()
后跟session::start_dht()
.
您需要制作的会话状态的相关部分具有以下格式(编码):
{
"dht state": {
"node-id": "<20-byte binary node-ID>"
}
}
如果您想保留会话状态的其余部分,最好先调用session::save_state()
然后简单地插入/覆盖该node-id
字段。
像这样的东西:
state = ses.save_state()
state["dht state"]["node-id"] = "<...>";
ses.load_state(state)
ses.stop_dht()
ses.start_dht()