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

feat: biggroup handles points at infinity #6391

Merged
merged 38 commits into from
May 25, 2024
Merged

Conversation

zac-williamson
Copy link
Contributor

@zac-williamson zac-williamson commented May 14, 2024

This PR introdues a stdlib boolean flag into biggroup to track whether an element is the point at infinity. This is uses to handle edge cases around the point at infinity in biggroup operations. We now correctly handle points at infinity under addition and subtraction. The batch_mul method correctly handles points at infinity (at least in three tested cases) under the Mega arithmetization (though this is not all that meaningful without a full Goblin proof!). The wnaf_batch_mul method correctly handles points at infinity (at least in three tested cases) under the Ultra arithmetization, which is the only arithmetization for which it's implemented.

The PR adds constraints that increase the cost of biggroup operations. This cases the UltraPlonk recursive verifier circuit size to grow, crossing a power-of-two boundary. This means that we can no longer execute two UltraPlonk recursive verifications in WASM due to an out-of-memory error during provcing key creation. (cf the double_verify_proof tests; note that double_verify_nested_proof was already not available in WASM). Moreover, the PR exposed that noir.js is not capable of executing proof construction for a circuit of size $2^{19}$. In response to these two issues, we have disabled tests. We did this in consulation with @TomAFrench and @vezenovm. Related issues: noir-lang/noir#5106, #6672.

Changes to benchmarks

Note that this PR disrupted the ClientIVC benchmarks by shrinking the mock circuits considerably. This will be fixed in a follow-on.

MockKernelTest.PinFoldingKernelSizes before

circuit data
num_gates: 107632
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 0/1024
pub inputs    : 0/128
arithmetic    : 41707/65536
delta range   : 0/32768
elliptic      : 8260/16384
auxiliary     : 21512/65536
lookups       : 16949/32768
busread       : 0/128
poseidon ext  : 0/2048
poseidon int  : 0/16384

MockKernelTest.PinFoldingKernelSizes after

circuit data
num_gates: 74187
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 0/1024
pub inputs    : 0/128
arithmetic    : 29366/65536
delta range   : 0/32768
elliptic      : 8260/16384
auxiliary     : 11482/65536
lookups       : 13944/32768
busread       : 0/128
poseidon ext  : 0/2048
poseidon int  : 0/16384

MegaMockCircuitsPinning Before

circuit data
num_gates: 498817
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 6/1024
pub inputs    : 0/128
arithmetic    : 184555/65536
delta range   : 0/32768
elliptic      : 4956/16384
auxiliary     : 129072/65536
lookups       : 74760/32768
busread       : 0/128
poseidon ext  : 0/2048
poseidon int  : 0/16384

circuit data
num_gates: 108602
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 6/1024
pub inputs    : 0/128
arithmetic    : 39501/65536
delta range   : 0/32768
elliptic      : 4130/16384
auxiliary     : 21512/65536
lookups       : 24165/32768
busread       : 0/128
poseidon ext  : 0/2048

MegaMockCircuitsPinning After

circuit data
num_gates: 298151
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 6/1024
pub inputs    : 0/128
arithmetic    : 110509/65536
delta range   : 0/32768
elliptic      : 4956/16384
auxiliary     : 68892/65536
lookups       : 56730/32768
busread       : 0/128
poseidon ext  : 0/2048
poseidon int  : 0/16384

circuit data
num_gates: 75158
Gate blocks summary: (actual gates / fixed capacity)
goblin ecc op : 6/1024
pub inputs    : 0/128
arithmetic    : 27160/65536
delta range   : 0/32768
elliptic      : 4130/16384
auxiliary     : 11482/65536
lookups       : 21160/32768
busread       : 0/128
poseidon ext  : 0/2048
poseidon int  : 0/16384

Client IVC Before

Running ./client_ivc_bench
Run on (16 X 3601.75 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x8)
  L1 Instruction 32 KiB (x8)
  L2 Unified 1024 KiB (x8)
  L3 Unified 36608 KiB (x1)
