Skip to content
This repository has been archived by the owner on Jun 25, 2021. It is now read-only.

Latest commit

 

History

History
1786 lines (1081 loc) · 82.6 KB

CHANGELOG.md

File metadata and controls

1786 lines (1081 loc) · 82.6 KB

Changelog

All notable changes to this project will be documented in this file. See standard-version for commit guidelines.

0.77.9 (2021-06-18)

Bug Fixes

  • filter: ignore JoinRequests from filtering (547625d)

0.77.8 (2021-06-18)

0.77.7 (2021-06-16)

Bug Fixes

  • avoid JoinsAllowed re-votes got filter out (abc2531)

0.77.6 (2021-06-16)

Bug Fixes

  • make JoinRequest be handled properly by AE after section split (88723b0)

0.77.5 (2021-06-15)

0.77.4 (2021-06-15)

Bug Fixes

  • avoid dropping JoinResponse::Redirect mistakenly (b60510e)
  • new node after section split retry with MIN_ADULT_AGE (e4238b6)

0.77.3 (2021-06-15)

0.77.2 (2021-06-14)

Bug Fixes

  • cache: Prevent exposing expired values from Cache::set (e54f9c6)

0.77.1 (2021-06-14)

0.77.0 (2021-06-14)

⚠ BREAKING CHANGES

  • rename Proven to SectionSigned, MemberInfo to NodeState

api

  • rename Proven to SectionSigned, MemberInfo to NodeState (cda7f78)

0.76.1 (2021-06-12)

0.76.0 (2021-06-10)

⚠ BREAKING CHANGES

  • connectivity: sn_messaging includes a breaking change

Features

  • connectivity: refactor handling of lost connections (96aecd9)

0.75.1 (2021-06-09)

0.75.0 (2021-06-09)

⚠ BREAKING CHANGES

  • bootstrap: new node Join messaging is not backward compatible.

  • bootstrap: changes to new messaging flow for peers joining the network (0ebb7c0)

0.74.6 (2021-06-08)

0.74.5 (2021-06-07)

0.74.4 (2021-06-06)

Bug Fixes

  • proper differentiate local close and peer un-reachable (655d8a2)

0.74.3 (2021-06-06)

Bug Fixes

0.74.2 (2021-06-04)

Bug Fixes

  • comm: ignore connection loss (693f61c)
  • comms: do not take connectivity complaints from adults (f76b3a2)

0.74.1 (2021-06-04)

Bug Fixes

  • cache: address PR comments (1e6c0c4)

0.74.0 (2021-06-03)

⚠ BREAKING CHANGES

  • deps: the messaging update includes a breaking change

  • deps: update sn_messaging to v29 (b360807)

0.73.6 (2021-06-02)

Bug Fixes

  • await on future for the stress test (cf66585)

0.73.5 (2021-06-02)

0.73.4 (2021-06-01)

Features

  • send SectionKnowledge notifications during SAP change (a99cf78)
  • message: add Section PK to Messages (9251792)

Bug Fixes

  • tests: fix tests after refactor and rebase (20e857e)
  • variant: verify chain for SectionKnowledge variant also (056766c)

0.73.3 (2021-06-01)

0.73.2 (2021-06-01)

0.73.1 (2021-05-31)

0.73.0 (2021-05-31)

⚠ BREAKING CHANGES

  • api: includes a breaking change to the public API

  • api: return only SectionAuthorityProvider for matching_section (eaea2bc)

0.72.0 (2021-05-30)

⚠ BREAKING CHANGES

  • msgs: some of these changes impact the pubic API requiring some newly introduced traits usage.

  • msgs: move all routing message definitions out to sn_messaging (2259b7b)

0.71.4 (2021-05-28)

Features

  • use message_id instead of hash for message_filter (9f937a7)
  • use msg id for outgoing filter (cc3e144)
  • use signature as outgoing message_id (02dffda)

Bug Fixes

  • restore outgoing filter and only have one wire_msg copy for multiple recipients (ba98b41)

0.71.3 (2021-05-28)

Features

0.71.2 (2021-05-26)

0.71.1 (2021-05-26)

Bug Fixes

  • update message bytes directly for dest change (d253690)

0.71.0 (2021-05-25)

⚠ BREAKING CHANGES

  • removing support for Ping messages.

  • upgrading sn_messaging to v25.0.0 (7acb16a)

0.70.0 (2021-05-24)

⚠ BREAKING CHANGES

  • new version of sn_messaging is not backward compatible for sn_node messages.

  • upgrading sn_messaging to v24.0.0 (81907b5)

0.69.2 (2021-05-24)

Bug Fixes

  • end-user: assign clients a xorname which always matches the section prefix so they are propoerly routed in a multi-section network (ac4a27c)

0.69.1 (2021-05-24)

Bug Fixes

  • msg: attach correct proof_chain to messages (e0cd846)

0.69.0 (2021-05-21)

⚠ BREAKING CHANGES

  • messaging: this version uses a non backward-compatbile version of sn_messaging

  • messaging: remove the RegisterEndUser messaging handling and flows (fa88047)

0.68.6 (2021-05-20)

Bug Fixes

  • catering qp2p error change (1747cc3)
  • remove the obsolete member of Network (6b6788b)
  • resolving failing AE tests (fcdf30a)

0.68.5 (2021-05-14)

Features

  • errors: maintain Error chain in our Error types while customising them when additional context is available/useful (c89c3a4)

0.68.4 (2021-05-14)

0.68.3 (2021-05-13)

0.68.2 (2021-05-13)

0.68.1 (2021-05-13)

0.68.0 (2021-05-13)

⚠ BREAKING CHANGES

  • AE work

Features

  • AE: flesh out remaining Anti-Entropy flow (b28c422)

Bug Fixes

  • fixing stress statistic couting error (47f2024)
  • test: fix AE tests (4d8ae27)
  • test: fix node_msg_to_self test (a563a77)
  • convert SrcLocation to DstLocation in AE messages (314dc3e)
  • fix dst_info for send_or_handle method (649d27b)
  • fix dst_key in send_or_handle (6436aee)
  • post-rebase issues (ddd0682)
  • AE: implement SrcAhead flow (ade92fb)

api

0.67.1 (2021-05-10)

Features

  • move section_key into SectionAuthorityProvider (7d2d476)

0.67.0 (2021-05-10)

⚠ BREAKING CHANGES

  • event: Event enum variants changed and new added.

  • event: add SectionSplit, increase granularity (4766067)

0.66.3 (2021-05-10)

0.66.2 (2021-05-07)

0.66.1 (2021-05-07)

Bug Fixes

  • resolve failing tests after SectionAuthProvider refactor (99d5d28)

0.66.0 (2021-05-06)

⚠ BREAKING CHANGES

  • deps: Query response content changed.

  • deps: update sn_messaging (76e733b)

0.65.3 (2021-05-05)

0.65.2 (2021-05-04)

0.65.1 (2021-04-30)

Bug Fixes

  • notification only about live adults (01a8524)

0.65.0 (2021-04-30)

⚠ BREAKING CHANGES

  • deps: update sn_messaging to v20.0.0

  • deps: update sn_messaging to v20.0.0 (2417d53)

0.64.4 (2021-04-30)

Bug Fixes

  • only send adult list notification when no elder changing (4964a20)

0.64.3 (2021-04-28)

Features

  • notify adult nodes with own section's adult list (b4dddc0)

0.64.2 (2021-04-28)

0.64.1 (2021-04-28)

0.64.0 (2021-04-27)

⚠ BREAKING CHANGES

  • deps: update sn_messaging to 0.19.0

  • deps: update sn_messaging to 0.19.0 (c79313d)

0.63.2 (2021-04-27)

Bug Fixes

  • only send to client directly when it belongs to self section (b8ddc1b)

0.63.1 (2021-04-26)

0.63.0 (2021-04-23)

⚠ BREAKING CHANGES

  • deps: sn_messaging major version bump

  • deps: update sn_messaging (c7c4108)

0.62.1 (2021-04-23)

0.62.0 (2021-04-21)

⚠ BREAKING CHANGES

  • deps: New major version for sn_messaging.

  • deps: update sn_messaging (ecc376d)

0.61.2 (2021-04-21)

0.61.1 (2021-04-21)

0.61.0 (2021-04-21)

⚠ BREAKING CHANGES

  • for aggregate_at_src message, notify sn_node with proof as well

Features

  • restore aggregate at source (4e86a20)

api

  • for aggregate_at_src message, notify sn_node with proof as well (8a39aaa)

0.60.11 (2021-04-21)

0.60.10 (2021-04-21)

Bug Fixes

  • delivery_targets: deliver to all when targets are final dst (f26722b)

0.60.9 (2021-04-21)

Features

  • vote DKG non_participants off (c4d6067)

0.60.8 (2021-04-21)

Features

  • api: add new API for an Elder node to propose that a node has gone (2937e59)

0.60.7 (2021-04-21)

Bug Fixes

  • tests: refactor delivery group tests (6437b76)

0.60.6 (2021-04-21)

0.60.5 (2021-04-21)

Features

  • messaging: restore target group size (02fca6e)

0.60.4 (2021-04-21)

0.60.3 (2021-04-14)

Bug Fixes

  • connectivity: use separate endpoint to test connectivity to new (26a2bcc)

0.60.2 (2021-04-14)

Features

  • kill elder received too many connectivity complaints (cc9ca8a)

0.60.1 (2021-04-14)

0.60.0 (2021-04-13)

⚠ BREAKING CHANGES

  • deps: Node message members changed.

  • deps: update sn_messaging (1b1fdf7)

0.59.1 (2021-04-13)

0.59.0 (2021-04-13)

⚠ BREAKING CHANGES

  • new version of routing
  • This commit is mainly to cover the change of Peer. Which used by a public struct but won't trigger the version update automatically.
  • breaking version change (0fb090c)

0.58.2 (2021-04-13)

0.58.1 (2021-04-08)

Features

  • return TryJoinLater error when network disallow join (a5e4d4b)

0.58.0 (2021-04-08)

⚠ BREAKING CHANGES

  • deps: new version of sn_messaging
  • Also removes handling of the unused AtSource aggregation scheme.
  • deps: update sn_messaging (8d61421)

0.57.3 (2021-04-06)

Bug Fixes

  • relocated allowed to join with own age (018a9b8)

0.57.2 (2021-04-05)

Features

  • nodes using different ages (abb39c1)

Bug Fixes

  • relocated node can have higher age to join after first section split (68b3e1e)

0.57.1 (2021-04-02)

Bug Fixes

  • no router startup fixed w/qp2p udpate (29b98ea)

0.57.0 (2021-04-01)

⚠ BREAKING CHANGES

  • dep: the new qp2p version includes a breaking change

  • dep: update qp2p dependency (3efb8c5)

0.56.0 (2021-03-31)

⚠ BREAKING CHANGES

  • Events removed and event members changed.

Bug Fixes

  • restore EldersChange to a previous version (0a85b87)

0.55.0 (2021-03-31)

⚠ BREAKING CHANGES

  • The proof_chain field of Event::MessageReceived is now Option.

Bug Fixes

  • adults not able to send non-aggregated messages (9248cd0)

0.54.4 (2021-03-31)

Bug Fixes

  • remove potential panic in SignedRelocateDetails (23d0936)

0.54.3 (2021-03-31)

Bug Fixes

  • bounce untrusted messages directly to the original sender (1bed232)
  • send OtherSection to src of the original message, not src section (cd3e382)

0.54.2 (2021-03-29)

Features

  • last byte of node's name represents its age (69cef7a)

0.54.1 (2021-03-29)

Features

  • keep the genesis key and use it for fallback proofs (99fb5ca)

0.54.0 (2021-03-29)

