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
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
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
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
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
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
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
Vladimir Komendantskiy
182c6e65f5
made the sharding step a function to reduce the size of inner_run
2018-03-28 14:51:58 +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
cd98cd3bab
added draft responses to Ready messages, started tree interpolation
2018-03-23 22:54:40 +00: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
Vladimir Komendantskiy
cb4c55a5c5
Task is refactored to provide a stream of messages
2018-03-15 23:43:58 +00:00
Vladimir Komendantskiy
5301123872
initial commit: elements of profobuf interface
2018-03-15 00:03:21 +00:00