Load Average: 0.00, 0.22, 0.26
--------------------------------------------------------------------------------
Benchmark                      Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------
ClientIVCBench/Full/6      17929 ms        12829 ms            1 Arithmetic::accumulate=1.03621M Arithmetic::accumulate(t)=2.03487G Auxiliary::accumulate=779.801k Auxiliary::accumulate(t)=5.37672G DatabusRead::accumulate=542 DatabusRead::accumulate(t)=1.50184M Decider::construct_proof=1 Decider::construct_proof(t)=514.726M DeltaRange::accumulate=539.673k DeltaRange::accumulate(t)=1.22538G ECCVMProver(CircuitBuilder&)=1 ECCVMProver(CircuitBuilder&)(t)=175.428M ECCVMProver::construct_proof=1 ECCVMProver::construct_proof(t)=1.76496G Elliptic::accumulate=275.563k Elliptic::accumulate(t)=665.577M Goblin::merge=11 Goblin::merge(t)=151.778M Lookup::accumulate=2.62144M Lookup::accumulate(t)=11.9614G Permutation::accumulate=2.42012M Permutation::accumulate(t)=9.54553G PoseidonExt::accumulate=42.106k PoseidonExt::accumulate(t)=105.328M PoseidonInt::accumulate=181.685k PoseidonInt::accumulate(t)=322.14M ProtoGalaxyProver_::accumulator_update_round=10 ProtoGalaxyProver_::accumulator_update_round(t)=284.791M ProtoGalaxyProver_::combiner_quotient_round=10 ProtoGalaxyProver_::combiner_quotient_round(t)=2.94053G ProtoGalaxyProver_::perturbator_round=10 ProtoGalaxyProver_::perturbator_round(t)=806.501M ProtoGalaxyProver_::preparation_round=10 ProtoGalaxyProver_::preparation_round(t)=3.91218G ProtogalaxyProver::fold_instances=10 ProtogalaxyProver::fold_instances(t)=7.94403G ProverInstance(Circuit&)=11 ProverInstance(Circuit&)(t)=1.88301G TranslatorCircuitBuilder::constructor=1 TranslatorCircuitBuilder::constructor(t)=62.2493M TranslatorProver=1 TranslatorProver(t)=55.4344M TranslatorProver::construct_proof=1 TranslatorProver::construct_proof(t)=812.968M batch_mul_with_endomorphism=30 batch_mul_with_endomorphism(t)=562.714M commit=459 commit(t)=4.27013G compute_combiner=10 compute_combiner(t)=2.93848G compute_perturbator=9 compute_perturbator(t)=806.113M compute_univariate=48 compute_univariate(t)=1.06312G construct_circuits=15 construct_circuits(t)=4.54942G
Benchmarking lock deleted.
client_ivc_bench.json                                   100% 4568   120.7KB/s   00:00    
function                                  ms     % sum
construct_circuits(t)                   4549    25.56%
ProverInstance(Circuit&)(t)             1883    10.58%
ProtogalaxyProver::fold_instances(t)    7944    44.64%
Decider::construct_proof(t)              515     2.89%
ECCVMProver(CircuitBuilder&)(t)          175     0.99%
ECCVMProver::construct_proof(t)         1765     9.92%
TranslatorProver::construct_proof(t)     813     4.57%
Goblin::merge(t)                         152     0.85%

Total time accounted for: 17796ms/17929ms = 99.26%

Major contributors:
function                                  ms    % sum
commit(t)                               4270   23.99%
compute_combiner(t)                     2938   16.51%
compute_perturbator(t)                   806    4.53%
compute_univariate(t)                   1063    5.97%

Breakdown of ProtogalaxyProver::fold_instances:
ProtoGalaxyProver_::preparation_round(t)           3912    49.25%
ProtoGalaxyProver_::perturbator_round(t)            807    10.15%
ProtoGalaxyProver_::combiner_quotient_round(t)     2941    37.02%
ProtoGalaxyProver_::accumulator_update_round(t)     285     3.58%

Relation contributions (times to be interpreted relatively):
function                        ms     % sum
Arithmetic::accumulate(t)     2035     6.51%
Permutation::accumulate(t)    9546    30.56%
Lookup::accumulate(t)        11961    38.29%
DeltaRange::accumulate(t)     1225     3.92%
Elliptic::accumulate(t)        666     2.13%
Auxiliary::accumulate(t)      5377    17.21%
EccOp::accumulate(t)             0     0.00%
DatabusRead::accumulate(t)       2     0.00%
PoseidonExt::accumulate(t)     105     0.34%
PoseidonInt::accumulate(t)     322     1.03%

