Commit Graph

12 Commits

Author SHA1 Message Date
MoaningMyrtle 23fd07be60 WIP: Tracking Transaction Pool Implementation (#48)
* Beginning work on pool design doc
* Refining data structures; adding connect capability
* Fleshing out the connectivity paths for the tx pool
* Bringing tx pool and orphan set add logic up into parent TransactionPool
* Use output's commitment as identifier in graph structures
* Breaking a bunch of stuff to start migration to output commitment as id instead of hash
* Wrapping up updates to pool using commitment keys, dummy blockchain. Contains lots of cleanup on the internal flow.
* Beginning work on new block reconciliation
* WIP: Replacing monolithic pool cleanup with mark-and-sweep, which greatly simplifies the logic.
* Laying the groundwork for pool tests; test tx generator
* WIP: More elaborate test helpers; starting work on more elaborate block acceptance test.
* Need DummyUtxoSet to actually apply blocks now
* Using search_for_best_output to validate output status in test_basic_pool_add
* Enable modification of chain while under shared pool ownership. Cleanup pending
* WIP: Begining to untangle the TransactionPool impl from Pool and Orphans data structures
* Finishing refactoring of pool block reconciliaition; getting tests working again
* Add metrics for graph sizes; prereq to pool size throttling
* Remove redundant search_for_available_output from pool graph container
* Minimum viable block builder: return all fully rooted txs
* Tests for block building procedure
* Delegate duplicate output checking to check_duplicate_outputs
* Delegate orphan reference resolution to resolve_orphan_refs
2017-05-19 17:22:08 +02:00
dan-da 6122152003 Add some basic build instructions to help people get started (#50) 2017-05-03 13:56:03 -07:00
gabriel-syme 2787d4259a Typo in intro doc: two inputs and one output (#45)
* vi1 and vi2 as input values. (2 inputs)
* vo3 as output value. (1 outputs)
2017-04-30 20:00:40 -07:00
Simon Horne 94539c768e Typo in intro doc: when->which (#47) 2017-04-30 19:59:39 -07:00
Ignotus Peverell 38d5d67e79 Add features bitmask to Block, Output, Kernel; coinbase validation
Block, Output and Kernel now have bitmasks to hold supported
features and eventually versioning. Will make adding features and
updates easier and open the possibility of soft forks.

First added feature for Output and Kernel is the marking of coinbase
related ones. Allows the validation of the coinbase part of a block.
2017-03-23 17:06:00 -07:00
Ignotus Peverell f9f69dea25 Small tweaks to intro doc following John Tromp's review
* Various typo fixes and minor improvements.
* Switch from v*G + k*H to r*G + v*G as symbols to stay more consistent
with the rest of the litterature.
2017-03-21 14:05:10 -07:00
Ignotus Peverell 95592d6624 Introduction to MimbleWimble and Grin
Documentation aimed at a technical audience, just requiring some basic
knowledge of bitcoin, to explain how MimbleWimble works and how it's
applied in Grin.
2017-03-20 09:57:54 -07:00
Ignotus Peverell 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. 2017-01-09 15:16:44 -08:00
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 2e23c64448 Intro to pruning doc, just some facts and size data. 2016-11-08 09:50:13 -08:00
Merope Riddle 7b3095ac12 Add design document for Merkle tree structures 2016-11-07 17:58:54 +00:00