Versions in this module Expand all Collapse all v0 v0.4.0 Mar 25, 2024 v0.3.0 Feb 28, 2024 Changes in this version + const DefaultBlockRateMs + const DefaultConsensusTimeout + const MinBlockRateMs + const MinConsensusTimeout + const RootRound + const Timestamp + var ErrBlockRateTooSmall = errors.New("block rate too small") + var ErrConsensusIsNil = errors.New("consensus is nil") + var ErrConsensusParamsIsNil = errors.New("consensus record is nil") + var ErrEncryptionPublicKeyIsInvalid = errors.New("encryption public key is invalid") + var ErrGenesisPartitionRecordIsNil = errors.New("genesis partition record is nil") + var ErrGenesisRootIssNil = errors.New("root genesis record is nil") + var ErrInvalidConsensusTimeout = errors.New("invalid consensus timeout") + var ErrInvalidNumberOfRootValidators = errors.New("invalid number of root nodes") + var ErrKeysAreMissing = errors.New("partition keys are missing") + var ErrMissingRootValidators = errors.New("missing root nodes") + var ErrNoRootValidators = errors.New("root nodes not set") + var ErrNodeIdentifierIsEmpty = errors.New("node identifier is empty") + var ErrNodesAreMissing = errors.New("nodes are missing") + var ErrPartitionGenesisIsNil = errors.New("partition genesis is nil") + var ErrPartitionNodeIsNil = errors.New("partition node is nil") + var ErrPartitionUnicityCertificateIsNil = errors.New("partition unicity certificate is nil") + var ErrPartitionsNotFound = errors.New("root genesis has no partitions records") + var ErrPubKeyInfoEncryptionIsInvalid = errors.New("public key info encryption key is invalid") + var ErrPubKeyInfoSigningKeyIsInvalid = errors.New("public key info singing key is invalid") + var ErrPubKeyNodeIdentifierIsEmpty = errors.New("public key info node identifier is empty") + var ErrRootGenesisIsNil = errors.New("root genesis is nil") + var ErrRootGenesisRecordIsNil = errors.New("root genesis record is nil") + var ErrRootValidatorInfoMissing = errors.New("missing root node public info") + var ErrRootValidatorsSize = errors.New("registered root nodes do not match consensus total root nodes") + var ErrSignerIsNil = errors.New("signer is nil") + var ErrSigningPublicKeyIsInvalid = errors.New("signing public key is invalid") + var ErrSystemDescriptionIsNil = errors.New("system description record is nil") + var ErrT2TimeoutIsNil = errors.New("t2 timeout is zero") + var ErrUnknownHashAlgorithm = errors.New("unknown hash algorithm") + var ErrValidatorPublicInfoIsEmpty = errors.New("public key info is empty") + var ErrVerifiersEmpty = errors.New("verifier list is empty") + func CheckPartitionSystemIdentifiersUnique[T SystemDescriptionRecordGetter](records []T) error + func GetMinQuorumThreshold(totalRootValidators uint32) uint32 + func NewValidatorTrustBase(publicKeyInfo []*PublicKeyInfo) (map[string]abcrypto.Verifier, error) + func ValidatorInfoUnique(validators []*PublicKeyInfo) error + type ConsensusParams struct + BlockRateMs uint32 + ConsensusTimeoutMs uint32 + HashAlgorithm uint32 + QuorumThreshold uint32 + Signatures map[string][]byte + TotalRootValidators uint32 + func (x *ConsensusParams) Bytes() []byte + func (x *ConsensusParams) IsValid() error + func (x *ConsensusParams) Sign(id string, signer crypto.Signer) error + func (x *ConsensusParams) Verify(verifiers map[string]crypto.Verifier) error + type EvmPartitionParams struct + BlockGasLimit uint64 + GasUnitPrice uint64 + type FeeCreditBill struct + OwnerPredicate []byte + UnitID types.UnitID + type GenesisPartitionRecord struct + Certificate *types.UnicityCertificate + Nodes []*PartitionNode + SystemDescriptionRecord *SystemDescriptionRecord + func (x *GenesisPartitionRecord) GetSystemDescriptionRecord() *SystemDescriptionRecord + func (x *GenesisPartitionRecord) IsValid(verifiers map[string]crypto.Verifier, hashAlgorithm gocrypto.Hash) error + type GenesisRootRecord struct + Consensus *ConsensusParams + RootValidators []*PublicKeyInfo + func (x *GenesisRootRecord) FindPubKeyById(id string) *PublicKeyInfo + func (x *GenesisRootRecord) IsValid() error + func (x *GenesisRootRecord) Verify() error + type MoneyPartitionParams struct + SystemDescriptionRecords []*SystemDescriptionRecord + type PartitionGenesis struct + Certificate *types.UnicityCertificate + Keys []*PublicKeyInfo + Params []byte + RootValidators []*PublicKeyInfo + SystemDescriptionRecord *SystemDescriptionRecord + func (x *PartitionGenesis) FindRootPubKeyInfoById(id string) *PublicKeyInfo + func (x *PartitionGenesis) IsValid(verifiers map[string]crypto.Verifier, hashAlgorithm gocrypto.Hash) error + type PartitionNode struct + BlockCertificationRequest *certification.BlockCertificationRequest + EncryptionPublicKey []byte + NodeIdentifier string + Params []byte + SigningPublicKey []byte + T2Timeout uint32 + func (x *PartitionNode) IsValid() error + type PartitionRecord struct + SystemDescriptionRecord *SystemDescriptionRecord + Validators []*PartitionNode + func (x *PartitionRecord) GetPartitionNode(id string) *PartitionNode + func (x *PartitionRecord) GetSystemDescriptionRecord() *SystemDescriptionRecord + func (x *PartitionRecord) GetSystemIdentifier() types.SystemID + func (x *PartitionRecord) IsValid() error + type PublicKeyInfo struct + EncryptionPublicKey []byte + NodeIdentifier string + SigningPublicKey []byte + func (x *PublicKeyInfo) IsValid() error + func (x *PublicKeyInfo) NodeID() (peer.ID, error) + type RootGenesis struct + Partitions []*GenesisPartitionRecord + Root *GenesisRootRecord + func (x *RootGenesis) GetPartitionRecords() []*PartitionRecord + func (x *RootGenesis) GetRoundHash() []byte + func (x *RootGenesis) GetRoundNumber() uint64 + func (x *RootGenesis) IsValid() error + func (x *RootGenesis) NodeIDs() ([]peer.ID, error) + func (x *RootGenesis) Verify() error + type SystemDescriptionRecord struct + FeeCreditBill *FeeCreditBill + SystemIdentifier types.SystemID + T2Timeout uint32 + func (x *SystemDescriptionRecord) AddToHasher(hasher hash.Hash) + func (x *SystemDescriptionRecord) GetSystemIdentifier() types.SystemID + func (x *SystemDescriptionRecord) Hash(hashAlgorithm gocrypto.Hash) []byte + func (x *SystemDescriptionRecord) IsValid() error + type SystemDescriptionRecordGetter interface + GetSystemDescriptionRecord func() *SystemDescriptionRecord