Commit Graph

  • 24b107bdf7 Create the beginning of the wallet library. (#36) Laurent Meunier 2017-04-29 22:58:26 +02:00
  • a3a06951ff Integrated clap for a better command line Ignotus Peverell 2017-04-27 22:07:25 -07:00
  • 1b78a73328 Variety of small p2p fixes to block sync Ignotus Peverell 2017-04-27 22:05:12 -07:00
  • a7089d1975 Fixes for chain processing during bootstrap Ignotus Peverell 2017-04-27 21:59:53 -07:00
  • 2d793639b5 Move main binary to a grin command line Ignotus Peverell 2017-04-27 20:39:32 -07:00
  • f18aeb3024 Start of a binary file for the grin node Ignotus Peverell 2017-04-24 18:55:01 -07:00
  • 96ea9a7d9f Minor fixes and URL for web static file seeds Ignotus Peverell 2017-04-24 18:53:42 -07:00
  • 3fe28b0f03 Server types cleanup and serde for configuration types Ignotus Peverell 2017-04-24 18:49:57 -07:00
  • a37e2b99fb Trivial formatting fixes Ignotus Peverell 2017-04-24 18:47:36 -07:00
  • e4ca924b47 Various comment and dead wood cleanup Ignotus Peverell 2017-04-20 11:30:17 -07:00
  • 4e36c63cbb Save outputs under their own keys Ignotus Peverell 2017-04-20 11:26:53 -07:00
  • ca496ee101 secp256k1zkp: Fix several warnings from implicitly declared function 'memcpy' (#42) greybeard355113 2017-04-15 18:38:51 -05:00
  • 5886d551c2 Fix error[E0243]: wrong number of type arguments (#41) Robert White (Vix) 2017-04-16 00:36:42 +01:00
  • e71ae27f77 Invert inputs and outputs commitment sums. Fixes #37. Ignotus Peverell 2017-04-10 00:26:54 -07:00
  • 39ddeb0a2a core: various cleanups, improvements, code comments (#38) Merope Riddle 2017-04-10 06:17:23 +00:00
  • 9e82fb1774 Replace AsFixedBytes with Sized + AsRef<[u8]> (#35) Jacob Payne 2017-04-06 22:54:54 -07:00
  • 382754e54c Add workspace support for all crates Ignotus Peverell 2017-04-05 23:41:49 -07:00
  • f16c4ac59b Fix for hyper interface change Ignotus Peverell 2017-04-05 23:28:53 -07:00
  • 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
  • ca04327922 Reintroducing Rust beta channel testing. Ignotus Peverell 2017-02-18 19:05:18 -08:00
  • c0e635071c Fixed p2p tests. Ignotus Peverell 2017-02-18 18:56:07 -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
  • 1c2b70f78f Lower cuckoo graph size for test. Ignotus Peverell 2017-02-07 15:12:35 -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
  • 21eb690840 Ignore log initialization failure. Ignotus Peverell 2017-01-10 11:24:14 -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
  • dc33ebcf39 Network block broadcasting. Ignotus Peverell 2016-12-20 17:33:20 -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
  • 1042aba65d Badges. Ignotus Peverell 2016-12-15 16:46:16 -08:00
  • 8936e93482 Trying travis without sudo option. Ignotus Peverell 2016-12-15 16:37:02 -08:00
  • 959474dc12 Different way to get rustdb build work with Travis. Ignotus Peverell 2016-12-15 16:24:30 -08:00
  • 32eaac3aa7 Updated GCC version for Travis to build RocksDB. Ignotus Peverell 2016-12-15 16:18:03 -08:00
  • d6aedc0922 Typo in travis yml Ignotus Peverell 2016-12-15 16:11:47 -08:00
  • 6536be19fe Fixed travis config. Ignotus Peverell 2016-12-15 15:52:47 -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
  • 8a255c0218 Formatting. Ignotus Peverell 2016-12-13 19:21:49 -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
  • 4d7bc2269b Fixed retargeting tests for truncation. Ignotus Peverell 2016-11-30 11:15:49 -08:00
  • ea1820cff7 Fixed usages of block constructor. Ignotus Peverell 2016-11-30 11:15:23 -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
  • 2e361fb2a4 Cleaned spurious debug. Ignotus Peverell 2016-11-29 18:47:00 -08:00
  • 11b8a6222a Any size pow accesible to tests. Ignotus Peverell 2016-11-29 18:46:28 -08:00
  • 08f2f38098 Configurable path for chain db. Lowered test cuckoo size. Ignotus Peverell 2016-11-29 18:45:39 -08:00
  • d11c85dae1 Fixed missing previous in block header. Ignotus Peverell 2016-11-29 18:42:43 -08:00
  • 3aeacf647b Module grin is better as a lib to be testable. Will introduce a slim binary module later. Ignotus Peverell 2016-11-29 18:41:00 -08:00
  • 5a82acd199 fmt Ignotus Peverell 2016-11-27 13:14:41 -08:00
  • 9795d9e452 Miner facility, using the current chain state to build on top of. Ignotus Peverell 2016-11-27 12:31:15 -08:00