Documentation
¶
Index ¶
- Constants
- func CheckExternalIDsLength(extIDs [][]byte, lengths []int) bool
- type IdentityChainStructure
- type NewBitcoinKeyStructure
- func (nbks *NewBitcoinKeyStructure) DecodeFromExtIDs(extIDs [][]byte) error
- func (nbks *NewBitcoinKeyStructure) GetChainID() (rval interfaces.IHash)
- func (nbks *NewBitcoinKeyStructure) MarshalForSig() []byte
- func (nbks *NewBitcoinKeyStructure) ToExternalIDs() [][]byte
- func (nbks *NewBitcoinKeyStructure) VerifySignature(key1 interfaces.IHash) error
- type NewBlockSigningKeyStruct
- func (nbsk *NewBlockSigningKeyStruct) DecodeFromExtIDs(extIDs [][]byte) error
- func (nbsk *NewBlockSigningKeyStruct) GetChainID() (rval interfaces.IHash)
- func (nbsk *NewBlockSigningKeyStruct) MarshalForSig() []byte
- func (nbsk *NewBlockSigningKeyStruct) ToExternalIDs() [][]byte
- func (nbsk *NewBlockSigningKeyStruct) VerifySignature(key1 interfaces.IHash) error
- type NewCoinbaseAddressStruct
- func (ncas *NewCoinbaseAddressStruct) DecodeFromExtIDs(extIDs [][]byte) error
- func (ncas *NewCoinbaseAddressStruct) GetChainID() (rval interfaces.IHash)
- func (ncas *NewCoinbaseAddressStruct) MarshalForSig() []byte
- func (ncas *NewCoinbaseAddressStruct) SetFunctionName()
- func (ncas *NewCoinbaseAddressStruct) ToExternalIDs() [][]byte
- func (ncas *NewCoinbaseAddressStruct) VerifySignature(key1 interfaces.IHash) error
- type NewCoinbaseCancelStruct
- func (ncas *NewCoinbaseCancelStruct) DecodeFromExtIDs(extIDs [][]byte) error
- func (ncas *NewCoinbaseCancelStruct) GetChainID() (rval interfaces.IHash)
- func (ncas *NewCoinbaseCancelStruct) MarshalForSig() []byte
- func (ncas *NewCoinbaseCancelStruct) SetFunctionName()
- func (ncas *NewCoinbaseCancelStruct) ToExternalIDs() [][]byte
- func (ncas *NewCoinbaseCancelStruct) VerifySignature(key1 interfaces.IHash) error
- type NewMatryoshkaHashStructure
- func (nmh *NewMatryoshkaHashStructure) DecodeFromExtIDs(extIDs [][]byte) error
- func (nmh *NewMatryoshkaHashStructure) GetChainID() (rval interfaces.IHash)
- func (nmh *NewMatryoshkaHashStructure) MarshalForSig() []byte
- func (nmh *NewMatryoshkaHashStructure) ToExternalIDs() [][]byte
- func (nmh *NewMatryoshkaHashStructure) VerifySignature(key1 interfaces.IHash) error
- type NewServerEfficiencyStruct
- func (nses *NewServerEfficiencyStruct) DecodeFromExtIDs(extIDs [][]byte) error
- func (nses *NewServerEfficiencyStruct) GetChainID() (rval interfaces.IHash)
- func (nses *NewServerEfficiencyStruct) MarshalForSig() []byte
- func (nses *NewServerEfficiencyStruct) SetFunctionName()
- func (nses *NewServerEfficiencyStruct) ToExternalIDs() [][]byte
- func (nses *NewServerEfficiencyStruct) VerifySignature(key1 interfaces.IHash) error
- type RegisterFactomIdentityStructure
- func (rfi *RegisterFactomIdentityStructure) DecodeFromExtIDs(extIDs [][]byte) error
- func (rfi *RegisterFactomIdentityStructure) GetChainID() (rval interfaces.IHash)
- func (a *RegisterFactomIdentityStructure) IsSameAs(b *RegisterFactomIdentityStructure) bool
- func (r *RegisterFactomIdentityStructure) MarshalBinary() (rval []byte, err error)
- func (rfi *RegisterFactomIdentityStructure) MarshalForSig() []byte
- func (rfi *RegisterFactomIdentityStructure) ToExternalIDs() [][]byte
- func (e *RegisterFactomIdentityStructure) UnmarshalBinary(p []byte) error
- func (e *RegisterFactomIdentityStructure) UnmarshalBinaryData(p []byte) (newData []byte, err error)
- func (rfi *RegisterFactomIdentityStructure) VerifySignature(key1 interfaces.IHash) error
- type RegisterFactomIdentityStructureSort
- type RegisterServerManagementStructure
- func (rsm *RegisterServerManagementStructure) DecodeFromExtIDs(extIDs [][]byte) error
- func (rsm *RegisterServerManagementStructure) GetChainID() (rval interfaces.IHash)
- func (rsm *RegisterServerManagementStructure) MarshalForSig() []byte
- func (rsm *RegisterServerManagementStructure) ToExternalIDs() [][]byte
- func (rsm *RegisterServerManagementStructure) VerifySignature(key1 interfaces.IHash) error
- type ServerManagementStructure
Constants ¶
const ( IdentityPrivateKeyPrefix1 = "4db6c9" IdentityPrivateKeyPrefix2 = "4db6e7" IdentityPrivateKeyPrefix3 = "4db705" IdentityPrivateKeyPrefix4 = "4db723" IdentityPublicKeyPrefix1 = "3fbeba" IdentityPublicKeyPrefix2 = "3fbed8" IdentityPublicKeyPrefix3 = "3fbef6" IdentityPublicKeyPrefix4 = "3fbf14" )
Variables ¶
This section is empty.
Functions ¶
func CheckExternalIDsLength ¶
Checking the external ids if they match the needed lengths
Types ¶
type IdentityChainStructure ¶
type IdentityChainStructure struct {
//A Chain Name is constructed with 7 elements.
//The first element is a binary string 0 signifying the version.
Version byte
//The second element is ASCII bytes "Identity Chain".
FunctionName []byte //"Identity Chain"
//The third element is the level 1 identity key in binary form.
Key1 interfaces.IHash
//Elements 4-6 are levels 2-4.
Key2 interfaces.IHash
Key3 interfaces.IHash
Key4 interfaces.IHash
//The 7th element is a nonce which is iterated until the first 3 bytes match 0x888888.
Nonce []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#factom-identity-chain-creation
func DecodeIdentityChainStructureFromExtIDs ¶
func DecodeIdentityChainStructureFromExtIDs(extIDs [][]byte) (*IdentityChainStructure, error)
func (*IdentityChainStructure) DecodeFromExtIDs ¶
func (ics *IdentityChainStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*IdentityChainStructure) GetChainID ¶
func (ics *IdentityChainStructure) GetChainID() (rval interfaces.IHash)
func (*IdentityChainStructure) ToExternalIDs ¶
func (ics *IdentityChainStructure) ToExternalIDs() [][]byte
type NewBitcoinKeyStructure ¶
type NewBitcoinKeyStructure struct {
//It has a version
Version byte
//a text string saying "New Bitcoin Key"
FunctionName []byte //"New Bitcoin Key"
//It specifies the root identity chainID.
RootIdentityChainID interfaces.IHash
//Next is a byte signifying the bitcoin key level.
//It is 0 origin indexed, so with only 1 key it would be 0x00.
BitcoinKeyLevel byte
//The next extID specifies what type of Bitcoin key is used, P2PKH or P2SH.
KeyType byte
//Next is the 20 byte Bitcoin key.
NewKey [20]byte
//Seventh is a timestamp, which prevents replay attacks.
Timestamp []byte
//Eighth is the identity key preimage.
PreimageIdentityKey []byte
//Last is the signature of the serialized version through the timestamp.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#add-new-bitcoin-key
func DecodeNewBitcoinKeyStructureFromExtIDs ¶
func DecodeNewBitcoinKeyStructureFromExtIDs(extIDs [][]byte) (*NewBitcoinKeyStructure, error)
func (*NewBitcoinKeyStructure) DecodeFromExtIDs ¶
func (nbks *NewBitcoinKeyStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewBitcoinKeyStructure) GetChainID ¶
func (nbks *NewBitcoinKeyStructure) GetChainID() (rval interfaces.IHash)
func (*NewBitcoinKeyStructure) MarshalForSig ¶
func (nbks *NewBitcoinKeyStructure) MarshalForSig() []byte
func (*NewBitcoinKeyStructure) ToExternalIDs ¶
func (nbks *NewBitcoinKeyStructure) ToExternalIDs() [][]byte
func (*NewBitcoinKeyStructure) VerifySignature ¶
func (nbks *NewBitcoinKeyStructure) VerifySignature(key1 interfaces.IHash) error
type NewBlockSigningKeyStruct ¶
type NewBlockSigningKeyStruct struct {
//The first part is a version binary string 0.
Version byte
//The second is the ASCII string "New Block Signing Key".
FunctionName []byte //"New Block Signing Key"
//The third is the root identity ChainID.
RootIdentityChainID interfaces.IHash
//Forth is the new public key being asserted.
NewPublicKey []byte
//5th is the timestamp with an 8 byte epoch time.
Timestamp []byte
//Next is the identity key preimage.
PreimageIdentityKey []byte
//7th is the signature of the serialized version, text, chainID, new key, and the timestamp.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#add-new-block-signing-key
func DecodeNewBlockSigningKeyStructFromExtIDs ¶
func DecodeNewBlockSigningKeyStructFromExtIDs(extIDs [][]byte) (*NewBlockSigningKeyStruct, error)
func (*NewBlockSigningKeyStruct) DecodeFromExtIDs ¶
func (nbsk *NewBlockSigningKeyStruct) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewBlockSigningKeyStruct) GetChainID ¶
func (nbsk *NewBlockSigningKeyStruct) GetChainID() (rval interfaces.IHash)
func (*NewBlockSigningKeyStruct) MarshalForSig ¶
func (nbsk *NewBlockSigningKeyStruct) MarshalForSig() []byte
func (*NewBlockSigningKeyStruct) ToExternalIDs ¶
func (nbsk *NewBlockSigningKeyStruct) ToExternalIDs() [][]byte
func (*NewBlockSigningKeyStruct) VerifySignature ¶
func (nbsk *NewBlockSigningKeyStruct) VerifySignature(key1 interfaces.IHash) error
type NewCoinbaseAddressStruct ¶
type NewCoinbaseAddressStruct struct {
//The first part is a version binary string 0.
Version byte
//The second is the ASCII string "Coinbase Address".
FunctionName []byte //"Server Efficiency"
//The third is the root identity ChainID.
RootIdentityChainID interfaces.IHash
//Forth is the new coinbase address
CoinbaseAddress interfaces.IHash
//5th is the timestamp with an 8 byte epoch time.
Timestamp []byte
//6th is the identity key preimage.
PreimageIdentityKey []byte
//7th is the signature of the serialized version through timestamp.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#coinbase-address
func DecodeNewNewCoinbaseAddressStructFromExtIDs ¶
func DecodeNewNewCoinbaseAddressStructFromExtIDs(extIDs [][]byte) (*NewCoinbaseAddressStruct, error)
func (*NewCoinbaseAddressStruct) DecodeFromExtIDs ¶
func (ncas *NewCoinbaseAddressStruct) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewCoinbaseAddressStruct) GetChainID ¶
func (ncas *NewCoinbaseAddressStruct) GetChainID() (rval interfaces.IHash)
func (*NewCoinbaseAddressStruct) MarshalForSig ¶
func (ncas *NewCoinbaseAddressStruct) MarshalForSig() []byte
func (*NewCoinbaseAddressStruct) SetFunctionName ¶
func (ncas *NewCoinbaseAddressStruct) SetFunctionName()
func (*NewCoinbaseAddressStruct) ToExternalIDs ¶
func (ncas *NewCoinbaseAddressStruct) ToExternalIDs() [][]byte
func (*NewCoinbaseAddressStruct) VerifySignature ¶
func (ncas *NewCoinbaseAddressStruct) VerifySignature(key1 interfaces.IHash) error
type NewCoinbaseCancelStruct ¶
type NewCoinbaseCancelStruct struct {
//The first part is a version binary string 0.
Version byte
//The second is the ASCII string "Coinbase Address".
FunctionName []byte //"Server Efficiency"
//The third is the root identity ChainID.
RootIdentityChainID interfaces.IHash
//Forth is coinbase descriptor height
CoinbaseDescriptorHeight uint32
// Fifth is the descriptor index
CoinbaseDescriptorIndex uint32
//6th is the identity key preimage.
PreimageIdentityKey []byte
//7th is the signature of the serialized version, through descriptor index.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#coinbase-cancel
func DecodeNewCoinbaseCancelStructFromExtIDs ¶
func DecodeNewCoinbaseCancelStructFromExtIDs(extIDs [][]byte) (*NewCoinbaseCancelStruct, error)
func (*NewCoinbaseCancelStruct) DecodeFromExtIDs ¶
func (ncas *NewCoinbaseCancelStruct) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewCoinbaseCancelStruct) GetChainID ¶
func (ncas *NewCoinbaseCancelStruct) GetChainID() (rval interfaces.IHash)
func (*NewCoinbaseCancelStruct) MarshalForSig ¶
func (ncas *NewCoinbaseCancelStruct) MarshalForSig() []byte
func (*NewCoinbaseCancelStruct) SetFunctionName ¶
func (ncas *NewCoinbaseCancelStruct) SetFunctionName()
func (*NewCoinbaseCancelStruct) ToExternalIDs ¶
func (ncas *NewCoinbaseCancelStruct) ToExternalIDs() [][]byte
func (*NewCoinbaseCancelStruct) VerifySignature ¶
func (ncas *NewCoinbaseCancelStruct) VerifySignature(key1 interfaces.IHash) error
type NewMatryoshkaHashStructure ¶
type NewMatryoshkaHashStructure struct {
//It starts with the version
Version byte
//and the text "New Matryoshka Hash".
FunctionName []byte //"New Matryoshka Hash"
//Next is the root identity chainID.
RootIdentityChainID interfaces.IHash
//Forth is the outermost M-hash.
OutermostMHash interfaces.IHash
//Fifth is a timestamp.
Timestamp []byte
//Sixth is the root identity key preimage.
PreimageIdentityKey []byte
//Last is the signature of the version through the timestamp.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#add-new-matryoshka-hash
func DecodeNewMatryoshkaHashStructureFromExtIDs ¶
func DecodeNewMatryoshkaHashStructureFromExtIDs(extIDs [][]byte) (*NewMatryoshkaHashStructure, error)
func (*NewMatryoshkaHashStructure) DecodeFromExtIDs ¶
func (nmh *NewMatryoshkaHashStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewMatryoshkaHashStructure) GetChainID ¶
func (nmh *NewMatryoshkaHashStructure) GetChainID() (rval interfaces.IHash)
func (*NewMatryoshkaHashStructure) MarshalForSig ¶
func (nmh *NewMatryoshkaHashStructure) MarshalForSig() []byte
func (*NewMatryoshkaHashStructure) ToExternalIDs ¶
func (nmh *NewMatryoshkaHashStructure) ToExternalIDs() [][]byte
func (*NewMatryoshkaHashStructure) VerifySignature ¶
func (nmh *NewMatryoshkaHashStructure) VerifySignature(key1 interfaces.IHash) error
type NewServerEfficiencyStruct ¶
type NewServerEfficiencyStruct struct {
//The first part is a version binary string 0.
Version byte
//The second is the ASCII string "Server Efficiency".
FunctionName []byte //"Server Efficiency"
//The third is the root identity ChainID.
RootIdentityChainID interfaces.IHash
//Forth is the new efficiency
Efficiency uint16
//5th is the timestamp with an 8 byte epoch time.
Timestamp []byte
//6th is the identity key preimage.
PreimageIdentityKey []byte
//7th is the signature of the serialized version through timestamp.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#add-server-efficiency
func DecodeNewServerEfficiencyStructFromExtIDs ¶
func DecodeNewServerEfficiencyStructFromExtIDs(extIDs [][]byte) (*NewServerEfficiencyStruct, error)
func (*NewServerEfficiencyStruct) DecodeFromExtIDs ¶
func (nses *NewServerEfficiencyStruct) DecodeFromExtIDs(extIDs [][]byte) error
func (*NewServerEfficiencyStruct) GetChainID ¶
func (nses *NewServerEfficiencyStruct) GetChainID() (rval interfaces.IHash)
func (*NewServerEfficiencyStruct) MarshalForSig ¶
func (nses *NewServerEfficiencyStruct) MarshalForSig() []byte
func (*NewServerEfficiencyStruct) SetFunctionName ¶
func (nses *NewServerEfficiencyStruct) SetFunctionName()
func (*NewServerEfficiencyStruct) ToExternalIDs ¶
func (nses *NewServerEfficiencyStruct) ToExternalIDs() [][]byte
func (*NewServerEfficiencyStruct) VerifySignature ¶
func (nses *NewServerEfficiencyStruct) VerifySignature(key1 interfaces.IHash) error
type RegisterFactomIdentityStructure ¶
type RegisterFactomIdentityStructure struct {
//The registration message has 5 ExtIDs.
//The first ExtID is a binary string 0 signifying the version.
Version byte
//The second ExtID has 24 ASCII bytes "Register Factom Identity".
FunctionName []byte //"Register Factom Identity"
//The third ExtID is the binary encoded ChainID of the identity. It will start with 888888.
IdentityChainID interfaces.IHash //888888...
//The 4th ExtID is the preimage to the identity key. It includes the type prefix (0x01) and the raw ed25519 pubkey.
PreimageIdentityKey []byte
//The 5th ExtID is the signature of the first, second, and third ExtIDs serialized together.
Signature []byte
}
https://github.com/DCNT-developer/dcntocs/blob/master/Identity.md#factom-identity-registration
func DecodeRegisterFactomIdentityStructureFromExtIDs ¶
func DecodeRegisterFactomIdentityStructureFromExtIDs(extIDs [][]byte) (*RegisterFactomIdentityStructure, error)
func RandomRegisterFactomIdentityStructure ¶
func RandomRegisterFactomIdentityStructure() *RegisterFactomIdentityStructure
func (*RegisterFactomIdentityStructure) DecodeFromExtIDs ¶
func (rfi *RegisterFactomIdentityStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*RegisterFactomIdentityStructure) GetChainID ¶
func (rfi *RegisterFactomIdentityStructure) GetChainID() (rval interfaces.IHash)
func (*RegisterFactomIdentityStructure) IsSameAs ¶
func (a *RegisterFactomIdentityStructure) IsSameAs(b *RegisterFactomIdentityStructure) bool
func (*RegisterFactomIdentityStructure) MarshalBinary ¶
func (r *RegisterFactomIdentityStructure) MarshalBinary() (rval []byte, err error)
func (*RegisterFactomIdentityStructure) MarshalForSig ¶
func (rfi *RegisterFactomIdentityStructure) MarshalForSig() []byte
func (*RegisterFactomIdentityStructure) ToExternalIDs ¶
func (rfi *RegisterFactomIdentityStructure) ToExternalIDs() [][]byte
func (*RegisterFactomIdentityStructure) UnmarshalBinary ¶
func (e *RegisterFactomIdentityStructure) UnmarshalBinary(p []byte) error
func (*RegisterFactomIdentityStructure) UnmarshalBinaryData ¶
func (e *RegisterFactomIdentityStructure) UnmarshalBinaryData(p []byte) (newData []byte, err error)
func (*RegisterFactomIdentityStructure) VerifySignature ¶
func (rfi *RegisterFactomIdentityStructure) VerifySignature(key1 interfaces.IHash) error
type RegisterFactomIdentityStructureSort ¶
type RegisterFactomIdentityStructureSort []*RegisterFactomIdentityStructure
func (RegisterFactomIdentityStructureSort) Len ¶
func (p RegisterFactomIdentityStructureSort) Len() int
func (RegisterFactomIdentityStructureSort) Less ¶
func (p RegisterFactomIdentityStructureSort) Less(i, j int) bool
func (RegisterFactomIdentityStructureSort) Swap ¶
func (p RegisterFactomIdentityStructureSort) Swap(i, j int)
type RegisterServerManagementStructure ¶
type RegisterServerManagementStructure struct {
//The first ExtID is a binary string 0 signifying the version.
Version byte
//The second ExtID has 26 ASCII bytes "Register Server Management".
FunctionName []byte //"Register Server Management"
//The third ExtID is the binary encoded ChainID of the identity. It will start with 888888.
SubchainChainID interfaces.IHash //888888...
//The 4th ExtID is the preimage to the identity key. It includes the type prefix (0x01) and the raw ed25519 pubkey.
PreimageIdentityKey []byte
//The 5th ExtID is the signature of the first, second, and third ExtIDs serialized together.
Signature []byte
}
func DecodeRegisterServerManagementStructureFromExtIDs ¶
func DecodeRegisterServerManagementStructureFromExtIDs(extIDs [][]byte) (*RegisterServerManagementStructure, error)
func (*RegisterServerManagementStructure) DecodeFromExtIDs ¶
func (rsm *RegisterServerManagementStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*RegisterServerManagementStructure) GetChainID ¶
func (rsm *RegisterServerManagementStructure) GetChainID() (rval interfaces.IHash)
func (*RegisterServerManagementStructure) MarshalForSig ¶
func (rsm *RegisterServerManagementStructure) MarshalForSig() []byte
func (*RegisterServerManagementStructure) ToExternalIDs ¶
func (rsm *RegisterServerManagementStructure) ToExternalIDs() [][]byte
func (*RegisterServerManagementStructure) VerifySignature ¶
func (rsm *RegisterServerManagementStructure) VerifySignature(key1 interfaces.IHash) error
type ServerManagementStructure ¶
type ServerManagementStructure struct {
//This chain is created after the identity chain is known.
//The Chain Name first element is a version, 0.
Version byte
//The second is the ASCII string "Server Management".
FunctionName []byte //"Server Management"
//The 3rd consists of the root identity chainID.
RootIdentityChainID interfaces.IHash
////The 4th is a nonce which makes the first 6 bytes of the chainID match 0x888888.
Nonce []byte
}
func DecodeServerManagementStructureFromExtIDs ¶
func DecodeServerManagementStructureFromExtIDs(extIDs [][]byte) (*ServerManagementStructure, error)
func (*ServerManagementStructure) DecodeFromExtIDs ¶
func (sm *ServerManagementStructure) DecodeFromExtIDs(extIDs [][]byte) error
func (*ServerManagementStructure) GetChainID ¶
func (sm *ServerManagementStructure) GetChainID() (rval interfaces.IHash)
func (*ServerManagementStructure) ToExternalIDs ¶
func (sm *ServerManagementStructure) ToExternalIDs() [][]byte