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

Implement the transaction pool #393

Draft
wants to merge 20 commits into
base: develop
Choose a base branch
from
Draft

Implement the transaction pool #393

wants to merge 20 commits into from

Conversation

sebastiencs
Copy link
Contributor

This is #255 rebased on #256

@sebastiencs sebastiencs force-pushed the tx-pool-2 branch 3 times, most recently from 33dc1d6 to 23f7f07 Compare May 16, 2024 14:18
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 3 times, most recently from c4f2f99 to 6abfbb7 Compare May 16, 2024 18:15
@sebastiencs sebastiencs force-pushed the tx-pool-2 branch 3 times, most recently from 2368eb2 to 7d60a12 Compare May 21, 2024 09:25
@Sventimir Sventimir force-pushed the tx-pool-2 branch 2 times, most recently from f7d9d75 to 7d4094b Compare May 24, 2024 12:06
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 2 times, most recently from 8134dd3 to 1404d69 Compare May 28, 2024 13:19
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 2 times, most recently from 1560dbb to 8796549 Compare May 30, 2024 14:17
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 2 times, most recently from 8f03ea6 to cfd7936 Compare June 5, 2024 15:41
@sebastiencs sebastiencs force-pushed the tx-pool-2 branch 2 times, most recently from 6de5960 to e528adc Compare June 12, 2024 16:46
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 2 times, most recently from d24652c to 817254f Compare June 17, 2024 17:43
@tizoc tizoc force-pushed the feat/reducer-dispatch branch 2 times, most recently from 203f387 to a581eea Compare June 20, 2024 14:08
Base automatically changed from feat/reducer-dispatch to develop June 21, 2024 01:49
@sebastiencs sebastiencs force-pushed the tx-pool-2 branch 6 times, most recently from b790fad to c703e46 Compare July 5, 2024 09:39
sebastiencs and others added 18 commits July 5, 2024 11:48
commit 13086f9
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Mon May 13 12:30:29 2024 +0200

    Squashed commit of the following:

    commit 8e88dcf
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu May 9 12:19:26 2024 +0200

        Remove `TransactionPoolLedgerService`

        Use `LedgerManager` directly

    commit df6cb14
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Mon May 6 13:38:07 2024 +0200

        Fix after rebase

    commit 4bca9b5
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Apr 16 14:38:49 2024 +0200

        Serialize `verifiable::UserCommand`

    commit c0bfa27
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Fri Apr 12 08:33:34 2024 +0200

        Fix after rebase

    commit 8027cd0
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Apr 11 13:22:25 2024 +0200

        Fix usage of `SnarkUserCommandVerifyService`

    commit dd0dd02
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Apr 11 11:49:43 2024 +0200

        Add `snark/user_command_verify` Service

        To check signatures and verify proofs contained in zkapps

    commit 44f2979
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Apr 2 13:09:44 2024 +0200

        Implement `TransactionPool::transactions`

    commit b8b6cbd
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Mar 28 11:12:17 2024 +0100

        Split other actions in 2 actions

        We need to fetch accounts first
        + Remove `best_tip_ledger` in `TransactionPool`

    commit fb236d6
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 27 17:38:04 2024 +0100

        Split `TransactionPoolAction::BestTipChanged` in 2 actions

        The first fetches accounts from the ledger service

    commit c7ac527
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Mar 26 11:40:31 2024 +0100

        Fix after rebase

    commit 196ce0f
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Mar 26 11:22:24 2024 +0100

        Integrate the pool in the state machine

    commit ac4ab8e
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Mar 21 11:13:53 2024 +0100

        Use shared pointer for `BlakeHash`

    commit d9d3725
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 20 18:09:11 2024 +0100

        Implement `TransactionPool::get_rebroadcastable`

    commit d2bc3aa
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 20 11:45:09 2024 +0100

        Add type `AccountIdOrderable` to make `AccountId` comparable

        `AccountId` could already be compared (using `Ord`/`PartialOrd`) but we had
        to re-compute the `BigInteger256` values every time
        `PartialOrd::partial_cmp` was called.
        This commit only make the comparaison (`Ord`/`PartialOrd`) faster.

        Remove `Ord` & `PartialOrd` implementation for `AccountId`.

    commit 8c8098e
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Mar 19 20:27:42 2024 +0100

        Fix new warning "reduntant import"

    commit 90369d3
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Mar 19 20:11:18 2024 +0100

        Fix after rebase

    commit 304f50b
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Sat Mar 9 21:41:13 2024 +0100

        Implement `ZkappCommand::valid_size`

    commit 2569c35
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Sat Mar 9 20:53:57 2024 +0100

        Make `group_by_zkapp_command_rev` generic, to use it in tx pool

    commit 2da771c
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Sat Mar 9 18:13:01 2024 +0100

        Implement `IndexedPool::revalidate`

    commit 9e057db
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Sat Mar 9 15:33:57 2024 +0100

        Implement rest of `add_from_gossip_exn`

        + Apply changes only when no errors occured

    commit 471dfa6
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Mar 7 18:07:00 2024 +0100

        Implement part of `IndexedPool::add_from_gossip_exn`

    commit 28ad681
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Mar 7 14:28:48 2024 +0100

        Implement `IndexedPool::add_from_backtrack`

    commit ed4a48f
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Thu Mar 7 11:47:02 2024 +0100

        Implement time-related types/methods for tx pool

    commit 7f8d318
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 6 19:47:26 2024 +0100

        wip

    commit fa1aedb
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 6 16:47:21 2024 +0100

        Compute weight of commands

    commit b1457cc
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Wed Mar 6 15:38:28 2024 +0100

        Verify commands in the tx pool

    commit d5dcba0
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Tue Mar 5 19:05:43 2024 +0100

        Implement new caching logic in `to_all_verifiable`

        See MinaProtocol/mina#14356

    commit 7d908d8
    Author: Sebastien Chapuis <sebastien@chapu.is>
    Date:   Sun Mar 3 17:15:47 2024 +0100

        Start implementation of the transaction pool

        Implement it outside of the state machine for now.
        We will integrate it later

    commit 07e64e3
    Merge: 50f1fec e423a19
    Author: Sventimir <svantimir@gmail.com>
    Date:   Thu May 9 11:49:07 2024 +0200

        Merge pull request #369 from openmina/feature/load-config-file

        Load deamon.json configuration

    commit e423a19
    Author: Sventimir <svantimir@gmail.com>
    Date:   Thu May 9 10:07:04 2024 +0200

        Add an option to start a node using custom config.

    commit dde485c
    Author: Sventimir <svantimir@gmail.com>
    Date:   Thu May 9 10:05:37 2024 +0200

        Add DaemonJson variant to GenesisConfig enum.

    commit a990037
    Author: Sventimir <svantimir@gmail.com>
    Date:   Thu May 9 10:02:39 2024 +0200

        Fix bug in currency parsing.

        When there was no decimal point, any number would parse as 0.

    commit 96b15ce
    Author: Sventimir <svantimir@gmail.com>
    Date:   Thu May 9 09:56:57 2024 +0200

        Add a parser for OCaml node's configuration files.

    commit 50f1fec
    Merge: 3cae110 49fbdb6
    Author: Zura Benashvili <zura.benashvili@gmail.com>
    Date:   Wed May 8 13:50:07 2024 +0400

        Merge pull request #388 from openmina/test/transition_frontier

        Fix block producer invalid delta_block_chain_proof

    commit 49fbdb6
    Author: Zura Benashvili <zura.benashvili@gmail.com>
    Date:   Wed May 8 13:48:10 2024 +0400

        fix(block_producer): invalid delta_block_chain_proof

    commit dfb954d
    Author: Zura Benashvili <zura.benashvili@gmail.com>
    Date:   Tue Apr 30 16:35:56 2024 +0400

        fix(consensus): incorrect handling of case when tip height <= k

    commit acce09c
    Author: Zura Benashvili <zura.benashvili@gmail.com>
    Date:   Tue Apr 30 16:32:12 2024 +0400

        fix(p2p/webrtc): outgoing connection not being initiated

    commit 3cae110
    Merge: 6e56d8a a409a69
    Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
    Date:   Tue May 7 12:25:38 2024 -0300

        Merge pull request #387 from openmina/fix/block-verify-supercharge-coinbase

        fix(ledger-service) Use `supercharge_coinbase` value from the block

    commit a409a69
    Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
    Date:   Tue May 7 12:06:42 2024 -0300

        Update CHANGELOG

    commit 52b5515
    Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
    Date:   Tue May 7 12:01:17 2024 -0300

        fix(ledger-service) Use `supercharge_coinbase` value from the block

        This used to fail before because the `supercharged_coinbase_factor` value
        in the constants used to be `2`, but now that the correct
        value `1` is used the issue is solved.

        re: #386

