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
Vladimir Komendantskiy
468cf90076
transitioning broadcast stage to broadcast instance, i.e. simplifying for a single root hash
2018-03-28 23:38:02 +01:00