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
Vladimir Komendantskiy
c4069bcdd8
added .gitignore
2018-03-15 10:16:12 +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