Commit Graph

67 Commits

Author SHA1 Message Date
Vladimir Komendantskiy 329adc3c2b ported sharding and sending out Merkle tree proofs 2018-04-27 13:19:39 +01:00
Vladimir Komendantskiy 3ae0984733 fixed a potential RwLock panic in the Common Subset handler 2018-04-26 18:49:57 +01:00
Vladimir Komendantskiy eef846550f added the ACS algorithm with one clause not ready yet 2018-04-26 14:22:18 +01:00
Vladimir Komendantskiy 17678da06d separated the handler of remote broadcast messages into a fn for slightly better readability 2018-04-25 21:26:10 +01:00
Vladimir Komendantskiy db06e75d4e broadcast READY message handler ported from the older version 2018-04-25 21:00:22 +01:00
Vladimir Komendantskiy 8cd1f4748d broadcast ECHO message handler and mutable access solution for writeable state of broadcast 2018-04-25 20:41:46 +01:00
Vladimir Komendantskiy c7020e7b6a broadcast VALUE remote message handler written 2018-04-25 14:07:16 +01:00
Vladimir Komendantskiy 5428d928cc added receiver threads for remote nodes in the broadcast test 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 93617f797d removed unnecessary mutability requirements 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 08ff34c2a7 removed the algo error type, replacing it with type constraints and drafted adding handlers to a test node 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 92d8c0d71a fold was not using the variable capturing the sequential data; I fixed that 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 36cb880186 introduced a message handler trait and corrected the type of message handler container 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 629c54494c added send_remote for sending a queue of messages to remote nodes through channels 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy b5e47d9a4f wrote essentials of the message loop and updated the message queue with required handles 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 875f3cecbe updated the message loop state adding messages queued for sending to remote nodes 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy f801f0c1b0 test prototype of a message loop implementation 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 7b82228b57 basic types for message passing between algorithms 2018-04-25 10:59:46 +01:00
Vladimir Komendantskiy 27e5ee679e Internal messaging was being stopped before broadcast threads finished. Corrected that. 2018-04-20 09:42:15 +01:00
Vladimir Komendantskiy 7997e6e674 added a compile-time check for protoc in PATH 2018-04-18 21:23:39 +01:00
Vladimir Komendantskiy b1cc8aee15 removed unused test module and refactored handling of Result using combinators 2018-04-16 15:17:36 +01:00
Vladimir Komendantskiy cdd86cbd6a added error handling in the local messaging task, so that channel errors don't cause a panic 2018-04-16 14:03:32 +01:00
Andreas Fackler 0494b4925d fixed value encoding, shortened debug messages
This adds a length byte to the values before padding with 0, so that we
can omit the padding at the end again. Shards are not converted to the
type parameter `T` anymore, because they are not necessarily valid
representations of a `T` value, e.g. valid UTF-8, as in the tests.

It also shortens some debug messages by printing byte arrays as
hexadecimal, and eliding some bytes.
2018-04-14 12:27:17 +02:00
Andreas Fackler fc3e502c5a fixed test build 2018-04-14 10:40:06 +02:00
Vladimir Komendantskiy 13081f75ee simple update in TestNode::run allowing to change the number of nodes in the pool 2018-04-13 18:49:49 +01:00
Vladimir Komendantskiy d9bc81fe5f integration test of broadcast mostly ready; there is a thread termination issue however 2018-04-13 18:28:41 +01:00
Vladimir Komendantskiy efdb4467c5 added broadcast integration test concept 2018-04-12 17:17:33 +01:00
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 1105d15995 created an abstract interface to streaming serialised IO 2018-04-11 13:21:50 +01:00
Vladimir Komendantskiy fda6b04ab5 removed unnecessary vector cloning 2018-04-09 14:25:12 +01:00
Vladimir Komendantskiy 4a68365101 added the local message delivery system module 2018-04-09 14:06:30 +01:00
Vladimir Komendantskiy e0a24761aa corrected the calculation of the size of data shard padding 2018-04-06 19:31:20 +01:00
Vladimir Komendantskiy f620c7b000 broadcast instance now counts all Ready messages and doesn't derive node's hash from them 2018-04-06 18:42:04 +01:00
Vladimir Komendantskiy 99ff3c4863 introduced error forwarding in the broadcast module for IO operations 2018-04-06 17:39:15 +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 fdb41d393f renamed Task -> CodecIo and added debug logging for root hashes 2018-04-06 16:04:28 +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 6cbfbace1c using the select_loop macro instead of explicit Select application 2018-04-04 12:49:11 +01:00
Vladimir Komendantskiy bad5fd47a7 select_loop macro is in fact not visible; fixed that temporarily 2018-04-04 12:20:32 +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 9554c3c543 added GNU license and removed obsolete comments 2018-04-01 21:41:49 +01:00
Vladimir Komendantskiy 4e9c8f0e36 corrected broadcast instance return value 2018-03-29 18:19:41 +01:00
Vladimir Komendantskiy d8c57280d3 decoder of broadcast value from Merkle tree leaves 2018-03-29 17:23:02 +01:00