Commit Graph

489 Commits

Author SHA1 Message Date
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
Vladimir Komendantskiy eb3bbbdd4f
Merge pull request #1 from yrashk/remove-autogenerated-message.rs
Problem: proto::message is checked into the repo
2018-03-28 14:52:34 +01:00
Vladimir Komendantskiy 103e7c612d
Merge branch 'master' into remove-autogenerated-message.rs 2018-03-28 14:52:13 +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 e8cde28f93 from_proto and into_proto methods now allow writing up the broadcast stage 2018-03-15 18:00:17 +00:00
Yurii Rashkovskii 8b652fd1c4
Problem: proto::message is checked into the repo
However, it is generated during build-time and therefor is
unnecessary to be kept around in the repository.

There are two potential solutions for this problem:

1. Don't generate it build-time and use a checked-in version
2. Don't check it in.

Solution: don't check it in

The reason why I picked this solution is because it is, generally
speaking, less error-prone as it prevents "I forgot to regenerate
files" type of situations.
2018-03-15 10:49:51 +07:00
Vladimir Komendantskiy 5301123872 initial commit: elements of profobuf interface 2018-03-15 00:03:21 +00:00