yB on Nostr: 扒卦协议的通信方式 ...
扒卦协议的通信方式
扒卦协议最终目的是将数据分发到网络中的每一个节点。根据不同的具体应用场景,网络中两个节点之问存在三种通信方式:推送模式(Push)、拉取模式(Pull)、推拉并举模式(Push/Pull)。
*推送:节点 A 将数据<key,value,version)>及对应的版本号推送给 B节点,B节点更新 A 中比自己新的数据。
*拉取: A 仅将数据<key,version>推送给B,B将自己比 A新的数据<Key,value,version>推送给A,A 更新本地。
*推拉并举:与推送类似,但是多了一步拉取,A 推送后再将本地比 B新的数据推送给 B,B则更新本地。如果把两个节点数据同步一次定义为一个周期,则在一个周期内,推送需通信1次,拉取需2次,推拉并举则需 3次。虽然消息数增加了,但从效果上来讲是最好,理论上一个周期内可以使两个节点完全一致。直观上,推拉并举的收敛速度也是最快的。
Published at
2024-06-30 16:50:04Event JSON
{
"id": "2076a38de50a06c00f27a8738665fce52d71b3ef92735ccbd4d12daacbf8f75b",
"pubkey": "382d67ec6a31dc8d0c5b3099753a0044261a70e694aadd49eb58fce529cb3089",
"created_at": 1719759004,
"kind": 1,
"tags": [
[
"e",
"e9a559313353393cb28255e71da6ae52a7e8067e2a70744c06722447973d85ed",
"",
"root"
]
],
"content": "扒卦协议的通信方式\n\n扒卦协议最终目的是将数据分发到网络中的每一个节点。根据不同的具体应用场景,网络中两个节点之问存在三种通信方式:推送模式(Push)、拉取模式(Pull)、推拉并举模式(Push/Pull)。\n\n*推送:节点 A 将数据\u003ckey,value,version)\u003e及对应的版本号推送给 B节点,B节点更新 A 中比自己新的数据。\n\n*拉取: A 仅将数据\u003ckey,version\u003e推送给B,B将自己比 A新的数据\u003cKey,value,version\u003e推送给A,A 更新本地。\n\n*推拉并举:与推送类似,但是多了一步拉取,A 推送后再将本地比 B新的数据推送给 B,B则更新本地。如果把两个节点数据同步一次定义为一个周期,则在一个周期内,推送需通信1次,拉取需2次,推拉并举则需 3次。虽然消息数增加了,但从效果上来讲是最好,理论上一个周期内可以使两个节点完全一致。直观上,推拉并举的收敛速度也是最快的。",
"sig": "71a2c7d4e159b5f41b7835dfa8edea1a9e0ae41584f127ac769b931ff361ab5a2d277f7ddc60ca49fb562ed752917f0cfa1ec19127e7ecda24e0fce1cdf8b35b"
}