Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Tendermint implementation #145

Merged
merged 206 commits into from
Dec 3, 2022
Merged

Initial Tendermint implementation #145

merged 206 commits into from
Dec 3, 2022

Commits on Oct 3, 2022

  1. Machine without timeouts

    kayabaNerve committed Oct 3, 2022
    Configuration menu
    Copy the full SHA
    b56c884 View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2022

  1. Time code

    kayabaNerve committed Oct 13, 2022
    Configuration menu
    Copy the full SHA
    d081934 View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2022

  1. Configuration menu
    Copy the full SHA
    ccd4ef1 View commit details
    Browse the repository at this point in the history
  2. Delete the old paper doc

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    1237c41 View commit details
    Browse the repository at this point in the history
  3. Refactor out external parts to generics

    Also creates a dedicated file for the message log.
    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    a5f1dda View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f793212 View commit details
    Browse the repository at this point in the history
  5. Successfully compiling

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    77ba1c0 View commit details
    Browse the repository at this point in the history
  6. Calculate timeouts

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    079eee9 View commit details
    Browse the repository at this point in the history
  7. Fix test

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    3b2352b View commit details
    Browse the repository at this point in the history
  8. Finish timeouts

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    c53c15f View commit details
    Browse the repository at this point in the history
  9. Misc cleanup

    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    a0bc9dc View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    85962c0 View commit details
    Browse the repository at this point in the history
  11. Implement serialization via parity's scale codec

    Ideally, this would be generic. Unfortunately, the generic API serde 
    doesn't natively support borsh, nor SCALE, and while there is a serde 
    SCALE crate, it's old. While it may be complete, it's not worth working 
    with.
    
    While we could still grab bincode, and a variety of other formats, it 
    wasn't worth it to go custom and for Serai, we'll be using SCALE almost 
    everywhere anyways.
    kayabaNerve committed Oct 16, 2022
    Configuration menu
    Copy the full SHA
    987aa51 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    329a48c View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    1c71e25 View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2022

  1. Provide a dedicated signature in Precommit of just the block hash

    Greatly simplifies verifying when syncing.
    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    b993ff1 View commit details
    Browse the repository at this point in the history
  2. Dedicated Commit object

    Restores sig aggregation API.
    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    6155d12 View commit details
    Browse the repository at this point in the history
  3. Tidy README

    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    0501ff2 View commit details
    Browse the repository at this point in the history
  4. Document tendermint

    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    f28d412 View commit details
    Browse the repository at this point in the history
  5. Sign the ID directly instead of its SCALE encoding

    For a hash, which is fixed-size, these should be the same yet this helps 
    move past the dependency on SCALE. It also, for any type where the two 
    values are different, smooths integration.
    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    5724f52 View commit details
    Browse the repository at this point in the history
  6. Litany of bug fixes

    Also attempts to make the code more readable while updating/correcting 
    documentation.
    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    8b6eb11 View commit details
    Browse the repository at this point in the history
  7. Remove async recursion

    Greatly increases safety as well by ensuring only one message is 
    processed at once.
    kayabaNerve committed Oct 17, 2022
    Configuration menu
    Copy the full SHA
    6b56510 View commit details
    Browse the repository at this point in the history

