You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Chord must be initialized with a ring containing a minimum of r +1 nodes, where r is the length of each node’s list of successors. In fact, to be proven correct, a Chord network must maintain a “stable base” of r + 1 nodes that remain members of the network throughout its lifetime.
The Chord Paper defined the maintenance and use of finger tables, which improve lookup speed by providing pointers that cross the ring like chords of a circle. Because finger tables are an optimization and they are built from successors and predecessors, correctness does not depend on them.
IMPROVEMENTS
Join Operator: Sync successor list from new successor. Add new remote action:
RemoteAction::FetchSuccessorList(Did)
After join operator, call FindSuccessor(did) and FetchSuccessorList(Did) immediately。
Stab Operator: For current implementation, we notify predecessor for successor updating. But on paper HMCC, It defined a new operation that fetch successor's predecessor and successor_list periodically. And instead of notify predecessor, It notify successors.
The loop is guaranteed to terminate before succList is empty, based on the assumption that successor lists are long enough so that each list contains at least one live node.
Rectify operator, In origin Chord paper the operator is so called check_predecessor.
[Feat]: New feature flag: experimental, mark an implementation as experimental, which means that:1) It may not have been thoroughly tested. 2)The corresponding API may be deprecated or adjusted in the future.
[Doc]: Added document for modules.
[Refactor]: Made MessageHandlerEvent context-agnostic.
[Refactor]: Convergent implementation of logging module for wasm and defaut.
Convergent implementation of WASM and NATIVE #453
[Refactor]: Rename relay.sender() to relay.origin_sender()
[Refactor]: Reimplemented node::error::Error::code with #[repr(u32)]
[Fixed] datachannel for wasm and default
[Feat] Implemented messagehandler for correct chord related message.
Correctness of DHT #388 [BUG] DHT Join may not work properly #387
FACT
Chord must be initialized with a ring containing a minimum of
r +1
nodes, wherer
is the length of each node’s list of successors. In fact, to be proven correct, a Chord network must maintain a “stable base” ofr + 1
nodes that remain members of the network throughout its lifetime.The Chord Paper defined the maintenance and use of
finger tables
, which improve lookup speed by providing pointers that cross the ring like chords of a circle. Because finger tables are an optimization and they are built from successors and predecessors, correctness does not depend on them.IMPROVEMENTS
After join operator, call
FindSuccessor(did)
andFetchSuccessorList(Did)
immediately。The loop is guaranteed to terminate before succList is empty, based on the assumption that successor lists are long enough so that each list contains at least one live node.
check_predecessor
.ref: How to Make Chord Correct https://arxiv.org/pdf/1502.06461.pdf
The text was updated successfully, but these errors were encountered: