Fabcoin Core  0.16.2
P2P Digital Currency
Todo List
Class dev::crypto::Secp256k1PP
Collect ECIES methods into class.
Class dev::eth::Account
: need to make a noteCodeCommitted().
Class dev::eth::EthereumPeer

Document fully.

make state transitions thread-safe.

Class dev::p2p::Host

determinePublic: ipv6, udp

per-session keepalive/ping instead of broadcast; set ping-timeout via median-latency

Class dev::p2p::NodeTable

serialize evictions per-bucket

store evictions in map, unit-test eviction logic

store root node in table

encapsulate discover into NetworkAlgorithm (task)

expiration and sha3(id) 'to' for messages which are replies (prevents replay)

cache Ping and FindSelf


^ s_bitsPerStep = 8; // Denoted by b in [Kademlia]. Bits by which address space is divided.

eth/upnp/natpmp/stun/ice/etc for public-discovery

optimize knowledge at opposite edges; eg, s_bitsPerStep lookups. (Can be done via pointers to NodeBucket)

Class dev::p2p::Peer

Implement 'bool required'

reputation: Move score, rating to capability-specific map (&& remove friend class)

reputation: implement via origin-tagged events

Populate metadata upon construction; save when destroyed.

Metadata for peers needs to be handled via a storage backend. Specifically, peers can be utilized in a variety of many-to-many relationships while also needing to modify shared instances of those peers. Modifying these properties via a storage backend alleviates Host of the responsibility. (&& remove save/restoreNetwork)

reimplement recording of historical session information on per-transport basis

move attributes into protected

Class dev::p2p::RLPXFrameCoder

rename to RLPXTranscoder

Remove 'Frame' nomenclature and expect caller to provide RLPXFrame

Remove handshake as friend, remove handshake-based constructor

Class dev::p2p::RLPXFrameInfo
coder integration; padding derived from coder
Class dev::p2p::RLPXFrameWriter

throw when enqueued packet is invalid

use RLPXFrameInfo

Class dev::p2p::RLPXFrameWriter::WriterState
implement as class
Class dev::p2p::RLPXHandshake
Implement StartSession transition via lambda which is passed to constructor.
Class dev::p2p::Session
Document fully.
Class dev::p2p::UDPDatagram
make data protected/functional
Class dev::p2p::UDPSocket< Handler, MaxDatagramSize >

multiple endpoints (we cannot advertise

decouple deque from UDPDatagram and add ref() to datagram for fire&forget