Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
var ( // ByzantineExecutorHonest is the byzantine executor honest scenario. ByzantineExecutorHonest scenario.Scenario = newByzantineImpl( "executor-honest", nil, oasis.ByzantineDefaultIdentitySeed, false, ) // ByzantineExecutorSchedulerHonest is the byzantine executor scheduler honest scenario. ByzantineExecutorSchedulerHonest scenario.Scenario = newByzantineImpl( "executor-honest", nil, oasis.ByzantineSlot3IdentitySeed, true, ) // ByzantineExecutorWrong is the byzantine executor wrong scenario. ByzantineExecutorWrong scenario.Scenario = newByzantineImpl( "executor-wrong", []log.WatcherHandlerFactory{ oasis.LogAssertNoTimeouts(), oasis.LogAssertNoRoundFailures(), oasis.LogAssertExecutionDiscrepancyDetected(), }, oasis.ByzantineDefaultIdentitySeed, false, ) // ByzantineExecutorStraggler is the byzantine executor straggler scenario. ByzantineExecutorStraggler scenario.Scenario = newByzantineImpl( "executor-straggler", []log.WatcherHandlerFactory{ oasis.LogAssertTimeouts(), oasis.LogAssertNoRoundFailures(), oasis.LogAssertExecutionDiscrepancyDetected(), }, oasis.ByzantineDefaultIdentitySeed, false, ) // ByzantineExecutorSchedulerStraggler is the byzantine executor scheduler straggler scenario. ByzantineExecutorSchedulerStraggler scenario.Scenario = newByzantineImpl( "executor-straggler", []log.WatcherHandlerFactory{ oasis.LogAssertRoundFailures(), oasis.LogAssertTimeouts(), oasis.LogAssertExecutionDiscrepancyDetected(), }, oasis.ByzantineSlot3IdentitySeed, true, ) )
var ( // DumpRestore is the dump and restore scenario. DumpRestore scenario.Scenario = newDumpRestoreImpl("dump-restore", nil) // DumpRestoreRuntimeRoundAdvance is the scenario where additional rounds are simulated after // the runtime stopped in the old network (so storage node state is behind). DumpRestoreRuntimeRoundAdvance scenario.Scenario = newDumpRestoreImpl( "dump-restore/runtime-round-advance", func(doc *genesis.Document) { for _, st := range doc.RootHash.RuntimeStates { st.Round += 10 } }, ) )
var ( // RuntimeParamsDummy is a dummy instance of runtimeImpl used to register global e2e/runtime flags. RuntimeParamsDummy *runtimeImpl = newRuntimeImpl("", "", []string{}) // Runtime is the basic network + client test case with runtime support. Runtime scenario.Scenario = newRuntimeImpl("runtime", "simple-keyvalue-client", nil) // RuntimeEncryption is the basic network + client with encryption test case. RuntimeEncryption scenario.Scenario = newRuntimeImpl("runtime-encryption", "simple-keyvalue-enc-client", nil) // DefaultRuntimeLogWatcherHandlerFactories is a list of default log watcher // handler factories for the basic scenario. DefaultRuntimeLogWatcherHandlerFactories = []log.WatcherHandlerFactory{ oasis.LogAssertNoTimeouts(), oasis.LogAssertNoRoundFailures(), oasis.LogAssertNoExecutionDiscrepancyDetected(), } )
var ( // Sentry is the Sentry node basic scenario. Sentry scenario.Scenario = newSentryImpl("sentry", "simple-keyvalue-client", nil) // SentryEncryption is the Sentry node basic encryption scenario. SentryEncryption scenario.Scenario = newSentryImpl("sentry-encryption", "simple-keyvalue-enc-client", nil) )
var ClientExpire scenario.Scenario = newClientExpireImpl("client-expire", "simple-keyvalue-client", nil)
ClientExpire is the ClientExpire node scenario.
var GasFeesRuntimes scenario.Scenario = &gasFeesRuntimesImpl{ runtimeImpl: *newRuntimeImpl("gas-fees/runtimes", "", nil), }
GasFeesRuntimes is the runtime gas fees scenario.
var ( // HaltRestore is the halt and restore scenario. HaltRestore scenario.Scenario = newHaltRestoreImpl() )
var HistoryReindex scenario.Scenario = newHistoryReindexImpl()
HistoryReindex is the scenario that triggers roothash history reindexing.
var KeymanagerReplicate scenario.Scenario = newKmReplicateImpl()
KeymanagerReplicate is the keymanager replication scenario.
var KeymanagerRestart scenario.Scenario = newKmRestartImpl()
KeymanagerRestart is the keymanager restart scenario.
var KeymanagerUpgrade scenario.Scenario = newKmUpgradeImpl()
KeymanagerUpgrade is the keymanager upgrade scenario.
var LateStart scenario.Scenario = newLateStartImpl("late-start", "simple-keyvalue-client", nil)
LateStart is the LateStart node basic scenario.
var MultipleRuntimes = func() scenario.Scenario { sc := &multipleRuntimesImpl{ runtimeImpl: *newRuntimeImpl("multiple-runtimes", "simple-keyvalue-client", nil), } sc.Flags.Int(cfgNumComputeRuntimes, 2, "number of compute runtimes per worker") sc.Flags.Int(cfgNumComputeRuntimeTxns, 2, "number of transactions to perform") sc.Flags.Int(cfgNumComputeWorkers, 2, "number of workers to initiate") sc.Flags.Int(cfgExecutorGroupSize, 2, "number of executor workers in committee") return sc }()
MultipleRuntimes is a scenario which tests running multiple runtimes on one node.
var NodeShutdown scenario.Scenario = newNodeShutdownImpl()
NodeShutdown is the keymanager restart scenario.
var RuntimeDynamic scenario.Scenario = newRuntimeDynamicImpl()
RuntimeDynamic is the dynamic runtime registration scenario.
var RuntimePrune scenario.Scenario = newRuntimePruneImpl()
RuntimePrune is the runtime prune scenario.
var RuntimeUpgrade scenario.Scenario = newRuntimeUpgradeImpl()
RuntimeUpgrade is the runtime upgrade scenario.
var StorageSync scenario.Scenario = newStorageSyncImpl()
StorageSync is the storage sync scenario.
var StorageSyncFromRegistered scenario.Scenario = newStorageSyncFromRegisteredImpl()
StorageSyncFromRegistered is the storage sync scenario which tests syncing from registered nodes not in committee.
var TxSourceMulti scenario.Scenario = &txSourceImpl{ runtimeImpl: *newRuntimeImpl("txsource-multi", "", nil), clientWorkloads: []string{ workload.NameCommission, workload.NameDelegation, workload.NameOversized, workload.NameParallel, workload.NameRegistration, workload.NameRuntime, workload.NameTransfer, }, allNodeWorkloads: []string{ workload.NameQueries, }, timeLimit: timeLimitLong, nodeRestartInterval: nodeRestartIntervalLong, nodeLongRestartInterval: nodeLongRestartInterval, nodeLongRestartDuration: nodeLongRestartDuration, livenessCheckInterval: livenessCheckInterval, consensusPruneDisabledProbability: 0.1, consensusPruneMinKept: 100, consensusPruneMaxKept: 1000, tendermintRecoverCorruptedWAL: true, numStorageNodes: 3, }
TxSourceMulti uses multiple workloads.
var TxSourceMultiShort scenario.Scenario = &txSourceImpl{ runtimeImpl: *newRuntimeImpl("txsource-multi-short", "", nil), clientWorkloads: []string{ workload.NameCommission, workload.NameDelegation, workload.NameOversized, workload.NameParallel, workload.NameRegistration, workload.NameRuntime, workload.NameTransfer, }, allNodeWorkloads: []string{ workload.NameQueries, }, timeLimit: timeLimitShort, livenessCheckInterval: livenessCheckInterval, consensusPruneDisabledProbability: 0.1, consensusPruneMinKept: 100, consensusPruneMaxKept: 200, numStorageNodes: 2, }
TxSourceMultiShort uses multiple workloads for a short time.
Functions ¶
func RegisterScenarios ¶
func RegisterScenarios() error
RegisterScenarios registers all end-to-end scenarios.
Types ¶
This section is empty.
Source Files
¶
- byzantine.go
- client_expire.go
- dump_restore.go
- gas_fees.go
- halt_restore.go
- history_reindex.go
- keymanager_replicate.go
- keymanager_restart.go
- keymanager_upgrade.go
- late_start.go
- multiple_runtimes.go
- node_shutdown.go
- runtime.go
- runtime_dynamic.go
- runtime_prune.go
- runtime_upgrade.go
- sentry.go
- storage_sync.go
- storage_sync_from_registered.go
- txsource.go