Commits on Oct 20, 2022

  1. Correct timing issues

    1) Commit didn't include the round, leaving the clock in question.
    
    2) Machines started with a local time, instead of a proper start time.
    
    3) Machines immediately started the next block instead of waiting for 
    the block time.
    kayabaNerve committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    ff41e9f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    cc8284a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    3c6ea6e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9db42f7 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    975c9d7 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    eb59dd5 View commit details
    Browse the repository at this point in the history
  7. Properly use check_block

    kayabaNerve committed Oct 20, 2022
    Configuration menu
    Copy the full SHA
    49a26e5 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2806831 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2022

  1. Implement tendermint_machine::Block for Substrate Blocks

    Unfortunately, this immediately makes Tendermint machine capable of 
    deployment as  crate since it uses a git reference. In the future, a 
    Cargo.toml patch section for serai/substrate should be investigated. 
    This is being done regardless as it's the quickest way forward and this 
    is for Serai.
    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    5c46edb View commit details
    Browse the repository at this point in the history
  2. Dummy Weights

    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    2cf1573 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    56afb13 View commit details
    Browse the repository at this point in the history
  4. Move logic into TendermintImport itself

    Multiple traits exist to verify/handle blocks. I'm unsure exactly when 
    each will be called in the pipeline, so the easiest solution is to have 
    every step run every check.
    
    That would be extremely computationally expensive if we ran EVERY check, 
    yet we rely on Substrate for execution (and according checks), which are 
    limited to just the actual import function.
    
    Since we're calling this code from many places, it makes sense for it to 
    be consolidated under TendermintImport.
    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    bdd0b42 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    3b08633 View commit details
    Browse the repository at this point in the history
  6. Update consensus/lib.rs from PoW to Tendermint

    Not possible to be used as the previous consensus could. It will not
    produce blocks nor does it currenly even instantiate a machine. This is
    just he next step.
    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    c0432e1 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    976948e View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    fcb9148 View commit details
    Browse the repository at this point in the history
  9. Tendermint SelectChain

    This is incompatible with Substrate's expectations, yet should be valid 
    for ours
    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    123b8ad View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    b8bff65 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    f153235 View commit details
    Browse the repository at this point in the history
  12. Minor tweaks

    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    0a58d66 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    0218db0 View commit details
    Browse the repository at this point in the history
  14. Remove substrate/node lib.rs

    This shouldn't be used as a library AFAIK. While runtime should be, and 
    arguably should even be published, I have yet to see node in the same 
    way. Helps tighten API boundaries.
    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    802f873 View commit details
    Browse the repository at this point in the history
  15. Remove unused macro_use

    kayabaNerve committed Oct 21, 2022
    Configuration menu
    Copy the full SHA
    5019f4c View commit details
    Browse the repository at this point in the history

Commits on Oct 22, 2022

  1. Replace panicking todos with stubs and // TODO

    Enables progress.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    422f7e3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4bfc8d7 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    e8df74e View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    adfc9a5 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    bf5bdb8 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5e52817 View commit details
    Browse the repository at this point in the history
  7. Trigger block importing

    Doesn't wait for the response yet, which it needs to.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    8ed0f1f View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    193281e View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    39984bd View commit details
    Browse the repository at this point in the history
  10. Provide a way to create the machine

    The BasicQueue returned obscures the TendermintImport struct. 
    Accordingly, a Future scoped with access is returned upwards, which when 
    awaited will create the machine. This makes creating the machine 
    optional while maintaining scope boundaries.
    
    Is sufficient to create a 1-node net which produces and finalizes 
    blocks.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    9b0dca0 View commit details
    Browse the repository at this point in the history
  11. Don't import justifications multiple times

    Also don't broadcast blocks which were solely proposed.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    4206ed3 View commit details
    Browse the repository at this point in the history
  12. Correct justication import pipeline

    Removes JustificationImport as it should never be used.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    dee6993 View commit details
    Browse the repository at this point in the history
  13. Announce blocks

    By claiming File, they're not sent ovber the P2P network before they 
    have a justification, as desired. Unfortunately, they never were. This 
    works around that.
    kayabaNerve committed Oct 22, 2022
    Configuration menu
    Copy the full SHA
    8a682cd View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    e8e490d View commit details
    Browse the repository at this point in the history