commit cfd7936
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Jun 3 14:28:36 2024 -0300

    todo: add TODO comment for removing limits clone

commit f256446
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Jun 3 14:25:22 2024 -0300

    chore(genesis_effectful): Fix import

commit 6f18ab7
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Jun 3 14:24:57 2024 -0300

    chore: Update action_kind.rs

commit 029dd9b
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Thu May 30 08:42:49 2024 -0300

    fixup: Clippy fixes

commit ad732a5
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Tue May 28 09:42:33 2024 -0300

    fixup: Update substate access to handle p2p readiness

commit c85f11f
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Sat May 4 11:06:34 2024 -0300

    feat(transition_frontier): transition frontier refactor WIP

commit b89b42a
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 20:45:47 2024 -0300

    feat(consensus): Add block verify failure case (unimplemented)

commit 48cc114
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 08:50:00 2024 -0300

    feat: Update watched-accounts, consensus, snark, snark pool, etc to use dispatchers and callbacks

commit dba6bc0
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 08:48:43 2024 -0300

    feat(p2p): Update reducer and testing code to use Substate

commit d6f12b3
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 08:47:57 2024 -0300

    feat(node): implement enabling conditions for all action levels

commit 48daaec
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 08:46:01 2024 -0300

    feat(p2p-testing): Update code for callbacks and dispatchers

