MIP Ref Impl: Increase events&actions limit
Name would've been too long if I'm using the full "MIP Reference Implementation" here.
Status
- It fixed a bug where inner event/action limit doesn't match outer. We may want to consider break this into 2 piece?
- Waiting for MIP to be approved by the community
Benchmark Data
Performance for Applying txn diff, reference PR: https://github.com/MinaProtocol/mina/pull/16968
Commands ran: ./scripts/tests/ledger_test_apply.sh --transfer-parties-get-actions-events on devnet build
- Data
ledger_test_apply_bench.1024.events.json
bench.1024.events.out.txt
bench.1024.events.err.txt
The whole test took
11m46sto run.
Commands ran: ./scripts/tests/ledger_test_apply.sh with https://github.com/MinaProtocol/mina/pull/17612
- Data
ledger_test_apply_bench.1024.no-events.json
bench.1024.no-events.out.txt
bench.1024.no-events.err.txt
The whole test took
1m57sto run.
The last round of application, always create 200 txns with 1024 events & 1024 updates in first run, while 0 events & 0 updates in 2nd run. Via stdout, we know they take 8.2920899391174316s and 4.3161377906799316s, respectively.
I've rerun this benchmark also with limit set to 100:
- it took 2.930260181427002s for 0 events & actions limit in the final 200txn round
- it took 3.4779603481292725s for 100 events & actions limit in the final 200txn round
Estimating pessimistically, say before HF nobody is using events/actions, but everyone use up to the 1000 limit after the HF. It's going to be a factor of $8.292 \div 2.930$ slow down, that's at most 3 times slow down. Here's the data for the 100 case: ledger-test-apply-events-100.zip ledger-test-apply-no-events-100.zip
!ci-build-me
A follow-up for the PR would be to have a bounded list of lists with a boundary being over total length of elements.
I.e. to replace
Pickles.Backend.Tick.Field.Stable.V1.t Bounded.Stable.V1.t list
With:
Pickles.Backend.Tick.Field.Stable.V1.t Bounded_list_of_arrays.Stable.V1.t
And for Bounded_list_of_arrays to ensure that 'a array list that is held inside holds properties:
- every arrray is non-empty
- sum of lengths of all arrays is below a certain limit
It's ok not to make this change in this PR
!ci-nightly-me