prysm-pulse/sharding/params/config.go
Terence Tsao 7c08587d4c sharding: fixed comments
Former-commit-id: cfdbfb5f1fc3ef087f6e9551a4009fa19e8dbc3c [formerly 05cefa891ccddeb2045cc3ca4fd205d904288a44]
Former-commit-id: d4bc6b0dd7b894fb85f654c6de5106353b9dce60
2018-06-12 16:30:43 -07:00

41 lines
1.9 KiB
Go

// Package params defines important configuration options to be used when instantiating
// objects within the sharding package. For example, it defines objects such as a
// ShardConfig that will be useful when creating new shard instances.
package params
import (
"math/big"
"github.com/ethereum/go-ethereum/common"
)
// DefaultShardConfig contains default configs for node to use in the sharded universe
var DefaultShardConfig = ShardConfig{
SMCAddress: common.HexToAddress("0x0"),
PeriodLength: 5,
NotaryDeposit: new(big.Int).Exp(big.NewInt(10), big.NewInt(21), nil), // 1000 ETH
NotaryLockupLength: 16128,
ProposerLockupLength: 48,
NotaryCommitteeSize: 135,
NotaryQuorumSize: 90,
NotaryChallengePeriod: 25,
}
// DefaultShardChainConfig contains default chain configs of an individual shard.
var DefaultShardChainConfig = ShardChainConfig{}
// ShardConfig contains configs for node to participate in the sharded universe.
type ShardConfig struct {
SMCAddress common.Address // SMCAddress is the address of SMC in mainchain.
PeriodLength int64 // PeriodLength is num of blocks in period.
NotaryDeposit *big.Int // NotaryDeposit is a required deposit size in wei.
NotaryLockupLength int64 // NotaryLockupLength to lockup notary deposit from time of deregistration.
ProposerLockupLength int64 // ProposerLockupLength to lockup proposer deposit from time of deregistration.
NotaryCommitteeSize int64 // NotaryCommitSize sampled per block from the notaries pool per period per shard.
NotaryQuorumSize int64 // NotaryQuorumSize votes the collation needs to get accepted to the canonical chain.
NotaryChallengePeriod int64 // NotaryChallengePeriod is the duration a notary has to store collations for.
}
// ShardChainConfig contains chain config of an individual shard. Still to be designed.
type ShardChainConfig struct{}