ClientIVC After

Benchmarking lock created at ~/BENCHMARK_IN_PROGRESS.
client_ivc_bench                                        100%   18MB  46.0MB/s   00:00    
2024-05-26T15:04:09+00:00
Running ./client_ivc_bench
Run on (16 X 3000 MHz CPU s)
CPU Caches:
  L1 Data 32 KiB (x8)
  L1 Instruction 32 KiB (x8)
  L2 Unified 1024 KiB (x8)
  L3 Unified 36608 KiB (x1)
Load Average: 0.20, 0.87, 0.61
--------------------------------------------------------------------------------
Benchmark                      Time             CPU   Iterations UserCounters...
--------------------------------------------------------------------------------
ClientIVCBench/Full/6      15963 ms        11092 ms            1 Arithmetic::accumulate=783.089k Arithmetic::accumulate(t)=1.49495G Auxiliary::accumulate=570.914k Auxiliary::accumulate(t)=3.76964G DatabusRead::accumulate=544 DatabusRead::accumulate(t)=1.39123M Decider::construct_proof=1 Decider::construct_proof(t)=508.458M DeltaRange::accumulate=446.369k DeltaRange::accumulate(t)=952.168M ECCVMProver(CircuitBuilder&)=1 ECCVMProver(CircuitBuilder&)(t)=176.402M ECCVMProver::construct_proof=1 ECCVMProver::construct_proof(t)=1.76751G Elliptic::accumulate=277.663k Elliptic::accumulate(t)=632.761M Goblin::merge=11 Goblin::merge(t)=152.517M Lookup::accumulate=2.62144M Lookup::accumulate(t)=11.6631G Permutation::accumulate=1.80147M Permutation::accumulate(t)=6.74061G PoseidonExt::accumulate=46.504k PoseidonExt::accumulate(t)=110.282M PoseidonInt::accumulate=181.69k PoseidonInt::accumulate(t)=320.704M ProtoGalaxyProver_::accumulator_update_round=10 ProtoGalaxyProver_::accumulator_update_round(t)=284.276M ProtoGalaxyProver_::combiner_quotient_round=10 ProtoGalaxyProver_::combiner_quotient_round(t)=2.81457G ProtoGalaxyProver_::perturbator_round=10 ProtoGalaxyProver_::perturbator_round(t)=796.621M ProtoGalaxyProver_::preparation_round=10 ProtoGalaxyProver_::preparation_round(t)=3.7098G ProtogalaxyProver::fold_instances=10 ProtogalaxyProver::fold_instances(t)=7.60529G ProverInstance(Circuit&)=11 ProverInstance(Circuit&)(t)=1.58484G TranslatorCircuitBuilder::constructor=1 TranslatorCircuitBuilder::constructor(t)=61.8173M TranslatorProver=1 TranslatorProver(t)=59.55M TranslatorProver::construct_proof=1 TranslatorProver::construct_proof(t)=822.39M batch_mul_with_endomorphism=30 batch_mul_with_endomorphism(t)=561.522M commit=459 commit(t)=4.08022G compute_combiner=10 compute_combiner(t)=2.81248G compute_perturbator=9 compute_perturbator(t)=796.246M compute_univariate=48 compute_univariate(t)=1.05465G construct_circuits=15 construct_circuits(t)=3.21399G
Benchmarking lock deleted.
client_ivc_bench.json                                   100% 4575   143.2KB/s   00:00    
function                                  ms     % sum
construct_circuits(t)                   3214    20.30%
ProverInstance(Circuit&)(t)             1585    10.01%
ProtogalaxyProver::fold_instances(t)    7605    48.04%
Decider::construct_proof(t)              508     3.21%
ECCVMProver(CircuitBuilder&)(t)          176     1.11%
ECCVMProver::construct_proof(t)         1768    11.16%
TranslatorProver::construct_proof(t)     822     5.19%
Goblin::merge(t)                         153     0.96%

Total time accounted for: 15831ms/15963ms = 99.18%

Major contributors:
function                                  ms    % sum
commit(t)                               4080   25.77%
compute_combiner(t)                     2812   17.77%
compute_perturbator(t)                   796    5.03%
compute_univariate(t)                   1055    6.66%