commit 14c1459
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Mon Apr 29 08:42:10 2024 -0300

    feat(core): Add substate access support

commit 916d2da
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Sun Mar 3 20:06:26 2024 -0300

    feat: Change redux-rs dependency to version with queued dispatch support

    Add linkme dependency

    Add store and dispatcher parameters to top-most reducer
Squashed commit of the following:

commit 8e88dcf
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu May 9 12:19:26 2024 +0200

    Remove `TransactionPoolLedgerService`

    Use `LedgerManager` directly

commit df6cb14
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Mon May 6 13:38:07 2024 +0200

    Fix after rebase

commit 4bca9b5
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Apr 16 14:38:49 2024 +0200

    Serialize `verifiable::UserCommand`

commit c0bfa27
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Fri Apr 12 08:33:34 2024 +0200

    Fix after rebase

commit 8027cd0
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Apr 11 13:22:25 2024 +0200

    Fix usage of `SnarkUserCommandVerifyService`

commit dd0dd02
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Apr 11 11:49:43 2024 +0200

    Add `snark/user_command_verify` Service

    To check signatures and verify proofs contained in zkapps

commit 44f2979
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Apr 2 13:09:44 2024 +0200

    Implement `TransactionPool::transactions`

commit b8b6cbd
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Mar 28 11:12:17 2024 +0100

    Split other actions in 2 actions

    We need to fetch accounts first
    + Remove `best_tip_ledger` in `TransactionPool`

commit fb236d6
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 27 17:38:04 2024 +0100

    Split `TransactionPoolAction::BestTipChanged` in 2 actions

    The first fetches accounts from the ledger service

commit c7ac527
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Mar 26 11:40:31 2024 +0100

    Fix after rebase

commit 196ce0f
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Mar 26 11:22:24 2024 +0100

    Integrate the pool in the state machine

commit ac4ab8e
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Mar 21 11:13:53 2024 +0100

    Use shared pointer for `BlakeHash`

commit d9d3725
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 20 18:09:11 2024 +0100

    Implement `TransactionPool::get_rebroadcastable`

commit d2bc3aa
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 20 11:45:09 2024 +0100

    Add type `AccountIdOrderable` to make `AccountId` comparable

    `AccountId` could already be compared (using `Ord`/`PartialOrd`) but we had
    to re-compute the `BigInteger256` values every time
    `PartialOrd::partial_cmp` was called.
    This commit only make the comparaison (`Ord`/`PartialOrd`) faster.

    Remove `Ord` & `PartialOrd` implementation for `AccountId`.

commit 8c8098e
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Mar 19 20:27:42 2024 +0100

    Fix new warning "reduntant import"

commit 90369d3
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Mar 19 20:11:18 2024 +0100

    Fix after rebase

commit 304f50b
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Sat Mar 9 21:41:13 2024 +0100

    Implement `ZkappCommand::valid_size`