Commits on Oct 24, 2022

  1. Configuration menu
    Copy the full SHA
    4859e8c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b6dddc4 View commit details
    Browse the repository at this point in the history
  3. Expand sanity checks

    Substrate doesn't expect nor officially support children with less work 
    than their parents. It's a trick used here. Accordingly, ensure the 
    trick's validity.
    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    78fa292 View commit details
    Browse the repository at this point in the history
  4. When resetting, use the end time of the round which was committed to

    The machine reset to the end time of the current round. For a delayed 
    network connection, a machine may move ahead in rounds and only later 
    realize a prior round succeeded. Despite acknowledging that round's 
    success, it would maintain its delay when moving to the next block, 
    bricking it.
    
    Done by tracking the end time for each round as they occur.
    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    b9c091c View commit details
    Browse the repository at this point in the history
  5. Move Commit from including the round to including the round's end_time

    The round was usable to build the current clock in an accumulated 
    fashion, relative to the previous round. The end time is the absolute 
    metric of it, which can be used to calculate the round number (with all 
    previous end times).
    
    Substrate now builds off the best block, not genesis, using the end time 
    included in the justification to start its machine in a synchronized 
    state.
    
    Knowing the end time of a round, or the round in which block was 
    committed to, is necessary for nodes to sync up with Tendermint. 
    Encoding it in the commit ensures it's long lasting and makes it readily 
    available, without the load of an entire transaction.
    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    a7f4804 View commit details
    Browse the repository at this point in the history
  6. Add a TODO on Tendermint

    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    b5cb8a9 View commit details
    Browse the repository at this point in the history
  7. Misc bug fixes

    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    05be5c1 View commit details
    Browse the repository at this point in the history
  8. More misc bug fixes

    kayabaNerve committed Oct 24, 2022
    Configuration menu
    Copy the full SHA
    9b8f2f4 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2022

  1. Clean up lock acquisition

    kayabaNerve committed Oct 25, 2022
    Configuration menu
    Copy the full SHA
    5839f44 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    285152b View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2022

  1. Configuration menu
    Copy the full SHA
    49ab262 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fa7a03b View commit details
    Browse the repository at this point in the history
  3. Update support URL

    kayabaNerve committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    eb41844 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    4c2dd9b View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    66f7663 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    5c08fa9 View commit details
    Browse the repository at this point in the history
  7. Fix the stub round robin

    At some point, the modulus was removed causing it to exceed the 
    validators list and stop proposing.
    kayabaNerve committed Oct 27, 2022
    Configuration menu
    Copy the full SHA
    f91c081 View commit details
    Browse the repository at this point in the history

Commits on Oct 29, 2022

  1. Configuration menu
    Copy the full SHA
    aec3637 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b17aac4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    c4c3dcd View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    a0c892d View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    f31c457 View commit details
    Browse the repository at this point in the history

Commits on Oct 30, 2022

  1. Basic Gossip Validator

    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    9a54317 View commit details
    Browse the repository at this point in the history
  2. Correct Substrate Tendermint start block

    The Tendermint machine uses the passed in number as the block's being 
    worked on number. Substrate passed in the already finalized block's 
    number.
    
    Also updates misc comments.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    8d3efd6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    6838d5c View commit details
    Browse the repository at this point in the history
  4. Remove the Future triggering the machine for an async fn

    Enables passing data in, such as the network.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    edb2e00 View commit details
    Browse the repository at this point in the history
  5. Move TendermintMachine from start_num, time to last_num, time

    Provides an explicitly clear API clearer to program around.
    
    Also adds additional time code to handle an edge case.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    1af6117 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    6c54289 View commit details
    Browse the repository at this point in the history
  7. Connect broadcast

    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    aee0bde View commit details
    Browse the repository at this point in the history
  8. Remove machine from TendermintImport

    It's not used there at all.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    f37adf4 View commit details
    Browse the repository at this point in the history
  9. Merge Verifier into block_import.rs

    These two files were largely the same, just hooking into sync structs 
    with almost identical imports. As this project shapes up, removing dead 
    weight is appreciated.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    066bc40 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    3d7c12a View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    a0e0545 View commit details
    Browse the repository at this point in the history
  12. Move serai_runtime specific code from tendermint/client to node

    Renames serai-consensus to sc_tendermint
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    91ae2b7 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    c005664 View commit details
    Browse the repository at this point in the history
  14. Replace best_* with finalized_*

    We test their equivalency yet still better to use finalized_* in 
    general.
    kayabaNerve committed Oct 30, 2022
    Configuration menu
    Copy the full SHA
    503adfe View commit details
    Browse the repository at this point in the history
  15. Configuration menu
    Copy the full SHA
    c4976ff View commit details
    Browse the repository at this point in the history
  16. Configuration menu
    Copy the full SHA
    8f06553 View commit details
    Browse the repository at this point in the history