Breakdown of ProtogalaxyProver::fold_instances:
ProtoGalaxyProver_::preparation_round(t)           3710    48.78%
ProtoGalaxyProver_::perturbator_round(t)            797    10.47%
ProtoGalaxyProver_::combiner_quotient_round(t)     2815    37.01%
ProtoGalaxyProver_::accumulator_update_round(t)     284     3.74%

Relation contributions (times to be interpreted relatively):
function                        ms     % sum
Arithmetic::accumulate(t)     1495     5.82%
Permutation::accumulate(t)    6741    26.24%
Lookup::accumulate(t)        11663    45.41%
DeltaRange::accumulate(t)      952     3.71%
Elliptic::accumulate(t)        633     2.46%
Auxiliary::accumulate(t)      3770    14.68%
EccOp::accumulate(t)             0     0.00%
DatabusRead::accumulate(t)       1     0.01%
PoseidonExt::accumulate(t)     110     0.43%
PoseidonInt::accumulate(t)     321     1.25%

…inity, and have +/- methods that correctly handle points at infinity
@codygunton codygunton changed the title initial commit. biggroup objects track whether they are points at infinity, and have +/- methods that correctly handle points at infinity feat: biggroup handles points at infinity May 15, 2024
@codygunton codygunton marked this pull request as draft May 16, 2024 13:02
@codygunton codygunton self-assigned this May 17, 2024
Copy link
Contributor

github-actions bot commented May 18, 2024

Changes to circuit sizes

Generated at commit: b59ee31edfc53af8dd80c1402ec42ecd43802c0f, compared to commit: 28a20fcd529fcce27e714a4a7794f271819df749

🧾 Summary (100% most significant diffs)

Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_root 0 ➖ 0.00% +52,889 ❌ +6.16%
rollup_merge 0 ➖ 0.00% +34,452 ❌ +6.07%
parity_root 0 ➖ 0.00% +61,709 ❌ +5.78%
private_kernel_inner 0 ➖ 0.00% +32,048 ❌ +1.83%
private_kernel_init 0 ➖ 0.00% +13,612 ❌ +1.59%
private_kernel_reset_small 0 ➖ 0.00% +16,017 ❌ +1.51%
private_kernel_reset_medium 0 ➖ 0.00% +16,017 ❌ +1.26%
private_kernel_tail 0 ➖ 0.00% +16,017 ❌ +1.10%
public_kernel_setup 0 ➖ 0.00% +16,018 ❌ +1.06%
public_kernel_app_logic 0 ➖ 0.00% +16,017 ❌ +0.98%
public_kernel_teardown 0 ➖ 0.00% +16,017 ❌ +0.98%
private_kernel_reset_big 0 ➖ 0.00% +16,017 ❌ +0.94%
rollup_base 0 ➖ 0.00% +16,016 ❌ +0.76%
private_kernel_tail_to_public 0 ➖ 0.00% +16,016 ❌ +0.74%
private_kernel_reset 0 ➖ 0.00% +16,017 ❌ +0.63%
public_kernel_tail 0 ➖ 0.00% +16,016 ❌ +0.36%

Full diff report 👇
Program ACIR opcodes (+/-) % Circuit size (+/-) %
rollup_root 2,309 (0) 0.00% 910,945 (+52,889) +6.16%
rollup_merge 1,319 (0) 0.00% 601,666 (+34,452) +6.07%
parity_root 2,140 (0) 0.00% 1,129,296 (+61,709) +5.78%
private_kernel_inner 268,082 (0) 0.00% 1,785,350 (+32,048) +1.83%
private_kernel_init 233,177 (0) 0.00% 867,491 (+13,612) +1.59%
private_kernel_reset_small 138,518 (0) 0.00% 1,075,808 (+16,017) +1.51%
private_kernel_reset_medium 155,675 (0) 0.00% 1,288,223 (+16,017) +1.26%
private_kernel_tail 201,217 (0) 0.00% 1,466,580 (+16,017) +1.10%
public_kernel_setup 221,760 (0) 0.00% 1,525,521 (+16,018) +1.06%
public_kernel_app_logic 250,035 (0) 0.00% 1,655,519 (+16,017) +0.98%
public_kernel_teardown 250,395 (0) 0.00% 1,655,920 (+16,017) +0.98%
private_kernel_reset_big 189,987 (0) 0.00% 1,713,051 (+16,017) +0.94%
rollup_base 191,805 (0) 0.00% 2,130,683 (+16,016) +0.76%
private_kernel_tail_to_public 572,000 (0) 0.00% 2,178,838 (+16,016) +0.74%
private_kernel_reset 258,614 (0) 0.00% 2,562,710 (+16,017) +0.63%
public_kernel_tail 969,638 (0) 0.00% 4,416,993 (+16,016) +0.36%