commit 2569c35
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Sat Mar 9 20:53:57 2024 +0100

    Make `group_by_zkapp_command_rev` generic, to use it in tx pool

commit 2da771c
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Sat Mar 9 18:13:01 2024 +0100

    Implement `IndexedPool::revalidate`

commit 9e057db
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Sat Mar 9 15:33:57 2024 +0100

    Implement rest of `add_from_gossip_exn`

    + Apply changes only when no errors occured

commit 471dfa6
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Mar 7 18:07:00 2024 +0100

    Implement part of `IndexedPool::add_from_gossip_exn`

commit 28ad681
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Mar 7 14:28:48 2024 +0100

    Implement `IndexedPool::add_from_backtrack`

commit ed4a48f
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Thu Mar 7 11:47:02 2024 +0100

    Implement time-related types/methods for tx pool

commit 7f8d318
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 6 19:47:26 2024 +0100

    wip

commit fa1aedb
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 6 16:47:21 2024 +0100

    Compute weight of commands

commit b1457cc
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Wed Mar 6 15:38:28 2024 +0100

    Verify commands in the tx pool

commit d5dcba0
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Tue Mar 5 19:05:43 2024 +0100

    Implement new caching logic in `to_all_verifiable`

    See MinaProtocol/mina#14356

commit 7d908d8
Author: Sebastien Chapuis <sebastien@chapu.is>
Date:   Sun Mar 3 17:15:47 2024 +0100

    Start implementation of the transaction pool

    Implement it outside of the state machine for now.
    We will integrate it later

commit 07e64e3
Merge: 50f1fec e423a19
Author: Sventimir <svantimir@gmail.com>
Date:   Thu May 9 11:49:07 2024 +0200

    Merge pull request #369 from openmina/feature/load-config-file

    Load deamon.json configuration

commit e423a19
Author: Sventimir <svantimir@gmail.com>
Date:   Thu May 9 10:07:04 2024 +0200

    Add an option to start a node using custom config.

commit dde485c
Author: Sventimir <svantimir@gmail.com>
Date:   Thu May 9 10:05:37 2024 +0200

    Add DaemonJson variant to GenesisConfig enum.

commit a990037
Author: Sventimir <svantimir@gmail.com>
Date:   Thu May 9 10:02:39 2024 +0200

    Fix bug in currency parsing.

    When there was no decimal point, any number would parse as 0.

commit 96b15ce
Author: Sventimir <svantimir@gmail.com>
Date:   Thu May 9 09:56:57 2024 +0200

    Add a parser for OCaml node's configuration files.

commit 50f1fec
Merge: 3cae110 49fbdb6
Author: Zura Benashvili <zura.benashvili@gmail.com>
Date:   Wed May 8 13:50:07 2024 +0400

    Merge pull request #388 from openmina/test/transition_frontier

    Fix block producer invalid delta_block_chain_proof

commit 49fbdb6
Author: Zura Benashvili <zura.benashvili@gmail.com>
Date:   Wed May 8 13:48:10 2024 +0400

    fix(block_producer): invalid delta_block_chain_proof

commit dfb954d
Author: Zura Benashvili <zura.benashvili@gmail.com>
Date:   Tue Apr 30 16:35:56 2024 +0400

    fix(consensus): incorrect handling of case when tip height <= k

commit acce09c
Author: Zura Benashvili <zura.benashvili@gmail.com>
Date:   Tue Apr 30 16:32:12 2024 +0400

    fix(p2p/webrtc): outgoing connection not being initiated

commit 3cae110
Merge: 6e56d8a a409a69
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Tue May 7 12:25:38 2024 -0300

    Merge pull request #387 from openmina/fix/block-verify-supercharge-coinbase

    fix(ledger-service) Use `supercharge_coinbase` value from the block

commit a409a69
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Tue May 7 12:06:42 2024 -0300

    Update CHANGELOG

commit 52b5515
Author: Bruno Deferrari <bruno.deferrari@viablesystems.io>
Date:   Tue May 7 12:01:17 2024 -0300

    fix(ledger-service) Use `supercharge_coinbase` value from the block

    This used to fail before because the `supercharged_coinbase_factor` value
    in the constants used to be `2`, but now that the correct
    value `1` is used the issue is solved.

    re: #386
This removes the method `effects`
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants