Commit Graph

19 Commits

Author SHA1 Message Date
Vladimir Komendantskiy 40575402c8 replaced AsRef constraint by more precise Hashable and corrected doc example 2018-04-11 17:57:30 +01:00
Vladimir Komendantskiy b776087b26 removed redundant type constraint 2018-04-11 15:44:59 +01:00
Vladimir Komendantskiy bc071d7a09 added Error return types of run() functions, and handled returned errors 2018-04-06 17:01:14 +01:00
Vladimir Komendantskiy e9b0add188 removed redundant dependency on error_chain; corrected vector indices 2018-04-06 13:57:48 +01:00
Vladimir Komendantskiy 6eea0d443e migrated channel storage to within the message delivery struct 2018-04-05 17:10:08 +01:00
Vladimir Komendantskiy 4cb80ee789 Introduced a local message delivery system as a solution to message broadcasts. 2018-04-05 13:09:46 +01:00
Vladimir Komendantskiy 6b90917f79 removed deadlock in CommsTask::run between the socket reader and writer 2018-04-04 13:49:37 +01:00
Vladimir Komendantskiy ef2ec016e4 node indexing fixes and more logging to debug messaging issues 2018-04-04 12:18:57 +01:00
Vladimir Komendantskiy 37620874ee fixed the operation of sending the Merkle tree proofs to each of N nodes 2018-04-03 23:08:26 +01:00
Vladimir Komendantskiy be605b9430 added channels to each of the comms threads to send proofs to remote nodes 2018-04-03 12:53:59 +01:00
Vladimir Komendantskiy 186a855d2f replaced lockable scoped channel variables with lock-free ones 2018-04-02 21:26:40 +01:00
Vladimir Komendantskiy e01a80dfa7 introduced a Connection struct and a procedure to start the network 2018-04-01 22:29:12 +01:00
Vladimir Komendantskiy 264b72011c added example of intended use of Node and a draft of value encryption 2018-03-27 21:59:38 +01:00
Vladimir Komendantskiy 1cdec3c39b broadcast algorithm drafted up to tree interpolation 2018-03-22 22:47:44 +00:00
Vladimir Komendantskiy fc475004f0 lifted the static requirement for messages by using scoped threads 2018-03-20 16:32:19 +00:00
Vladimir Komendantskiy c38aad2c0a Refactored the comms from the consensus node module
I reduced the socket IO tasks to mere message forwarders. The algorithm
complexity lies in stage modules. Example: broadcast/mod.rs. Communication is
set up and modules are run from the node module.

There is a problem with this commit. std:🧵:spawn imposes a static
lifetime guarantee on type T in Message<T>.
2018-03-19 17:12:20 +00:00
Vladimir Komendantskiy 797f775008 solved the problem with receiver side of a comms channel located inside an OS thread 2018-03-17 00:36:32 +00:00
Vladimir Komendantskiy 4353b1bb3e added shared state of the broadcast stage to the main consensus node loop 2018-03-16 21:04:06 +00:00
Vladimir Komendantskiy 86e133d2b4 added a broadcast stage struct and drafted messaging between broadcast tasks 2018-03-16 18:12:14 +00:00