@AztecBot
Copy link
Collaborator

AztecBot commented May 18, 2024

Benchmark results

Metrics with a significant change:

  • protocol_circuit_witness_generation_time_in_ms (root-parity): 96.4 (+46%)
Detailed results

All benchmarks are run on txs on the Benchmarking contract on the repository. Each tx consists of a batch call to create_note and increment_balance, which guarantees that each tx has a private call, a nested private call, a public call, and a nested public call, as well as an emitted private note, an unencrypted log, and public storage read and write.

This benchmark source data is available in JSON format on S3 here.

Proof generation

Each column represents the number of threads used in proof generation.

Metric 1 threads 4 threads 16 threads 32 threads 64 threads
proof_construction_time_sha256 5,722 (-1%) 1,554 (-3%) 725 (+1%) 775 (+1%) 779

L2 block published to L1

Each column represents the number of txs on an L2 block published to L1.

Metric 8 txs 32 txs 64 txs
l1_rollup_calldata_size_in_bytes 1,412 1,412 1,412
l1_rollup_calldata_gas 9,464 9,476 9,476
l1_rollup_execution_gas 616,105 616,117 616,117
l2_block_processing_time_in_ms 1,302 4,847 9,653
l2_block_building_time_in_ms 46,806 184,875 370,763
l2_block_rollup_simulation_time_in_ms 46,635 184,246 369,507
l2_block_public_tx_process_time_in_ms 24,935 103,701 212,518

L2 chain processing

Each column represents the number of blocks on the L2 chain where each block has 16 txs.

Metric 3 blocks 5 blocks
node_history_sync_time_in_ms 9,478 14,392 (-1%)
node_database_size_in_bytes 14,487,632 21,323,856
pxe_database_size_in_bytes 18,071 29,868

Circuits stats

Stats on running time and I/O sizes collected for every kernel circuit run across all benchmarks.

Circuit simulation_time_in_ms witness_generation_time_in_ms proving_time_in_ms input_size_in_bytes output_size_in_bytes proof_size_in_bytes num_public_inputs size_in_gates
private-kernel-init 164 3,586 25,031 (+3%) 20,630 64,614 89,536 2,731 1,048,576
private-kernel-inner 625 4,025 (-2%) 52,342 (-1%) 92,318 64,614 89,536 2,731 2,097,152
private-kernel-tail 548 2,819 45,048 (+6%) 90,237 77,498 10,656 266 2,097,152
base-parity 6.43 1,196 (-1%) 2,822 (-1%) 128 64.0 2,208 2.00 131,072
root-parity 49.0 (-2%) ⚠️ 96.4 (+46%) 52,073 (+2%) 27,084 64.0 2,720 18.0 2,097,152
base-rollup 779 (+5%) 2,452 85,486 (-1%) 119,610 756 3,648 47.0 4,194,304
root-rollup 112 (-2%) 79.9 (+1%) 23,120 (+3%) 25,297 620 3,456 41.0 1,048,576
public-kernel-app-logic 525 2,902 (+1%) 52,154 (+2%) 104,941 86,302 114,784 3,520 2,097,152
public-kernel-tail 1,191 22,544 (-2%) 184,869 (+3%) 395,386 7,522 10,656 266 8,388,608
private-kernel-reset-small 595 2,045 48,903 120,733 64,614 89,536 2,731 2,097,152
merge-rollup 28.7 (+1%) N/A N/A 16,534 756 N/A N/A N/A
public-kernel-setup 617 (-4%) N/A N/A 104,941 86,302 N/A N/A N/A
public-kernel-teardown 530 (-2%) N/A N/A 104,941 86,302 N/A N/A N/A
private-kernel-tail-to-public N/A 8,201 (-6%) 92,941 (-1%) N/A N/A 114,784 3,520 4,194,304

