{"push_id":3102426230,"size":3,"distinct_size":3,"ref":"refs/heads/peer_mngmt2","head":"6250c9858e64d068f7a7d70dc2d88c37cebc7c7e","before":"6a152a537c8b8b426129befb9de020e8da6c8a34","commits":[{"sha":"fc1f695e65ee80812bf1fddfe1972df8e7ee1f71","author":{"name":"willmeister","email":"c26d391b70bfaaf258c7c72ebe53cbf908e55d82@gmail.com"},"message":"Wire Sub-Protocol Capability Configuration (#689)\n\n- Allowing configuration of which subset of Capabilities we want to support\r\n- Making Hello.handle(...) ensure that there are common capabilities in order to recommend activation of a peer connection","distinct":true,"url":"https://api.github.com/repos/InoMurko/mana/commits/fc1f695e65ee80812bf1fddfe1972df8e7ee1f71"},{"sha":"070478ec29c405201d2736466e08c8100e39e019","author":{"name":"Geoff Hayes","email":"c3918f39022407dee6a0056ceca9b1aa80e8e4ce@compound.finance"},"message":"Add Warp Sync (#632)\n\nThis patch adds Warp Sync to Mana. Note: this is not fully stable yet, as there are a number of issues which can cause the sync to fail, but generally, the entire sync process is fully implemented in this patch. Sync works by returning the information about each block for the last several blocks, building a state tree from that, and then getting every single account state in chunks for the most recent block. After all of those are synced, you have the complete state going forward and can, in the background, sync the earlier parts of the chain.\r\n\r\n    We generally code up the following modules:\r\n\r\n    1. `ExWire.Sync` - GenServer responsible for warp and non-warp sync. This module contains the logic of how to communciate with remote peers and what to do in response to packets they send.\r\n    2. `ExWire.WarpQueue` - Generally contains the current state of a warp (and we persist it during a warp so we can pick up where we left off). Keeps track of which block and state chunks we've processed so far and which we need to process going forward.\r\n    3. `ExWire.WarpProcessor` - Keeps track of state and block chunks that haven't been processed and kicks off processing parallel. The parallel processing of state and block chunks is paramount to getting warp to run quickly.\r\n    4. `ExWire.WarpProcessor.PowProcess` - The actual logic of how to process the state and block chunks for a warp. We process transaction receipts, store things to our trie, etc.\r\n\r\n    The good news is: our processing is relatively fast. We process (after a lot of optimization) around 3,000 accounts per second, which means that Ropsten with 20MM accounts takes a little over an hour to warp (I believe it's 30-40 minutes on Parity for Ropsten). These are early promising results.\r\n\r\n    The bad news is: we don't always match on the state or block trie after completing a warp, so there's still work to do. I generally sync Ellaism sice it's small and easy to test with.\r\n\r\n    Also bad news: PoA chains in Parity have a different variety of warp messages, so we'll need to process them separately to support Kovan, etc.\r\n\r\n    Also bad news: Geth doesn't support warp, so we'll need to build fast sync, as well.\r\n\r\n    Finally, we didn't implement snapshotting ourselves, which we'll need to do to be a good warp peer.","distinct":true,"url":"https://api.github.com/repos/InoMurko/mana/commits/070478ec29c405201d2736466e08c8100e39e019"},{"sha":"6250c9858e64d068f7a7d70dc2d88c37cebc7c7e","author":{"name":"Ino Murko","email":"bd31f148b78be1d2257fb538c24dcc5a5f35ea64@outlook.com"},"message":"WIP - linking to connections and determening cause","distinct":true,"url":"https://api.github.com/repos/InoMurko/mana/commits/6250c9858e64d068f7a7d70dc2d88c37cebc7c7e"}]}
{"actor":{"display_login":"InoMurko"}}