-
Notifications
You must be signed in to change notification settings - Fork 277
Client Implementation Status
subtly edited this page Jul 24, 2015
·
27 revisions
This page contains a list of major RLPx features and the current status of those features for client implementations.
- Go,C++,Py uses left128 instead of right128
- whether to update mac state after sending mac digest
- Go [ ] C++ [ ] Py [ ]: discovery performed via 8 bits-per-hop routing
- Go [x] C++ [x] Py [ ]: udp addresses determined by socket address of recvd Ping packets
- Go [x] C++ [x] Py [x]: tcp addresses determined by contents of Ping packet
- Go [ ] C++ [ ] Py [x]: tcp addresses are only updated upon receipt of Pong packet
- Go [x] C++ [x] Py [x]: Signed discovery packets
- Go [x] C++ [ ] Py [x]: idle bucket refresh: for each bucket which, isn't empty or is empty and furthest away, and which hasn't been touched in 3600 seconds, pick a random value in the range of the bucket and perform discovery for that value
- Go [x] C++ [x] Py [x]: perform discovery protocol with a concurrency of 3
- Go [x] C++ [ ] Py [x]: timeout any packet operation if response is not received within 500ms
- Go [x] C++ [x] Py [x!]: distance based on xor(sha3(NodeIdA),sha3(NodeIdB))
Alex WiP:
- peer protocol maintains an ideal peer count
- Go
- C++
- Py
- Java
- JS
- Go [ ] C++ [ ] Py [x]: basic frame, move protocol-type into frame header (replace magic sequence w/frame header)
- Go [x] C++ [x] Py [x]: mac of header and frame
- Go [ ] C++ [ ] Py []: chunking with static 1KB frame size (requires fair queueing)
- Go [ ] C++ [ ] Py [ ]: poc9+ sequence-ids for non-chunked packets
- Go [ ] C++ [ ] Py [x!]: poc9+ dynamic framing
- Go [ ] C++ [ ] Py [ ]: fair queueing (required for chunking)
- Go [ ] C++ [ ] Py [ ]: DeltaUpdate packet (required for fair queueing)
- Go [ ] C++ [ ] Py [x!]: poc9+ dynamic framing
x! py implemented but not active
- Go
- C++
- Py
- Java
- JS