Stats on running time collected for app circuits

Function input_size_in_bytes output_size_in_bytes witness_generation_time_in_ms proof_size_in_bytes proving_time_in_ms size_in_gates num_public_inputs
ContractClassRegisterer:register 1,344 9,944 462 (-1%) N/A N/A N/A N/A
ContractInstanceDeployer:deploy 1,408 9,944 41.0 (-2%) N/A N/A N/A N/A
MultiCallEntrypoint:entrypoint 1,920 9,944 1,435 (-1%) N/A N/A N/A N/A
SchnorrAccount:constructor 1,312 9,944 1,003 (-1%) N/A N/A N/A N/A
SchnorrAccount:entrypoint 2,304 9,944 2,117 (-3%) 16,768 52,633 (+4%) 2,097,152 457
Token:privately_mint_private_note 1,280 9,944 1,113 (-1%) N/A N/A N/A N/A
Token:transfer 1,376 9,944 4,023 (-1%) 16,768 55,882 (-1%) 2,097,152 457
Benchmarking:create_note 1,312 9,944 981 (-4%) N/A N/A N/A N/A
FPC:fee_entrypoint_public 1,344 9,944 228 (-1%) N/A N/A N/A N/A
SchnorrAccount:spend_private_authwit 1,280 9,944 76.9 (-3%) N/A N/A N/A N/A
Token:unshield 1,376 9,944 3,256 (-2%) N/A N/A N/A N/A
FPC:fee_entrypoint_private 1,376 9,944 4,050 (-3%) N/A N/A N/A N/A

Tree insertion stats

The duration to insert a fixed batch of leaves into each tree type.

Metric 1 leaves 16 leaves 64 leaves 128 leaves 512 leaves 1024 leaves 2048 leaves 4096 leaves 32 leaves
batch_insert_into_append_only_tree_16_depth_ms 10.4 17.0 (+1%) N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_count 16.7 31.8 N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_16_depth_hash_ms 0.603 0.520 (+1%) N/A N/A N/A N/A N/A N/A N/A
batch_insert_into_append_only_tree_32_depth_ms N/A N/A 48.8 (+1%) 76.3 247 474 930 1,855 N/A
batch_insert_into_append_only_tree_32_depth_hash_count N/A N/A 95.9 159 543 1,055 2,079 4,127 N/A
batch_insert_into_append_only_tree_32_depth_hash_ms N/A N/A 0.498 (+1%) 0.470 0.448 0.442 0.441 0.442 N/A
batch_insert_into_indexed_tree_20_depth_ms N/A N/A 58.4 113 357 (-1%) 697 1,388 2,777 N/A
batch_insert_into_indexed_tree_20_depth_hash_count N/A N/A 106 208 692 1,363 2,707 5,395 N/A
batch_insert_into_indexed_tree_20_depth_hash_ms N/A N/A 0.506 0.505 0.484 0.479 0.479 0.482 N/A
batch_insert_into_indexed_tree_40_depth_ms N/A N/A N/A N/A N/A N/A N/A N/A 62.4
batch_insert_into_indexed_tree_40_depth_hash_count N/A N/A N/A N/A N/A N/A N/A N/A 107
batch_insert_into_indexed_tree_40_depth_hash_ms N/A N/A N/A N/A N/A N/A N/A N/A 0.553

Miscellaneous

Transaction sizes based on how many contract classes are registered in the tx.

Metric 0 registered classes 1 registered classes
tx_size_in_bytes 83,794 665,117

Transaction size based on fee payment method

| Metric | |
| - | |

ludamad pushed a commit that referenced this pull request May 21, 2024
Tests that had been disabled were replaced by #6429. Two of those tests
now fail intermittently and will be fixed by the upcoming series of work
#6391 and #6388.
@codygunton codygunton marked this pull request as ready for review May 24, 2024 20:24
@codygunton codygunton enabled auto-merge (squash) May 24, 2024 20:32
@codygunton codygunton merged commit bd72db5 into master May 25, 2024
84 checks passed
@codygunton codygunton deleted the zw/biggroup-infinity branch May 25, 2024 15:05
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.

3 participants