⚠ BREAKING CHANGES

  • Added additional_proof_chain_key parameter to Routing::send_message, added proof_chain field to Event::MessageReceived.

Features

  • support adding additional proof chain keys to user messages (2275730)

0.53.0 (2021-03-24)

⚠ BREAKING CHANGES

  • Routing::neighbour_sections renamed to other_sections.

Features

  • remove neighbour restriction (269cff0)

Bug Fixes

  • don't send OtherSection or vote TheirKnowledge to our section (95f14d8)
  • reduce unneeded lazy messages (0498f24)

0.52.1 (2021-03-24)

Features

  • use supermajority agreement + increase elder size to 7 (b729a87)

Bug Fixes

  • test: increase the number of nodes in the drop test from 3 to 4 (9ce0ec7)

0.52.0 (2021-03-22)

⚠ BREAKING CHANGES

  • DT update. Naming and message structs for splits

Features

  • chain: expose SectionChain via API (1590414)
  • event: add separate genesis event (681d2c7)
  • event: expose previous key in elderschanged (0718e0c)
  • event: update elders_changed event (af37d06)

Bug Fixes

0.51.0 (2021-03-18)

⚠ BREAKING CHANGES

  • Routing::match_section renamed to Routing::matching_section

Features

  • support dst accumulation with any message variant (cc2f413)
  • use src from itinerary for dst accumulated user message (31838e9)
  • use XorName instead of Prefix for section message src (d2347ee)

0.50.0 (2021-03-16)

⚠ BREAKING CHANGES

  • remove Event::PromotedToAdult and the startup_relocation field of Event::MemberJoined, both parts of public API.

Features

  • remove unused events and event properties (238a301)

0.49.1 (2021-03-11)

0.49.0 (2021-03-05)

⚠ BREAKING CHANGES

  • tokio: new Tokio v1 is not backward compatible with previous runtime versions < 1.

  • tokio: upgrade tokio to v1.2.0 and qp2p 0.10.0 (e5adc1a)

0.48.1 (2021-03-04)

Bug Fixes

  • prevent creating Section with elders info signed with wrong key (f0f839c)
  • use chain main branch length as the DKG generation (ed3a54e)
  • dkg: allow multiple pending key shares (92dfc70)
  • dkg: avoid mixing DKG messages from different generations (e68ba2a)
  • dkg: detect corrupted DKG outcome (ec53c63)
  • make sure sibling section info is valid and trusted (2044b11)

0.48.0 (2021-03-03)

⚠ BREAKING CHANGES

  • data-types: new Sequence data-type doesn't allow Policy mutations.

  • data-types: upgrading data-types to v0.16.0 and sn_messaging to v8.0.0 (5e39755)

0.47.5 (2021-03-03)

0.47.4 (2021-03-03)

Bug Fixes

  • always send their Offline vote to relocated elders (7f77e97)
  • avoid invalidating signature when resending bounced Sync message (d482dab)
  • check trust with all known keys, not just the src matching ones (2c9a1b2)
  • cover all cases of RelocatePromise handling (5966d3d)
  • ignore Sync messages not for our section (6d90fcf)

0.47.3 (2021-03-03)

Bug Fixes

  • respond with GetSectionResponse::Redirect on missing pk set (69a1fb8)
  • bootstrap: avoid duplicate GetSectionRequest (84327e2)
  • bootstrap: require GetSectionResponse to match our destination, not name (4f484f1)
  • stress-test: fix probe message sending (a8a184c)

0.47.2 (2021-03-02)

Bug Fixes

0.47.1 (2021-03-02)

Features

  • implement new SectionChain that can resolve forks (a3d786f)
  • replace (old) SectionProofChain with (new) SectionChain (03fb82c)

Bug Fixes

  • bug in SectionChain::minimize (0eef78e)
  • correctly handle section chain extend edge case (cae05ba)
  • ensure section elders info is always signed with the last chain key (82fad1a)
  • make SectionChain::check_trust more strict (8dcd021)

0.47.0 (2021-03-02)

⚠ BREAKING CHANGES

  • messaging: send_message api now requires an itinerary argument

Bug Fixes

  • issues pointed out in review comments (d9a986e)

  • messaging: add expected aggregation scheme, and use an itinerary (a79d2d0)

0.46.3 (2021-03-02)

0.46.2 (2021-03-01)

0.46.1 (2021-03-01)

0.46.0 (2021-02-25)

⚠ BREAKING CHANGES

  • accumulation: this uses a new version of sn_messaging with a breaking change

Features

  • accumulation: add support for accumlation at dest node (f892838)

Bug Fixes

  • dst-accumulation: verify aggregated signature with proof chain (bd99595)

0.45.1 (2021-02-24)

0.45.0 (2021-02-24)

⚠ BREAKING CHANGES

  • added new field to the Event::EldersChanged variant.

Features

  • add sibling key to Event::EldersChanged (afd33e3)
  • new API: Routing::section_key (486ee61)

0.44.0 (2021-02-23)

⚠ BREAKING CHANGES

  • deps: removes send_message_to_client api,

Features

  • enduser: add mapping between socketaddr and pk (1ff902d)
  • messages: remove MsgEnvelope (57df069)

Bug Fixes

  • add missing routing to client of relayed client message (fbde5b1)

  • addresss review comments (27dcac5)

  • post-rebase issues (906ef03)

  • remove unnecessary error mapping (0f3418b)

  • remove use of wildcard match and unimplemented macro (84c53d8)

  • deps: update sn_messaging, sn_data_types (367b673)

0.43.4 (2021-02-23)

0.43.3 (2021-02-18)

0.43.2 (2021-02-16)

Features

  • having EldersInfo change candidate considered as DKG in progress (6137123)
  • notify client of incorrect section_key (c54f034)
  • updates for section key response changes (71f89d8)

0.43.1 (2021-02-15)

Bug Fixes

  • remove offline elder from vote recipients (3bcea21)

0.43.0 (2021-02-15)

