afb219ce5c
Hashed impl only needed for empty arrays.
Ignotus Peverell
2017-04-03 18:10:55 -07:00
fd26ec9753
Fix Hyper URL to URI ref
Ignotus Peverell
2017-03-23 18:04:49 -07:00
38d5d67e79
Add features bitmask to Block, Output, Kernel; coinbase validation
Ignotus Peverell
2017-03-23 17:06:00 -07:00
a57c4e8f04
Replace IRC with Gitter
Ignotus Peverell
2017-03-23 17:04:00 -07:00
f9f69dea25
Small tweaks to intro doc following John Tromp's review
Ignotus Peverell
2017-03-21 14:05:10 -07:00
cc63c17f39
Link introduction doc in README.
Ignotus Peverell
2017-03-21 11:18:09 -07:00
b6b815f6c1
Reintroduce block tests with new tx building
Ignotus Peverell
2017-03-20 14:32:11 -07:00
6bd3fc0d48
Cleanup of Transaction and Block data structures
Ignotus Peverell
2017-03-20 14:07:00 -07:00
95592d6624
Introduction to MimbleWimble and Grin
Ignotus Peverell
2017-03-20 09:57:54 -07:00
cb84f588fb
Small tweaks and addition to a Transaction to make 2-parts building easier. Unit test covering the standard exchange between 2 parties when building a transaction.
Ignotus Peverell
2017-03-11 13:48:33 -08:00
f64d20749f
Framework to define services as RESTful HTTP API services. Serde implementations for some core types.
Ignotus Peverell
2017-03-07 17:00:34 -08:00
d900f0b934
P2P server cleanup of disconnected peers. Mark those that don't respect the protocol as banned.
Ignotus Peverell
2017-02-27 14:17:53 -08:00
7c72ccec7c
Cleaned up error handling in p2p module. Setting peer status on disconnect.
Ignotus Peverell
2017-02-26 20:08:40 -08:00
78b223b4f0
Forgot to update seed address as well.
Ignotus Peverell
2017-02-19 11:08:57 -08:00
eb024e91d2
Discovery and seeding of other peers. Relies either on a gist with IP addresses or a static list. Connects to a first list, sending peer request messages to discover more. Monitor the server to make sure there's always enough peer connections.
Ignotus Peverell
2017-02-18 18:42:34 -08:00
510feadce6
Minor compilation errors due to moving store Error.
Ignotus Peverell
2017-02-10 11:02:21 -08:00
786da24653
A db store for peer data.
Ignotus Peverell
2017-02-09 20:16:34 -08:00
85edf57366
Iterator for Readable impls stored in DB.
Ignotus Peverell
2017-02-09 20:15:22 -08:00
7ee408e067
Moved down to the store module some common persistence code.
Ignotus Peverell
2017-02-09 11:41:46 -08:00
4af049a887
Added full node sync mode. Follows closely the bitcoin header-first sync. Related p2p messages and protocol.
Ignotus Peverell
2017-02-07 13:52:17 -08:00
f6114231ae
Added support for a header chain, in addition to the main chain. Main chain must strictly follow header chain but header chain is allowed to be ahead (for sync).
Ignotus Peverell
2017-02-07 13:50:01 -08:00
45b134ab30
PoW only ever needs the block header, full block unnecessary.
Ignotus Peverell
2017-02-07 13:48:11 -08:00
dde54beb3f
Hash needs to be writeable for network serialization.
Ignotus Peverell
2017-02-06 12:08:35 -08:00
426f4e9d6b
Added support for batched writes. Updated to rocksdb 0.6.0.
Ignotus Peverell
2017-02-04 11:10:07 -08:00
2d81abc16c
Added height as part of handshake to inform syncing.
Ignotus Peverell
2017-02-02 15:51:48 -08:00
7f029cb4c0
Added a Connection wrapper to handle timeouts when we want information from a peer in a request/response style.
Ignotus Peverell
2017-02-01 19:05:17 -08:00
572c1951e1
Introduced a higher-level connection abstraction, allowing the protocol to stay relatively simple. Deals with the lower level details of sending, receiving data, timeouts and dealing with futures.
Ignotus Peverell
2017-01-29 15:52:01 -08:00
dab3727159
minor typo fix (#32)
greole
2017-01-28 04:17:28 +01:00
4a034018cb
Block inputs and ouputs Merkle tree validation.
Ignotus Peverell
2017-01-25 11:44:37 -08:00
fc2697e7d8
When the cuckoo size is reduced for tests, pow needs to be recomputed for the genesis block.
Ignotus Peverell
2017-01-23 14:34:02 -08:00
18043cf94d
Rust beta seems to have a perf regression, disabling for now.
Ignotus Peverell
2017-01-10 13:41:50 -08:00
cc9690ee8c
Test for chain forks and head switching.
Ignotus Peverell
2017-01-09 20:30:02 -08:00
dda223f25b
Chain logic to support multiple forks, select the most worked fork as the head. Significantly simplified from the original direction as it doesn't seem that explicitly materializing forks is necessary. Simple total difficulty accounting in block headers helping a lot there.
Ignotus Peverell
2017-01-09 15:16:44 -08:00
85e3255ee4
Removed need for a PowHeader. Directly checking serialization mode in block header serialization instead.
Ignotus Peverell
2017-01-09 12:07:38 -08:00
8dac7580c6
Minor typos.
Ignotus Peverell
2017-01-02 14:56:58 -08:00
167f166f21
First pass at documenting syncing algorithms when a new node joins the network.
Ignotus Peverell
2017-01-02 14:51:07 -08:00
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.
Ignotus Peverell
2016-12-26 15:39:31 -08:00
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.
Ignotus Peverell
2016-12-23 12:15:36 -08:00
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.
Ignotus Peverell
2016-12-20 17:39:02 -08:00
17104977de
Several bug fixes to the miner loop. Now builds the block properly and updates the shared head state.
Ignotus Peverell
2016-12-20 17:36:48 -08:00
57eb7ad0a9
A few more basic block checks in the chain pipeline. Added a chain adapter trait that's notified when a block is accepted.
Ignotus Peverell
2016-12-20 17:35:04 -08:00
c1340223de
Minor API change to PoW verify, to use the size provided by the block header by default.
Ignotus Peverell
2016-12-20 17:32:19 -08:00
0702ab1829
Utility crate for things that don't fit anywhere else. Helper struct to emcapsulate one time initializations with a RefCell of an Option.
Ignotus Peverell
2016-12-20 17:29:35 -08:00
e688ff99e6
Started putting in place the adapter between the chain and p2p modules to forward blocks and transactions. Cleaned up chain store references.
Ignotus Peverell
2016-12-18 15:51:54 -08:00
2e6d3d9fdb
Safer serialization of base types (#18)
GarrickOllivander
2016-12-17 21:44:14 +00:00
9b5125c553
Required sudo in travis config to build rocksdb.
Ignotus Peverell
2016-12-15 17:02:27 -08:00
144b316a4b
First pass at a Travis CI config.
Ignotus Peverell
2016-12-15 15:44:52 -08:00
bc61c5dae7
Read block and transaction messages and forward to the adapter.
Ignotus Peverell
2016-12-15 14:57:04 -08:00
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.
Ignotus Peverell
2016-12-14 16:10:39 -08:00
19a700b81e
Minor fixes, testing server peer count.
Ignotus Peverell
2016-12-13 16:05:24 -08:00
7bea7341ab
Various cleanup and reorganization.
Ignotus Peverell
2016-12-11 13:04:52 -08:00
4b5c010b05
Rewrote most of p2p code to use futures-rs instead of mioco. Need some cleanup and support for a few more message types.
Ignotus Peverell
2016-12-10 19:11:49 -08:00
9ea3389aea
Added reference to the mailing list.
Ignotus Peverell
2016-12-08 10:22:06 -08:00
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.
Ignotus Peverell
2016-12-07 18:54:28 -08:00
2e860d04cf
Clarifying comment for rejection of blocks too far in future.
Ignotus Peverell
2016-11-30 16:26:04 -08:00
715cc44d93
Use proper target when mining in test.
Ignotus Peverell
2016-11-29 20:07:08 -08:00
55f5771a2a
Avoid unecessary move of the previous block header to build a block.
Ignotus Peverell
2016-11-29 20:05:35 -08:00
2e52b13c35
Date format uses year since 1900.
Ignotus Peverell
2016-11-29 20:04:13 -08:00
1ab9001338
Target needs to be truncated after next target calculation, given that serialization in the block header does it anyway.
Ignotus Peverell
2016-11-29 20:03:43 -08:00
0c52665f17
Server abstraction aggregating underlying modules (p2p, chain, etc.). Beginning of a test to start multiple servers, connect them and mine.
Ignotus Peverell
2016-11-29 18:51:36 -08:00
309cb497f8
Configurable host and port for p2p server. Utility for client connection.
Ignotus Peverell
2016-11-29 18:49:03 -08:00