Commits on Nov 1, 2022

  1. Configuration menu
    Copy the full SHA
    45a5d3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e38a7e0 View commit details
    Browse the repository at this point in the history
  3. Make sign asynchronous

    Some relation to #95.
    kayabaNerve committed Nov 1, 2022
    Configuration menu
    Copy the full SHA
    2947ef0 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    19154cf View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    aa0a4cf View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2022

  1. Configuration menu
    Copy the full SHA
    5832007 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9a26ac6 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    86aaada View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e3fc3f2 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    38cee04 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    ca043f5 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    2182b66 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    16065cc View commit details
    Browse the repository at this point in the history
  9. Add an already in chain check to block import

    While the inner should do this for us, we call verify_order on our end 
    *before* inner to ensure sequential import. Accordingly, we need to 
    provide our own check.
    
    Removes errors of "non-sequential import" when trying to re-import an 
    existing block.
    kayabaNerve committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    40b6cb7 View commit details
    Browse the repository at this point in the history
  10. Update the consensus documentation

    It was incredibly out of date.
    kayabaNerve committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    5cfe2d5 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    83caa8b View commit details
    Browse the repository at this point in the history
  12. Make the dev profile a local testnet profile

    Restores a dev profile which only has one validator, locally running.
    kayabaNerve committed Nov 2, 2022
    Configuration menu
    Copy the full SHA
    083198e View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2022

  1. Configuration menu
    Copy the full SHA
    f3e1771 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    2b503b6 View commit details
    Browse the repository at this point in the history
  3. Restore cache

    kayabaNerve committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    f4d622a View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    de0e672 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cf8bdf2 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    131355b View commit details
    Browse the repository at this point in the history
  7. Rename dev to devnet

    --dev still works thanks to the |. Acheieves a personal preference of 
    mine with some historical meaning.
    kayabaNerve committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    63df908 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    bd08cd3 View commit details
    Browse the repository at this point in the history
  9. Localize the LibP2P protocol to the blockchain

    Follows convention by doing so. Theoretically enables running multiple 
    blockchains over a single LibP2P connection.
    kayabaNerve committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    2315b3c View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    1ff51c1 View commit details
    Browse the repository at this point in the history
  11. Add missing trait

    kayabaNerve committed Nov 3, 2022
    Configuration menu
    Copy the full SHA
    ea646c8 View commit details
    Browse the repository at this point in the history

Commits on Nov 4, 2022

  1. Bump Substrate dependency

    Fixes #147.
    kayabaNerve committed Nov 4, 2022
    Configuration menu
    Copy the full SHA
    af63c3e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1a3b6dc View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    55e32e2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    c31a55c View commit details
    Browse the repository at this point in the history

Commits on Nov 8, 2022

  1. Configuration menu
    Copy the full SHA
    5dab335 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    16a2c9a View commit details
    Browse the repository at this point in the history

Commits on Nov 9, 2022

  1. Configuration menu
    Copy the full SHA
    56a21ca View commit details
    Browse the repository at this point in the history
  2. Timeout futures

    kayabaNerve committed Nov 9, 2022
    Configuration menu
    Copy the full SHA
    2cb1d35 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1c81922 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    f7b1ff9 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7d46daa View commit details
    Browse the repository at this point in the history

Commits on Nov 11, 2022

  1. Configuration menu
    Copy the full SHA
    6f74bad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c9334ee View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    0fb9d43 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    2411660 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fffb7a6 View commit details
    Browse the repository at this point in the history
  6. Add notes to the runtime

    kayabaNerve committed Nov 11, 2022
    Configuration menu
    Copy the full SHA
    354bcef View commit details
    Browse the repository at this point in the history
  7. Don't spam slash

    Also adds a slash condition of failing to propose.
    kayabaNerve committed Nov 11, 2022
    Configuration menu
    Copy the full SHA
    dbcddb2 View commit details
    Browse the repository at this point in the history
  8. Support running TendermintMachine when not a validator

    This supports validators who leave the current set, without crashing 
    their nodes, along with nodes trying to become validators (who will now 
    seamlessly transition in).
    kayabaNerve committed Nov 11, 2022
    Configuration menu
    Copy the full SHA
    43b43bd View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    32ad6de View commit details
    Browse the repository at this point in the history

