mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 10:12:19 +00:00
c1c48a8af5
* Begin benchmarks file for block processing * Complete block processing benchmarks * Begin epoch benchmarks * Write most of epoch benchmarks * Start config * Make cases for max conditions * Begin work on benchmarking doc * Update benchmark numbers * Complete epoch benchmarks * Minor changes * Make createFullBlock function * Clean up block benchmarks * Begin fixing merge issues * Start adding 4M benchmarks * Almost finish epoch benchmarks * Test blocks under real life conditions * More progress on benchmarks * Fixes * Fix benchmark errors * Begin fixing benchmarks * More progress on tests * Complete epoch benchmarks * More progress on block benches * Finish epoch benchmarks, get progress on block benchmarks * Undo unneeded changes * Fix * Fix block benchmarks * Complete block benchmarks * Finish block benchmarks * Complete benchmarks * Increase block benchmarks to 65536 * Fix everything * Reset configs after benchmarks * Fix logging and suggestions * Fix comments * Fix benchmarks after merge * Fix merge issues * Add sanity tests for benchmark * Make sanity check simpler * Begin fixing after merge * Add log * Remove extra line * Remove unneeded change * Finally get block benchmarks to pass * Begin fixing epoch test * Finetuning constants * Revert "Finetuning constants" This reverts commit a872790d675154e1ce213285e76fb6e08ef21d79. * Finetuning * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Add benches for helper functions * Abstract block generation to testutil * Create block generation util in testutil * Gazelle * Fix deps * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into block-util * Fix imports * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into block-util * Merge branch 'master' into block-util * Change tests to use config and fix integer division * Merge branch 'block-util' of https://github.com/0xKiwi/prysm into block-util * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into block-util * Remove logs * Fix build * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Merge branch 'master' into block-util * Add test to ensure finalization occurs * Add check for finalization * Merge branch 'block-util' of https://github.com/0xKiwi/prysm into block-util * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into block-util * Add comment for incrementing the state * Fix test * Fix test * Merge branch 'master' into block-util * Fix testutil use * Fix tests * Change var name * Merge branch 'master' into block-util * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Merge branch 'block-util' of https://github.com/0xKiwi/prysm into new-benchmarks * Begin cleaning benchmarks * Get some numbers going * Use state saved to disk * Remove cruft * Cleanup * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Fix merge arrows * Set up block util and benchmarks for 128 attestations * Use intended config for benchmark * Add more benchmark functions * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Add benchmark epoch and modify block gen config to exclude signing * Cleanup * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Begin unstaleling * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Update block gen util to v0.9 changes * Prepare benchmarks to use marshalled files * Cleanup block gen tool some more * split up into file generation and benchmarking * Remove logrus * Merge branch 'master' into new-benchmarks * Get benchmarks work, start work on process epoch benchmark * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Merge branch 'new-benchmarks' of https://github.com/0xKiwi/prysm into new-benchmarks * All benchmarks working * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Fix after merge * Cleanup * Add bazel target * Added TestBenchmarkExecuteStateTransition_WithCache * Change tests to use SSZ and begin making binary * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Merge branch 'new-benchmarks' of https://github.com/0xKiwi/prysm into new-benchmarks * bazel binary * Fully change to binary * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Create go_binary to handle benchmark files * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Gofmt * Remove genesis state from generated files * Fix tests * Gazelle * Fix tests * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Fix block util * Allow attestations to be in future for block util * Fix inclusion delay issue * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Finally fix test * Add README detailing usage and results * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Change test to run with bazel test * Fix imports * Merge branch 'master' into new-benchmarks * Accidentally removed config change * Merge branch 'new-benchmarks' of https://github.com/0xKiwi/prysm into new-benchmarks * Merge branch 'master' of https://github.com/prysmaticlabs/prysm into new-benchmarks * Move to core/state/ * Update readme * Gazelle * Remove test for cached block
49 lines
2.0 KiB
Go
49 lines
2.0 KiB
Go
package benchmarks
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/prysmaticlabs/prysm/shared/params"
|
|
)
|
|
|
|
// ValidatorCount is for declaring how many validators the benchmarks will be
|
|
// performed with. Default is 65536 or 2M ETH staked.
|
|
var ValidatorCount = uint64(65536)
|
|
|
|
// AttestationsPerEpoch represents the requested amount attestations in an epoch.
|
|
// This affects the amount of attestations in a fully attested for block and the amount
|
|
// of attestations in the state per epoch, so a full 2 epochs should result in twice
|
|
// this amount of attestations in the state. Default is 128.
|
|
var AttestationsPerEpoch = uint64(128)
|
|
|
|
// GenesisFileName is the generated genesis beacon state file name.
|
|
var GenesisFileName = fmt.Sprintf("benchmark_files/bStateGenesis-%dAtts-%dVals.ssz", AttestationsPerEpoch, ValidatorCount)
|
|
|
|
// BState1EpochFileName is the generated beacon state after 1 skipped epoch file name.
|
|
var BState1EpochFileName = fmt.Sprintf("benchmark_files/bState1Epoch-%dAtts-%dVals.ssz", AttestationsPerEpoch, ValidatorCount)
|
|
|
|
// BState2EpochFileName is the generated beacon state after 2 full epochs file name.
|
|
var BState2EpochFileName = fmt.Sprintf("benchmark_files/bState2Epochs-%dAtts-%dVals.ssz", AttestationsPerEpoch, ValidatorCount)
|
|
|
|
// FullBlockFileName is the generated full block file name.
|
|
var FullBlockFileName = fmt.Sprintf("benchmark_files/fullBlock-%dAtts-%dVals.ssz", AttestationsPerEpoch, ValidatorCount)
|
|
|
|
// FilePath prefixes the file path to the file names.
|
|
func FilePath(fileName string) string {
|
|
return fmt.Sprintf("beacon-chain/core/state/benchmarks/%s", fileName)
|
|
}
|
|
|
|
// SetConfig changes the beacon config to match the requested amount of
|
|
// attestations set to AttestationsPerEpoch.
|
|
func SetConfig() {
|
|
maxAtts := AttestationsPerEpoch
|
|
slotsPerEpoch := params.BeaconConfig().SlotsPerEpoch
|
|
committeeSize := (ValidatorCount / slotsPerEpoch) / (maxAtts / slotsPerEpoch)
|
|
c := params.BeaconConfig()
|
|
c.PersistentCommitteePeriod = 0
|
|
c.MinValidatorWithdrawabilityDelay = 0
|
|
c.TargetCommitteeSize = committeeSize
|
|
c.MaxAttestations = maxAtts
|
|
params.OverrideBeaconConfig(c)
|
|
}
|