Commit graph

162 commits

Author SHA1 Message Date
Ignotus Peverell
8dac7580c6
Minor typos. 2017-01-02 14:56:58 -08:00
Ignotus Peverell
167f166f21
First pass at documenting syncing algorithms when a new node joins the network. 2017-01-02 14:51:07 -08:00
Ignotus Peverell
ce23dda6cb
Block headers maintain total difficulty up to previous. Changed all references of target to difficulty to stay consistent. Ported retargeting algo to use difficulty as well. 2016-12-26 15:39:31 -08:00
Ignotus Peverell
0cc786a1e5
Refactored server to share the same struct whether futures are exposed or not. Multi-server test now properly waits for a block instead of a timer. 2016-12-23 12:15:36 -08:00
Ignotus Peverell
f067e18644
Adapters between the chain and the network for block broadcast. First working test that spins up 5 servers, connects them all together, mine a block on one and watch it getting added to all the other servers chains. Some improvements still needed to automate the test properly. 2016-12-20 17:39:02 -08:00
Ignotus Peverell
17104977de
Several bug fixes to the miner loop. Now builds the block properly and updates the shared head state. 2016-12-20 17:36:48 -08:00
Ignotus Peverell
57eb7ad0a9
A few more basic block checks in the chain pipeline. Added a chain adapter trait that's notified when a block is accepted. 2016-12-20 17:35:04 -08:00
Ignotus Peverell
dc33ebcf39
Network block broadcasting. 2016-12-20 17:33:20 -08:00
Ignotus Peverell
c1340223de
Minor API change to PoW verify, to use the size provided by the block header by default. 2016-12-20 17:32:19 -08:00
Ignotus Peverell
0702ab1829
Utility crate for things that don't fit anywhere else. Helper struct to emcapsulate one time initializations with a RefCell of an Option. 2016-12-20 17:29:35 -08:00
Ignotus Peverell
e688ff99e6
Started putting in place the adapter between the chain and p2p modules to forward blocks and transactions. Cleaned up chain store references. 2016-12-18 15:51:54 -08:00
GarrickOllivander
2e6d3d9fdb Safer serialization of base types (#18)
* use MESSAGE_SIZE constant instead of 32
* use Hashed trait in genesis
* safer serialization of Hash
* Hashed of [u8] should send only data to hash function, not length + data
* Safer serialization of Proof
* Safer serialization of Commitment
* Safer serialization of RangeProof
* introduce read_limited_vec instead of potential panic in conversion
2016-12-17 13:44:14 -08:00
Ignotus Peverell
9b5125c553
Required sudo in travis config to build rocksdb. 2016-12-15 17:02:27 -08:00
Ignotus Peverell
1042aba65d
Badges. 2016-12-15 16:46:16 -08:00
Ignotus Peverell
8936e93482
Trying travis without sudo option. 2016-12-15 16:37:02 -08:00
Ignotus Peverell
959474dc12
Different way to get rustdb build work with Travis. 2016-12-15 16:24:30 -08:00
Ignotus Peverell
32eaac3aa7
Updated GCC version for Travis to build RocksDB. 2016-12-15 16:18:03 -08:00
Ignotus Peverell
d6aedc0922
Typo in travis yml 2016-12-15 16:11:47 -08:00
Ignotus Peverell
6536be19fe
Fixed travis config. 2016-12-15 15:52:47 -08:00
Ignotus Peverell
144b316a4b
First pass at a Travis CI config. 2016-12-15 15:44:52 -08:00
Ignotus Peverell
bc61c5dae7
Read block and transaction messages and forward to the adapter. 2016-12-15 14:57:04 -08:00
Ignotus Peverell
d395b3d128
Added another server implementation for when the client needs to stay in control of the event loop (i.e. multiple servers for tests). Test to spin up 5 servers and connect them all together. 2016-12-14 16:10:39 -08:00
Ignotus Peverell
8a255c0218
Formatting. 2016-12-13 19:21:49 -08:00
Ignotus Peverell
19a700b81e
Minor fixes, testing server peer count. 2016-12-13 16:05:24 -08:00
Ignotus Peverell
7bea7341ab
Various cleanup and reorganization. 2016-12-11 13:04:52 -08:00
Ignotus Peverell
4b5c010b05
Rewrote most of p2p code to use futures-rs instead of mioco. Need some cleanup and support for a few more message types. 2016-12-10 19:11:49 -08:00
Ignotus Peverell
9ea3389aea
Added reference to the mailing list. 2016-12-08 10:22:06 -08:00
Ignotus Peverell
eb56d40807
Removed limit on number of inputs or outputs in blocks and transactions. For DoS protection only a total message size needs to be enforced by the p2p layer. 2016-12-07 18:54:28 -08:00
Ignotus Peverell
2e860d04cf
Clarifying comment for rejection of blocks too far in future. 2016-11-30 16:26:04 -08:00
Ignotus Peverell
4d7bc2269b
Fixed retargeting tests for truncation. 2016-11-30 11:15:49 -08:00
Ignotus Peverell
ea1820cff7
Fixed usages of block constructor. 2016-11-30 11:15:23 -08:00
Ignotus Peverell
715cc44d93
Use proper target when mining in test. 2016-11-29 20:07:08 -08:00
Ignotus Peverell
55f5771a2a
Avoid unecessary move of the previous block header to build a block. 2016-11-29 20:05:35 -08:00
Ignotus Peverell
2e52b13c35
Date format uses year since 1900. 2016-11-29 20:04:13 -08:00
Ignotus Peverell
1ab9001338
Target needs to be truncated after next target calculation, given that serialization in the block header does it anyway. 2016-11-29 20:03:43 -08:00
Ignotus Peverell
0c52665f17
Server abstraction aggregating underlying modules (p2p, chain, etc.). Beginning of a test to start multiple servers, connect them and mine. 2016-11-29 18:51:36 -08:00
Ignotus Peverell
309cb497f8
Configurable host and port for p2p server. Utility for client connection. 2016-11-29 18:49:03 -08:00
Ignotus Peverell
2e361fb2a4
Cleaned spurious debug. 2016-11-29 18:47:00 -08:00
Ignotus Peverell
11b8a6222a
Any size pow accesible to tests. 2016-11-29 18:46:28 -08:00
Ignotus Peverell
08f2f38098
Configurable path for chain db. Lowered test cuckoo size. 2016-11-29 18:45:39 -08:00
Ignotus Peverell
d11c85dae1
Fixed missing previous in block header. 2016-11-29 18:42:43 -08:00
Ignotus Peverell
3aeacf647b
Module grin is better as a lib to be testable. Will introduce a slim binary module later. 2016-11-29 18:41:00 -08:00
Ignotus Peverell
5a82acd199
fmt 2016-11-27 13:14:41 -08:00
Ignotus Peverell
9795d9e452
Miner facility, using the current chain state to build on top of. 2016-11-27 12:31:15 -08:00
Ignotus Peverell
1e5ff0eeff
Integration of target calculation with header validation and pow. Enforce strictly progessing time. 2016-11-16 17:03:23 -08:00
Ignotus Peverell
ca26f0c3f7
Block header needs its own deserialization. Fixed pow verify to use the block target. 2016-11-16 14:08:46 -08:00
Ignotus Peverell
1d2b23a4a5
Several simple fixes to reflect changes from core (Result instead of Option for errors, consensus module, etc.) 2016-11-15 17:29:42 -08:00
Ignotus Peverell
3c5e2b2958
Block now uses the new Target type. Consensus next_target calculation adjusting every block based on deviation and increasing Cuckoo size gradually. Block time of a minute until we learn more from mining ecosystem, so enough PoW attempts can be made even on CPUs. 2016-11-15 14:41:16 -08:00
Ignotus Peverell
44545525f4
Target addition and subtraction. A little more doc. 2016-11-15 14:41:16 -08:00
Ignotus Peverell
3a54df15f3 Merge pull request #17 from romanz/patch-1
Fix a small typo in documentation
2016-11-14 11:41:27 -08:00