Commits on Nov 12, 2022

  1. Correct the Duration timing

    The proposer will build it, send it, then process it (on the first 
    round). Accordingly, it's / 3, not / 2, as / 2 only accounted for the 
    latter events.
    kayabaNerve committed Nov 12, 2022
    Configuration menu
    Copy the full SHA
    ecde185 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ca3a29f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b53759c View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    e2e7a70 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    9e72f87 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    2f3bb88 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    b7b57ee View commit details
    Browse the repository at this point in the history
  8. Move Round to an Option due to the pseudo-uninitialized state we create

    Before the addition of RoundData, we always created the round, and on 
    .round(0), simply created it again. With RoundData, and the changes to 
    the time code, we used round 0, time 0, the latter being incorrect yet 
    not an issue due to lack of misuse.
    
    Now, if we do misuse it, it'll panic.
    kayabaNerve committed Nov 12, 2022
    Configuration menu
    Copy the full SHA
    8508783 View commit details
    Browse the repository at this point in the history
  9. Clear the Queue instead of draining and filtering

    There shouldn't ever be a message which passes the filter under the 
    current design.
    kayabaNerve committed Nov 12, 2022
    Configuration menu
    Copy the full SHA
    2de4ab8 View commit details
    Browse the repository at this point in the history
  10. BlockData::new

    kayabaNerve committed Nov 12, 2022
    Configuration menu
    Copy the full SHA
    4ba469e View commit details
    Browse the repository at this point in the history

Commits on Nov 13, 2022

  1. Move more code into block.rs

    Introduces type-aliases to obtain Data/Message/SignedMessage solely from 
    a Network object.
    
    Fixes a bug regarding stepping when you're not an active validator.
    kayabaNerve committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    c13e0c7 View commit details
    Browse the repository at this point in the history
  2. Have verify_precommit_signature return if it verified the signature

    Also fixes a bug where invalid precommit signatures were left standing 
    and therefore contributing to commits.
    kayabaNerve committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    b7502a7 View commit details
    Browse the repository at this point in the history
  3. Remove the precommit signature hash

    It cached signatures per-block. Precommit signatures are bound to each 
    round. This would lead to forming invalid commits when a commit should 
    be formed. Under debug, the machine would catch that and panic. On 
    release, it'd have everyone who wasn't a validator fail to continue 
    syncing.
    kayabaNerve committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    0b8181b View commit details
    Browse the repository at this point in the history
  4. Slight doc changes

    Also flattens the message handling function by replacing an if 
    containing all following code in the function with an early return for 
    the else case.
    kayabaNerve committed Nov 13, 2022
    Configuration menu
    Copy the full SHA
    48b4b68 View commit details
    Browse the repository at this point in the history

Commits on Nov 14, 2022

  1. Configuration menu
    Copy the full SHA
    33e52ae View commit details
    Browse the repository at this point in the history
  2. Correct weird formatting

    kayabaNerve committed Nov 14, 2022
    Configuration menu
    Copy the full SHA
    2408fd8 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    138866f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    8c51bc0 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    0490157 View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    457d11a View commit details
    Browse the repository at this point in the history
  7. Add a TODO comment to slash

    Enables searching for the case-sensitive phrase and finding it.
    kayabaNerve committed Nov 14, 2022
    Configuration menu
    Copy the full SHA
    7248a41 View commit details
    Browse the repository at this point in the history
  8. cargo fmt

    kayabaNerve committed Nov 14, 2022
    Configuration menu
    Copy the full SHA
    9dc8f5c View commit details
    Browse the repository at this point in the history
  9. Configuration menu
    Copy the full SHA
    707a177 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2022

  1. Remove panic on slash

    As we move towards protonet, this can happen (if a node goes offline), 
    yet it happening brings down the entire net right now.
    kayabaNerve committed Nov 15, 2022
    Configuration menu
    Copy the full SHA
    7d42c45 View commit details
    Browse the repository at this point in the history
  2. Add log::error on slash

    kayabaNerve committed Nov 15, 2022
    Configuration menu
    Copy the full SHA
    06c57a1 View commit details
    Browse the repository at this point in the history

Commits on Nov 16, 2022

  1. Configuration menu
    Copy the full SHA
    d2e0b58 View commit details
    Browse the repository at this point in the history

