-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
141 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,141 @@ | ||
# An example genesis configuration for a single baker at protocol version 6. | ||
# This creates a genesis with | ||
# - 1 baker with 3_000_000_000 CCD staked out of 3_500_000_000 CCD total | ||
# - a foundation account with 10_000_000_000 CCD | ||
# - 100 extra accounts with 2_000_000 CCD each | ||
# - mininum block time set for 2s | ||
|
||
protocolVersion = "6" | ||
|
||
[out] | ||
updateKeys = "./update-keys" | ||
accountKeys = "./accounts" | ||
bakerKeys = "./bakers" | ||
identityProviders = "./idps" | ||
anonymityRevokers = "./ars" | ||
genesis = "./genesis.dat" | ||
cryptographicParameters = "./global" | ||
deleteExisting = true | ||
genesisHash = "./genesis_hash" | ||
|
||
[cryptographicParameters] | ||
kind = "generate" | ||
genesisString = "Local genesis parameters." | ||
|
||
[[anonymityRevokers]] | ||
kind = "fresh" | ||
id = 1 | ||
repeat = 3 | ||
|
||
[[identityProviders]] | ||
kind = "fresh" | ||
id = 0 | ||
repeat = 3 | ||
|
||
# the baker account | ||
[[accounts]] | ||
kind = "fresh" | ||
balance = "3500000000000000" | ||
stake = "3000000000000000" | ||
template = "baker" | ||
identityProvider = 0 | ||
numKeys = 1 | ||
threshold = 1 | ||
repeat = 1 | ||
|
||
# the foundation account | ||
[[accounts]] | ||
kind = "fresh" | ||
balance = "10000000000000000" | ||
template = "foundation" | ||
identityProvider = 0 | ||
numKeys = 1 | ||
threshold = 1 | ||
repeat = 1 | ||
foundation = true | ||
|
||
# the extra accounts | ||
[[accounts]] | ||
kind = "fresh" | ||
balance = "2000000000000" | ||
template = "stagenet" | ||
identityProvider = 0 | ||
numKeys = 1 | ||
threshold = 1 | ||
repeat = 100 | ||
|
||
# update key configuration | ||
[updates] | ||
root = { threshold = 5, keys = [{kind = "fresh", repeat = 7}]} | ||
level1 = { threshold = 7, keys = [{kind = "fresh", repeat = 15}]} | ||
|
||
[updates.level2] | ||
keys = [{kind = "fresh", repeat = 7}] # 7 keys in total | ||
emergency = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
protocol = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
electionDifficulty = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
euroPerEnergy = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
microCCDPerEuro = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
foundationAccount = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
mintDistribution = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
transactionFeeDistribution = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
gasRewards = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
poolParameters = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
addAnonymityRevoker = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
addIdentityProvider = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
cooldownParameters = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
timeParameters = {authorizedKeys = [0,1,2,3,4,5,6], threshold = 7} | ||
|
||
[parameters] | ||
# Default genesis time to current time. | ||
# genesisTime = "2022-11-11T11:00:00Z" # | ||
leadershipElectionNonce = "d1bc8d3ba4afc7e109612cb73acbdddac052c93025aa1f82942edabb7deb82a1" | ||
maxBlockEnergy = 3_000_000 | ||
epochDuration = "1h" # Meaning 1 hour. | ||
signatureThreshold = {numerator = 2, denominator = 3} # Must be between 2/3 and 1. | ||
|
||
[parameters.finalization] | ||
minimumSkip = 0 | ||
committeeMaxSize = 1000 | ||
waitingTime = 100 # in milliseconds | ||
skipShrinkFactor = 0.5 | ||
skipGrowFactor = 2 | ||
delayShrinkFactor = 0.5 | ||
delayGrowFactor = 2 | ||
allowZeroDelay = true | ||
|
||
[parameters.chain] | ||
version = "v1" | ||
minBlockTime = "2s" # Meaning 2 seconds. | ||
euroPerEnergy = 0.000001 | ||
microCCDPerEuro = 100_000_000 | ||
accountCreationLimit = 10 | ||
blockEnergyLimit = 3_000_000 | ||
[parameters.chain.finalizationCommitteeParameters] | ||
minFinalizers = 5 | ||
maxFinalizers = 5 | ||
finalizersRelativeStakeThreshold = 200 # parts per hundred thousand (n / 100000). | ||
[parameters.chain.timeParameters] | ||
rewardPeriodLength = 4 # 4 epochs | ||
mintPerPayday = 2.61157877e-4 | ||
[parameters.chain.poolParameters] | ||
passiveFinalizationCommission = 1.0 | ||
passiveBakingCommission = 0.1 | ||
passiveTransactionCommission = 0.1 | ||
finalizationCommissionRange = {min = 0.5,max = 1.0} | ||
bakingCommissionRange = {min = 0.05,max = 0.1} | ||
transactionCommissionRange = {min = 0.05,max = 0.2} | ||
minimumEquityCapital = "100" | ||
capitalBound = 0.25 | ||
leverageBound = {numerator = 3, denominator = 1} | ||
[parameters.chain.cooldownParameters] | ||
poolOwnerCooldown = 3600 # in seconds | ||
delegatorCooldown = 1800 # in seconds | ||
[parameters.chain.rewardParameters] | ||
mintDistribution = { bakingReward = 0.6, finalizationReward = 0.3 } | ||
transactionFeeDistribution = { baker = 0.45, gasAccount = 0.45 } | ||
gASRewards = { baker = 0.25, finalizationProof = 0.005, accountCreation = 0.02, chainUpdate = 0.005 } | ||
[parameters.chain.timeoutParameters] | ||
base = "2s" # Meaning 2 seconds | ||
increase = 1.2 # Must be greater than 1. | ||
decrease = 0.8 # Must be between 0 and 1. |