input-output-hk / mithril

Stake-based threshold multi-signatures protocol
https://mithril.network
Apache License 2.0
128 stars 39 forks source link

Release `2442` distribution #1943

Open jpraynaud opened 3 weeks ago

jpraynaud commented 3 weeks ago

Why

In order to deploy new features, improvements and bug fixes, we need to release a new distribution.

What

Create and release a new distribution 2442

[!IMPORTANT]

  • [x] Ship new era
  • [x] :fire: Breaking-change in client for Mithril stake distribution protocol message computation
  • [x] Make client for Cardano transactions stable
  • [x] #2003
  • [ ] Activate Cardano stake distribution certification:
    • [x] in pre-release-preview
    • [ ] in release-preprod
    • [ ] in release-mainnet
  • [ ] Upgrade to Cardano node 9.2.1:
    • [x] in pre-release-preview
    • [ ] in release-preprod
    • [ ] in release-mainnet

Distribution +1:

[!NOTE]

  • [ ] Make client for Cardano stake distribution stable

How

Phase 1: Prepare distribution

Phase 2: Rollout pre-release distribution

Phase 3: Rollout release distribution

Phase 4: Activate features

jpraynaud commented 3 days ago

Cardano transactions prover benchmark

[!NOTE] run on GCP with e2-highmem-2 machine with 2 vCPUs and 15GB of RAM not during Cardano database snapshotting

total_requests concurrency transactions/request requests/s
500 50 1 56.11
500 50 10 41.44
500 50 20 33.54
500 50 30 30.91
500 50 40 27.23
500 50 50 24.67

vs previous results

total_requests concurrency transactions/request requests/s
500 50 1 58.71
500 50 10 49.19
500 50 20 39.17
500 50 30 34.11
500 50 40 29.21
500 50 50 24.39

Transactions file to prove

export TRANSACTIONS_FILE=transactions-preview.txt

Transactions proved per request range definition

export TRANSACTIONS_PER_REQUEST_MIN=0 export TRANSACTIONS_PER_REQUEST_MAX=50 export TRANSACTIONS_PER_REQUEST_STEP=10

Apache benchmark total request sent per benchmark

export AB_TOTAL_REQUESTS=500

Apache benchmark concurrency level range definition

export AB_CONCURRENCY_MIN=50 export AB_CONCURRENCY_MAX=50 export AB_CONCURRENCY_STEP=50

Run the benchmark:

./benchmark-aggregator-prover.sh


- Command result:
```bash
MITHRIL AGGREGATOR PROVER ROUTE BENCHMARK

>> Aggregator endpoint: https://aggregator.pre-release-preview.api.mithril.network/aggregator
>> Aggregator route: /proof/cardano-transaction
>> Transactions file: transactions-preview.txt
>> Transactions available: [100]
>> Transactions per request range: [0 10 20 30 40 50]
>> AB concurrency range: [50]
>> AB total requests per run: [500]
>> AB total runs: 6
>> Output file: benchmark.csv

>> [#1/6] Running stress test with 500 requests with 1 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (56.11 requests/s)

>> [#2/6] Running stress test with 500 requests with 10 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (41.44 requests/s)

>> [#3/6] Running stress test with 500 requests with 20 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (33.54 requests/s)

>> [#4/6] Running stress test with 500 requests with 30 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (30.91 requests/s)

>> [#5/6] Running stress test with 500 requests with 40 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (27.23 requests/s)

>> [#6/6] Running stress test with 500 requests with 50 transactions per request and 50 concurrency
Completed 100 requests
Completed 200 requests
Completed 300 requests
Completed 400 requests
Completed 500 requests
Finished 500 requests
>>>> Success (24.67 requests/s)

>> Benchmark completed:

total_requests,concurrency,transactions/request,requests/s
500,50,1,56.11
500,50,10,41.44
500,50,20,33.54
500,50,30,30.91
500,50,40,27.23
500,50,50,24.67