Commits on Nov 17, 2022

  1. Complete the sh scripts

    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    8c65e1b View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    426baca View commit details
    Browse the repository at this point in the history
  3. Correct block announcements

    They were announced, yet not marked best.
    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    1aefa3f View commit details
    Browse the repository at this point in the history
  4. Correct pupulate_end_time

    It was used as inclusive yet didn't work inclusively.
    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    14fc181 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    b077dc7 View commit details
    Browse the repository at this point in the history
  6. Use a looser check in import_future

    This triggered so it needs to be accordingly relaxed.
    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    82da7eb View commit details
    Browse the repository at this point in the history
  7. Correct race conditions between add_block and step

    Also corrects a <= to <.
    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    26ad7c1 View commit details
    Browse the repository at this point in the history
  8. Configuration menu
    Copy the full SHA
    2bbba63 View commit details
    Browse the repository at this point in the history
  9. Update cargo deny

    kayabaNerve committed Nov 17, 2022
    Configuration menu
    Copy the full SHA
    6e992a3 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    88aabde View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2022

  1. Update Cargo.lock

    kayabaNerve committed Nov 18, 2022
    Configuration menu
    Copy the full SHA
    c7e97d9 View commit details
    Browse the repository at this point in the history

Commits on Nov 20, 2022

  1. Configuration menu
    Copy the full SHA
    cbe79eb View commit details
    Browse the repository at this point in the history
  2. Correct typo

    kayabaNerve committed Nov 20, 2022
    Configuration menu
    Copy the full SHA
    10aac4a View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2022

  1. Document recheck

    kayabaNerve committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    9b51eaf View commit details
    Browse the repository at this point in the history
  2. Misc lints

    kayabaNerve committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    9dfa22d View commit details
    Browse the repository at this point in the history
  3. Fix prev commit

    kayabaNerve committed Nov 21, 2022
    Configuration menu
    Copy the full SHA
    bfe7546 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    991ba61 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    cd9b9c8 View commit details
    Browse the repository at this point in the history

Commits on Nov 22, 2022

  1. Configuration menu
    Copy the full SHA
    92760c0 View commit details
    Browse the repository at this point in the history

Commits on Nov 23, 2022

  1. Configuration menu
    Copy the full SHA
    9065dcc View commit details
    Browse the repository at this point in the history
  2. Prevent a commit from including the same signature multiple times

    Yanks tendermint-machine 0.1.0 accordingly.
    kayabaNerve committed Nov 23, 2022
    Configuration menu
    Copy the full SHA
    b042a2a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    14ce9ef View commit details
    Browse the repository at this point in the history

Commits on Nov 24, 2022

  1. Configuration menu
    Copy the full SHA
    69a9cae View commit details
    Browse the repository at this point in the history
  2. Improve documentation

    kayabaNerve committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    3d20afd View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1d45e03 View commit details
    Browse the repository at this point in the history
  4. Add log statements

    kayabaNerve committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    3212942 View commit details
    Browse the repository at this point in the history
  5. Pair more log statements

    kayabaNerve committed Nov 24, 2022
    Configuration menu
    Copy the full SHA
    849c358 View commit details
    Browse the repository at this point in the history

Commits on Nov 26, 2022

  1. Clean TendermintAuthority::authority as possible

    Merges it into new. It has way too many arguments, yet there's no clear path at
    consolidation there, unfortunately.
    
    Additionally provides better scoping within itself.
    kayabaNerve committed Nov 26, 2022
    Configuration menu
    Copy the full SHA
    d757924 View commit details
    Browse the repository at this point in the history
  2. Fix #158

    Doesn't use lock_import_and_run for reasons commented (lack of async).
    kayabaNerve committed Nov 26, 2022
    Configuration menu
    Copy the full SHA
    61b00b3 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2022

  1. Rename guard to lock

    kayabaNerve committed Nov 27, 2022
    Configuration menu
    Copy the full SHA
    8c2cbff View commit details
    Browse the repository at this point in the history

Commits on Nov 29, 2022

  1. Have the devnet use the current time as the genesis

    Possible since it's only a single node, not requiring synchronization.
    kayabaNerve committed Nov 29, 2022
    Configuration menu
    Copy the full SHA
    3ea8bec View commit details
    Browse the repository at this point in the history

Commits on Dec 2, 2022

  1. Fix gossiping

    I really don't know what side effect this avoids and I can't say I care at this
    point.
    kayabaNerve committed Dec 2, 2022
    Configuration menu
    Copy the full SHA
    3dea9e5 View commit details
    Browse the repository at this point in the history
  2. Misc lints

    kayabaNerve committed Dec 2, 2022
    Configuration menu
    Copy the full SHA
    e220163 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    dc4914f View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    d4e24fc View commit details
    Browse the repository at this point in the history