⚠ BREAKING CHANGES

  • this changes the return type of State::new

Bug Fixes

  • comm: dont hold on to messages sent on a channel that is unused (92856cd)

  • fix clippy errors with version 1.50.0 of rust (b6b385a)

0.42.4 (2021-02-09)

0.42.3 (2021-02-08)

0.42.2 (2021-02-04)

Bug Fixes

  • redirect to our elders on mismatching GetSectionRequest as adult (22c4745)

0.42.1 (2021-02-04)

0.42.0 (2021-02-04)

⚠ BREAKING CHANGES

  • remove unused Error::NodeMessaging variant

Features

  • add Envelope and InfrastructureQuery (e0b999f)
  • make use of sn_messaging crate for messaging serialisation/deserialisation (cbc4802)
  • modify bootstrap to use infrastructure queries (9fb438f)
  • remove unused Error::NodeMessaging variant (0b70c28)

Bug Fixes

  • send messages with correct MessageKind byte (6756b43)

0.41.6 (2021-02-01)

Features

  • keycache: adds a key cache and removes exposure of secret key (b312446)

Bug Fixes

  • clippy: remove clone (undetected in local clippy check) (da6cbc7)

0.41.5 (2021-01-27)

0.41.4 (2021-01-26)

Features

  • log send to client error (ddeff5e)

0.41.3 (2021-01-21)

0.41.2 (2021-01-20)

0.41.1 (2021-01-20)

Features

  • do not create connection when failed to send to client (d5eadd8)

0.41.0 (2021-01-19)

⚠ BREAKING CHANGES

  • - remove `Error::BadLocation` (use the more specific `InvalidSrcLocation` / `InvalidDstLocation` instead)
    
    • rename Error::InvalidSource to Error::InvalidSrcLocation
    • rename Error::InvalidDestination to Error::InvalidDstLocation

Features

  • improve fork diagnostics (dbf9807)
  • stress test: improve output (33eac1b)
  • remove old DKG sessions (c8db72f)
  • support multiple concurrent DKGs (98fc101)

Bug Fixes

  • allow only one relocation at the time per node (0e4d05f)

  • don't fail in update_state if secret key share is missing (97d8266)

  • ignore elders update with incorrect prefix (dfc9c60)

  • ignore invalid bootstrap response (3d8cfd5)

  • stress test: ignore InvalidSource errors when sending probes (adabf82)

  • send Sync messages on split even when demoted (5f42b78)

  • remove Error::BadLocation (3391c7f)

0.40.0 (2021-01-13)

⚠ BREAKING CHANGES

  • this affects the Error type which is a part of the public API.

Bug Fixes

  • trust check failure of Sync message sent to non-elders (5520c18)

  • use keys not key indices to check whether elders changed (a99a07f)

  • remove Error::UntrustedMessage (dbcf0db)

0.39.16 (2021-01-13)

0.39.15 (2021-01-13)

0.39.14 (2021-01-12)

Features

  • add stress test example (cf25c48)

Bug Fixes

  • stress test: fix log to file and probe message destination (c933605)
  • stress test: fix sent probe messages counter (b9b7530)

0.39.13 (2021-01-05)

0.39.12 (2020-12-29)

0.39.11 (2020-12-29)

0.39.10 (2020-12-25)

Bug Fixes

0.39.9 (2020-12-24)

Features

  • set filter number boundary (c129bff)

0.39.8 (2020-12-16)

Bug Fixes

  • use age assigned by section (4db6351)

0.39.7 (2020-12-15)

Bug Fixes

  • reject SectionInfo votes not voted by a participant (c40dc12)

0.39.6 (2020-12-14)

Bug Fixes

  • handle message send to self (a1c26ff)

0.39.5 (2020-12-11)

0.39.4 (2020-12-09)

Bug Fixes

  • test: account for relocations in test_startup_section_bootstrapping (53196a5)
  • consider also relocated current elders for elder candidates (fffc946)
  • do not require resource proof for relocated node + test (667e1fb)
  • forward ResurceChallenge to the bootstrap task (2552f06)
  • test: dont assert new joining node is not instantly relocated (9a18b4c)

0.39.3 (2020-12-09)

Features

  • use tracing for logging (a68af40)

0.39.2 (2020-12-07)

0.39.1 (2020-12-03)

Features

  • carry out resource proofing during bootstrap (a047ca1)
  • relocation during startup no-longer required (cf937e4)

0.39.0 (2020-12-02)

⚠ BREAKING CHANGES

  • - remove `Routing::secret_key_share` (use `Routing::sign_with_secret_key_share` instead).
    
    • Rename Error::InvalidElderDkgResult to Error::MissingSecretKeyShare
    • Routing::public_key_set and Routing::our_index now return MissingSecretKeyShare instead of InvalidState on error.

Features

  • do not expose BLS secret key share (e8fa12e)

0.38.0 (2020-11-30)

⚠ BREAKING CHANGES

  • use use sn_routing::Event; instead of use sn_routing::event::Event;.
  • Event changes:
  • Remove Event::Connected - not needed because Routing::new now returns fully connected routing instance.
  • Add Event::Relocated - replaces Event::Connected(Connected::Relocate)
  • Remove Event::InfantJoined - merged with MemberJoined
  • Change Event::MemberJoined::previous_name to Option to allow distinguishing between new and relocated peers.
  • remove size fields within routing::Config
  • remove NetworkParams
  • some methods of Routing that previosuly returned Option<T> or Result<T> now return just T.
  • rename Instance to Routing
  • Node and NodeConfig are part of the public API.

Features

  • add bootstrap message backlog (75f0a5c)
  • allow rejoin with same name (ded038d)
  • cancel running timers on drop (d8f420f)
  • expose Event directly, hide event module (d940b77)
  • implement DKG message bouncing (551c427)
  • implement lost peer detection (cbc57ba)
  • implement message resending (cc2fcbd)
  • implement proper node termination (0fbced8)
  • improve Comm api and documentation (9ecfe8a)
  • joins_allowed flag to toggle accept new node or not (5def794)
  • make the log identifier work again (48d7ce7)
  • make the resend delay configurable (8a0d043)
  • minor changes to the Event enum (56e658f)
  • notify when key got changed during relocation (2540a27)
  • ping peers on connection loss to detect if they went offline (d6be64f)
  • relocate all joining infants during startup phase (492f4d7)
  • relocate one infant with age increased by one when set joins_allowed flag (03d9827)
  • age: add age getter API (07430a0)
  • comm: detect lost connections (f4e9e3a)
  • remove resend delay (9b0971e)
  • remove Variant::Ping (18a9d40)
  • start the first node with higher age (d23914e)
  • upnp: use new version of qp2p with UPnP and echo service (afb609e)
  • relocate only the oldest peers that pass the relocation check (d7855b5)
  • remove join timeout - to be handled by the upper layers instead (cb4f6fe)
  • use unbounded channel for Events (fb5a3aa)
  • api: expose an async event stream API, and adapt node module to use qp2p async API (a42b065)
  • node: cache Connections to nodes (a78c305)

Bug Fixes

  • prevent losing incoming messages during bootstrapping (3c9357e)

  • dkg: backlog messages with unknown DKG key (03873c1)

  • dkg: handle delayed DKG outcome (c58611b)

  • dkg: handle DKG with single participant (00c2efa)

  • bounce DKG message only if node has no ongoing session (350b75d)

  • clear peer_mgr candidate post pfx change. (57cd490)

  • don't ack hop messages in Client state (9539c05)

  • expand ConnInfoReq handling conditions. (d081800)

  • handle invalid bootstrap response by retuning error (d5ee338)

  • lost peer handling (1d95194)

  • no longer use serde macro derive (2116420)

  • Remove old compatible neighbour pfx not restricted to a strict parent/child prefix in Chain on updating neighbour_infos. (#1579) (6d23fa3)

  • rename mock/quick_p2p to mock/quic_p2p (067fab0)

  • resolve clippy errors of non-mock tests (94eda60)

  • resolve failing example (121ce95)

  • send Event::Connected only after transition to Approved (dbe0593)

  • take ages into account when calculating DkgKey (824d229)

  • comm: try to re-connect after previously failed send (08d9410)

  • event: export qp2p SendStream and RecvStream for consumers to use (65af16f)

  • use the latest section key when updating non-elders (219f98d)

  • vote for sibling knowledge after parsec reset (090663f)

  • remove the Routing state machine (cfa19ff)

  • rename Instance to Routing (a227e3f)

  • rename Node to Instance and NodeConfig to Config (d8d6314)

api

  • remove NetworkParams (686c248)
  • remove size fields within routing::Config (9dfb935)

0.37.0 (2018-08-28)

  • Upgrade unwrap version to 1.2.0
  • Use rust 1.28.0 stable / 2018-07-07 nightly
  • rustfmt 0.99.2 and clippy-0.0.212
  • Update license to mention GPLv3 only

0.36.0 (2018-04-05)

  • Use rust 1.24.0 stable / 2018-02-05 nightly
  • rustfmt 0.9.0 and clippy-0.0.186

[0.35.0]

  • Use rust 1.22.1 stable / 2017-11-23 nightly
  • rustfmt 0.9.0 and clippy-0.0.174

[0.34.0]

  • Fix rounding error in test.
  • Depend on Crust 0.29.0.
  • Depend on rust_sodium 0.6.0.

[0.33.2]

  • Depend on Crust 0.28.1.

[0.33.1]

  • Increase MAX_MUTABLE_DATA_ENTRIES from 100 to 1000.

[0.33.0]

  • Rate limiter refund on overcharge for get response.
  • Rate limiter having soft capacity for clients.
  • Bugfix to not mutate peer on receiving conn_info_response.
  • Bugfix to remove expired peers(normalise peers) when receiving TunnelSuccess or TunnelRequest.
  • Enforce one client per IP only on bootstrap request.
  • Add Rand impl for PermissionSet.
  • Resend rate exceeded user message parts and remove Event::ProxyRateLimitExceeded
  • Bugfix to not reject BootstrapRequest messages invalidly.

[0.32.2]

  • Bugfix to avoid adding nodes to disconnected client list.

[0.32.1]

  • Bugfix to avoid handling recently-disconnected client direct messages.

[0.32.0]

  • Allow mock-crust network to support multiple nodes/clients with the same IPs.
  • Allow only one client ip per proxy.
  • Modify the client Rate Limiter paradigm to not put an upper threshold on number of clients with unique IPs to bootstrap off a proxy.
  • Add dev configuration options for routing such that these options can be supplied in a routing config file that routing would read to tweak parameters such as disable resource proof etc.
  • Update to use Rust Stable 1.19.0 / Nightly 2017-07-20, clippy 0.0.144, and rustfmt 0.9.0.
  • Make MutableData errors more descriptive.

[0.31.0]

  • Remove support for Structured, PrivAppendable and PubAppendable Data
  • Add Support for MutableData instead.
  • Introduce mock-crypto which provides efficient mocking of the crypto primitives for faster test runs for cases where we don't care about tightness of security.
  • Code rate-limiter to restrict proxy from relaying more than the agreed threshold to the Network on behalf of the clients (each client being identified on IP level).
  • Detect malformed messages and invalid/disallowed RPCs and ban such a sender on IP level.

[0.30.0]

  • Replace all sha256 from rust_sodium with sha3_256 from tiny_keccak.
  • Move AccountPacket type required by vaults and clients into a common_types module.

[0.29.0]

  • Integration with templatised Crust where now routing specifies what to use as a UID so that crust and routing use a common UID to identify peer.
  • Peer manager clean up as connect success now tells us everything about the peer. Previously we needed to wait additionally for NodeIdentify for instance as crust-uid (PeerId) and routing-uid (PublicId) were separate and each layer informed about the id specific to that layer only.

[0.28.5]

  • Add section update requests to make merges more stable.
  • Don't approve new node if routing table is invalid.
  • Work around cases where OtherSectionMerge would not accumulate.
  • Several fixes to tunnel nodes and peer manager.
  • Remove more sources of randomness to make tests deterministic.
  • Add new error types related to invitation-based account creation.
  • Replace rustc-serialize with serde.

[0.28.4]

  • Don't try to reconnect to candidates that are not yet approved.
  • Don't include peers in sent_to that are not directly connected.
  • Use SHA3 everywhere instead of SipHash.
  • PrefixSection authorities now always refer to all sections compatible with the given prefix.
  • Cache OwnSectionMerge messages until both merging sections have sent one. Only then update the routing table.
  • Cache any routing table updates while merging, and relay them afterwards.
  • Other merge and tunnel fixes, and additional tests for merging and tunnels.
  • Try to reconnect after a connection drops.

[0.28.2]

  • Extend the tests for tunnelling and the churn tests.
  • Fix several peer manager issues related to tunnel nodes and candidates.
  • Send SectionSplit messages as PrefixSection authority to allow resending.
  • Fix several issues related to merging sections.
  • Some improvements to the log messages.

[0.28.1]

  • Retry preparing connection info if Crust returns an error.

[0.28.0]

  • Profile the bandwidth of nodes joining the network. Reject slow nodes.
  • Organise nodes into disjoint sections. Introduce the Section and PrefixSection authorities.
  • Maintain lists of signatures of neighbouring sections, which will enable secure message validation.
  • Accumulate messages in the sending group/section, then send the messages with all the signatures across a single route. This reduces the number of total invididual hop messages that need to be sent.
  • Routes are now disjoint: Retrying to send a message along a different route cannot potentially fail on the same node again.
  • Merge the routing_table crate into routing.
  • Remove the internal event handling thread. Events should be handled in the upper library's event loop. That way, some message passing can be replaced by direct calls to routing methods.
  • Remove the PlainData type which was only used in tests.

[0.27.1]

  • Increase the ID size limit by 10 kB.

[0.27.0]

  • add NO_OWNER_PUB_KEY to make data effectively immutable
  • disallow that key together with other owners (new error InvalidOwners)
  • provide API for data chunk size validation (new error DataTooLarge)
  • support new deletion paradigm for structured data

[0.26.0]

  • Add the public and private appendable data types.
  • Allow whitelisting nodes via the crust config file.
  • Randomise message handling order in the mock crust tests.

[0.25.1]

  • Fix a panic in ack manager.

[0.25.0]

  • Refactoring: Further split up and reorganise the states and move more logic into the peer manager module.
  • Several bug fixes and test improvements.

[0.24.2]

  • Refactoring: Turn Core into a state machine with Client and Node states. Move some more logic onto the PeerManager.
  • Fix a bug that caused some nodes to refuse to close an unneeded connection.

[0.24.1]

  • Fix redundant calls to Crust connect.

[0.24.0]

  • Fix sodiumoxide to v0.0.10 as the new released v0.0.12 does not support rustc-serializable types anymore and breaks builds.
  • Avoid redundant hash calculations by making the data name method a simple getter.
  • Fix ack handling when resending a message.
  • Some refactoring and test updates.

[0.23.2]

  • Don't cache as a member of recipient group: this can cause redundant responses.
  • Disconnect previous bootstrap node when retrying to bootstrap.

[0.23.1]

  • Fix tests involving sorting nodes by names.
  • Fix random seeds when multiple tests are run at once.

[0.23.0]

  • Add seeded rng support to mock crust tests.
  • Add support for response caching.
  • Add various mock crust tests.
  • Prevent multiple routing nodes from starting on same LAN.

[0.22.0]

  • Migrate to the mio-based Crust.
  • Replace redundant group messages by hashes to save bandwidth.
  • Split up large messages into 20 kB chunks.
  • Improve message statistics; add total message size and count failures.
  • Restart with blacklist if the proxy node denied the connection.
  • Merge message_filter into routing.
  • Some refactoring to clean up the logic in Core.
  • Several bug fixes.

[0.21.0]

  • Reduce the XorName size from 512 to 256 bits.

[0.20.0]

  • Send acknowledgement messages (acks) and resend via a different route only if no ack is received. Previously, several routes were used simultaneously, wasting a lot of bandwidth.
  • Merge xor_name into routing.
  • Simplify the message type hierarchy and the API.
  • Fix sending redundant connection info.

[0.19.1]

  • network size < GROUP_SIZE will only accept new nodes via first node

[0.19.0]

  • Only start a network if explicitly designated as first node.
  • Use a Crust priority based on message type.

[0.18.5]

  • Don't send Tick events to clients.
  • Use a size limit for the data cache instead of a timeout.
  • More detailed message stats logging.

[0.18.4]

  • Allow up to 40 tunnel client pairs.
  • Migrate to Crust 0.12.0.
  • Add sequence diagrams to the documentation.
  • Improve logging.
  • Fix several bugs.

[0.18.3]

  • Depend on latest Crust.
  • Add the 'Stats' prefix to all statistics log messages.

[0.18.2]

  • Add a periodic tick event.
  • Increase the timeout for polling bucket groups.
  • Extract the statistics module and gather more statistics.

[0.18.1]

  • Some improvements to the log messages.
  • Fix several lint warnings.

[0.18.0]

  • Add the routing table to NodeAdded and NodeLost events.
  • Add NetworkStartupFailed and StartListeningFailed events.
  • Improve join limit to prevent damage to the network in case of many simultaneously joining nodes.
  • Drop unneeded connections from the routing table.
  • Replace node harvesting with periodic bucket polling.

[0.17.0]

  • Depend on Crust 0.11.0.

[0.16.3]

  • Add HEARTBEAT_ATTEMPTS constant to configure when an unresponsive peer is considered lost.
  • Fix a bug that caused unneeded node harvesting attempts.

[0.16.2]

  • Reduce network traffic by including recipients in hop message that have handled the message.

[0.16.1]

  • Bug fix: DataIdentifier now correctly returns the structured data computed name in its name() function

[0.16.0]

  • Add identifier() method to all data elements (type + name)
  • All ImmutableData types now concrete (not variants)

[0.15.1]

  • Fix a message handling bug.
  • Add MessageId::zero constructor.
  • Always send NodeAdded for a new peer, even if not in a common group.

[0.15.0]

  • Implement Rand for mock PeerId.
  • Add data name to Put, Post and Delete success responses.

[0.14.0]

  • Add message id to Refresh messages
  • Node numbers only increase during node addition in churn for ci_test example
  • Update dependencies

[0.13.0]

  • Add tunnel nodes.
  • Optimise the GetNetworkName message flow for quicker joining.
  • Make caching optional.
  • Send keepalive signals to detect lost peers.
  • Implement full Put response flow in the example node.
  • Remove digest from success responses; it has been replaced by MessageId.
  • Migrate to Crust 0.10.0.
  • Various bug fixes.

[0.12.0]

  • Make the mock_crust module public

[0.11.1]

  • Send a Disconnected event if client fails to bootstrap.

[0.11.0]

  • Replace CBOR usage with maidsafe_utilites::serialisation.
  • Updated dependencies.

[0.10.0]

  • Take MessageIds as an argument in the Client methods.

[0.9.0]

  • Add mock Crust and network-less tests for Core.
  • Return MessageIds from Client methods.
  • Allow a user to connect to the same proxy node with several clients.

[0.8.0]

  • Send a Disconnected event if the network connection is lost.
  • Log disconnecting clients.

[0.7.1]

  • Several bug fixes.

[0.7.0]

  • Migrate to the new Crust API.
  • Add some timeouts to check for stale connections.
  • Limit proxy connections to one.
  • Make node discovery more efficient.
  • Shorten log messages and debug formats to make the logs clearer.
  • Some updates to churn handling in the example.
  • Fix lots of Clippy warnings.
  • Fix lots of bugs.

[0.6.3]

  • Added several tests
  • Further documentation improvements
  • Improved debug output of several types

[0.6.2]

  • Reject clients if the routing table is too small
  • Fix computation of remaining required signatures for StructuredData
  • Limit the number of concurrently joining nodes
  • Remove unneeded files
  • Expand documentation
  • Distinct message IDs for added and lost nodes
  • Ignore double puts in the example

[0.6.1]

  • Update core to send on only first connection

[0.6.0]

  • Further updates to examples
  • Moved CI scripts to use Stable Rust

[0.5.3]

  • Getting examples updated
  • Updating the API to expose the routing node name and close group

[0.5.2]

  • Bug fix - Blocking InterfaceError not returning
  • Changing mutable to immutable for stop() function in routing.rs

[0.5.1]

  • Expose ImmutableDataType

[0.5.0]

  • Cleanup of routing API
  • Exposing of success and failure event for GET, PUT, POST and DELETE
  • Separating XorName and Routing Table into their own crates

[0.4.2]

  • Remove wildcard dependencies

[0.4.1] Updated to CRUST 0.4

[0.4.0] Updated to CRUST 0.3

  • #711 remove unneeded state on ::connect
  • MAID-1366 update routing to crust 0.3 API
  • #369 enforce LINT checks

[0.3.12]

  • MAID-1360 unit tests for RoutingCore
  • MAID-1357 unit tests for message and refresh accumulator
  • MAID-1359 unit tests for Relay
  • MAID-1362 more unit tests for StructuredData, Types and Utils
  • MAID-1350 introduce simple measuring tools for establishing the threshold for the accumulators
  • MAID-1348 ChurnNode for integration tests

[0.3.11]

  • #699 implement debug for StructuredData
  • #696 expose NAME_TYPE_LEN and random traits
  • #695 correct style error in error.rs
  • #692 add cause and event::DoRefresh for improvements to churn
  • #691 update QA libsodium documentation
  • #690 correct failing test
  • MAID-1361 unit tests for id, public_id, error, data, direct_messages
  • MAID-1356 unit test filter.rs
  • MAID-1358 unit test signed_message

[0.3.10]

  • #685 use latest accumulator

[0.3.9]

  • MAID-1349 refresh_request to use authority
  • MAID-1363 remove wake_up.rs
  • MAID-1344 ::error::ResponseError::LowBalance
  • MAID-1364 clean out types.rs
  • #663 only churn on QUORUM connected nodes
  • #662 enable dynamic caching
  • #670 update Travis with ElfUtils
  • #669 update Travis with install_libsodium.sh

[0.3.8]

  • #664 update to match Crust's api change

[0.3.7] Unique signed messages

  • #660 Unique SignedMessage with random bits and routing event loop

[0.3.6]

  • Fixed #560 Removed unstable features.
  • Updated "hello" messages
  • Updated cache-handling in line with current Routing requirements
  • Further work on churn handling

[0.3.5] improvements to ResponseError and testing

  • #647 CI disallow failures on windows x86 (32bit) architecture
  • #646 correct ResponseError::HadToClearSacrificial to return NameType and u32 size
  • #645 key_value_store to test < Client | ClientManager > < ClientManager | NaeManager > behaviour

[0.3.4] Improvements to filter and accumulator behavior

  • #642 improve filter to block resolved messages
  • #640 Enable duplicate get requests

[0.3.3] Events and refresh

  • #638 debug formatting for Data
  • #637 our authority API update
  • #626 refresh messages
  • #636 rustfmt formatting
  • #634 rename fob to public_id in routing table
  • #628 initial handlers for cache
  • #624 remove peers from example CLI, small improvements
  • #620 event bootstrapped, connected, disconnected
  • #623 maximum allowed size for structured data

[0.3.2] Final public API for version 0.3

  • internal bug fixes
  • partial restoration of unit tests
  • fine-tuning public API in correspondence with user projects

[0.3.1] Implementing internal functionality

  • #582 implement routing public api channel to routing_node
  • #580 review message_received in routing_node
  • #579 simplify example to a pure DHT (no client_managers)
  • #578 implement connect request and connect response
  • #577 implement sending events to user
  • #576 implement accumulator as stand-in for sentinel
  • #575 temporarily remove sentinel dependency
  • #574 fix sodiumoxide problems with Travis CI
  • #573 use signature as filter type, deprecating message id
  • #572 implement request network name
  • #571 refactor example to new api
  • #567 implement generic send for signed message
  • #566 implement bootstrap connections in core
  • #565 implement target nodes in core
  • #564 pruning and clean up

[0.3.0] Unified Data and refactor for channel interface

  • MAID-1158 Unified Data

    • MAID-1159 Implement PlainData
    • MAID-1160 Implement ImmutableData
    • MAID-1163 Implement StructuredData
    • MAID-1165 StructuredData::is_valid_successor
    • MAID-1166 Unit Tests for PlainData and ImmutableData
    • MAID-1167 Unit Tests for StructuredData
    • MAID-1168 Unit Test IsValidSuccessor for StructuredData
    • MAID-1171 Implement UnifiedData enum
    • MAID-1172 Update with UnifiedData: GetData and GetDataResponse
    • MAID-1173 Update with UnifiedData: PutData and PutDataResponse
    • MAID-1175 Update with UnifiedData: RoutingMembrane RoutingClient Put and Get
    • MAID-1176 Update with UnifiedData: Interfaces and churn
  • MAID-1179 Implement Post and PostResponse

  • MAID-1170 Update RoutingClient and relay node: RoutingMessage

  • MAID-1251 Remove option first from routing node

  • MAID-1255 RFC 0001 - Use public key for id on all messages

  • MAID-1063 replace MessageTypeTag with full enum.

  • #557 channel architecture and simplified message

[0.2.8] - Version updates and minor fixes

  • Updated dependencies' versions
  • Fixed lint warnings caused by latest Rust nightly

[0.2.7] - Activate act on churn

  • #426 close bootstrap connection
  • #426 routing acts on churn
  • #426 group size 8; quorum 6
  • #426 improve refresh routing_table
  • #426 cache on connect_response
  • #426 reflect own group: on FindGroupResponse in our range is seen, ask for FindGroup for our name.

[0.2.6] - Temporary patch for Vault behaviour

  • #424 Patch for Vaults handle put behaviour

[0.2.1 - 0.2.5] - debug with upper layers

  • [0.2.5] #421 Set Authority unauthorised put to ManagedNode to accommodate Vaults for now
  • [0.2.4] #419 Correct ClientInterface::HandlePutResponse
  • [0.2.3] #416 Activate HandleChurn (but don't act on the resulting MethodCall yet)
  • [0.2.2] Update sodiumoxide dependency to *
  • [0.2.2] Update crust dependency to *
  • [0.2.1] Update sodiumoxide dependency to 0.0.5

[0.1.72] - documentation

  • Fix master documentation url in readme
  • #406 enable handler for unauthorised put
  • #369 clean up unneeded features

[0.1.71] - Finish Rust-2

  • #360 Fix intermittent failure in Relay
  • #372 Introduce unit tests for Routing Membrane
  • #388 Handle PutDataResponse for routing_client
  • #395 Preserve message_id

[0.1.70] - Activate AccountTransfer

  • #354 Fix release builds
  • MAID-1069 OurCloseGroup Authority
  • #363 Refresh message and ad-hoc accumulator
  • #290 Remove NodeInterface::handle_get_key
  • #373 Reduce group size for QA to 23

[0.1.64] - bug fixes

  • #330 Who-Are-You / I-Am message for identifying new connections
  • #312 Fix never-connecting client
  • #343 Filter escalating number of connect requests
  • #342 Clean up overloaded debug command line printout
  • #347 Relay GetDataResponses and cached GetDataResponses back to relayed node

[0.1.63] - bug fixes

  • #314 simple_key_value_store input validation lacking
  • #324 simple_key_value_store peer option
  • #336 Routing 0.1.62 causes API inconsistency in usage of RoutingClient

[0.1.62] - restructure core of routing

[0.1.61] - Relay module, relocatable Id, update NodeInterface

[0.1.60] - essential logical corrections

  • MAID-1032 correct name calculation of pure Id
  • MAID-1034 ConnectResponse needs to include original signed ConnectRequest
  • MAID-1043 remove old sentinel
  • MAID-1059 rename types::Action -> types::MessageAction; rename RoutingNodeAction -> MethodCall

[0.1.1]

  • Remove FailedToConnect Event

[0.1.0]

  • Re-expose crust::Endpoint as routing::routing_client::Endpoint

[0.0.9]

  • Move bootstrap out of routing
  • Complete Routing Node Interface to accomodate churn
  • Add caching to node interface
  • Handle ID Caching
  • Handle Cache / Get / Check calls
  • Routing message handling
  • Sentinel:
    • Handover existing implementation
    • Account transfer merge
    • Group response merge
    • Signature checks
  • Check Authority (Ensure use and implementation of Authority is in line with the design doc / blog.)
  • Implement unauthorised_put in routing_node and routing_client (this skips Sentinel checks)
  • Implement routing connections management
  • Added encodable/decodable for ClientIdPacket

Version 0.1.1

[0.0.7 - 0.0.8]

  • Bootstrap handler implementation
  • Bootstrap handler test
  • Create sort and bucket index methods
  • Implement routing table
  • Test routing table
  • Implement sentinel (initial)
  • Finalise sentinel in line with tests
  • Implement client node
  • Test sentinel
  • Implement routing message types (Connect FindNode)
  • Test message types
  • Implement Get Put Post messages
  • Version 0.0.8

[0.0.6]

  • Set up facade design pattern
  • Test facade pattern
  • Set up accumulator
  • Accumulator tests
  • Message header
  • Message header tests
  • API version 0.0.6