Fabcoin Core
0.16.2
P2P Digital Currency
|
Document fully.
make state transitions thread-safe.
determinePublic: ipv6, udp
per-session keepalive/ping instead of broadcast; set ping-timeout via median-latency
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
firewall
^ 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)
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
rename to RLPXTranscoder
Remove 'Frame' nomenclature and expect caller to provide RLPXFrame
Remove handshake as friend, remove handshake-based constructor
throw when enqueued packet is invalid
use RLPXFrameInfo
multiple endpoints (we cannot advertise 0.0.0.0)
decouple deque from UDPDatagram and add ref() to datagram for fire&forget