Documentation
¶
Index ¶
- Constants
- Variables
- func BinaryToUint32(in []byte) (uint32, error)
- func CalcBlockHash(hashType string, b *commonPb.Block) ([]byte, error)
- func CalcDagHash(hashType string, dag *commonPb.DAG) ([]byte, error)
- func CalcPartialBlockHash(hashType string, b *commonPb.Block) ([]byte, error)
- func CalcRWSetHash(hashType string, set *commonPb.TxRWSet) ([]byte, error)
- func CalcRWSetRoot(hashType string, txs []*commonPb.Transaction) ([]byte, error)
- func CalcResultBytes(result *commonPb.Result) ([]byte, error)
- func CalcTxHash(hashType string, t *commonPb.Transaction) ([]byte, error)
- func CalcTxRequestHash(hashType string, t *commonPb.Transaction) ([]byte, error)
- func CalcTxResultHash(hashType string, result *commonPb.Result) ([]byte, error)
- func CalcTxVerifyWorkers(txCount int) int
- func CalcUnsignedTxBytes(t *commonPb.Transaction) ([]byte, error)
- func CalcUnsignedTxRequestBytes(txReq *commonPb.TxRequest) ([]byte, error)
- func CanProposeEmptyBlock(consensusType consensusPb.ConsensusType) bool
- func CheckChainIdFormat(chainId string) bool
- func CheckContractNameFormat(name string) bool
- func CheckEvmAddressFormat(addr string) bool
- func CheckRootCertificate(certPEM string) (bool, error)
- func CheckTxIDFormat(txID string) bool
- func CreateGenesis(cc *configPb.ChainConfig) (*commonPb.Block, []*commonPb.TxRWSet, error)
- func CurrentTimeMillisSeconds() int64
- func CurrentTimeSeconds() int64
- func DispatchTxVerifyTask(txs []*commonPb.Transaction) map[int][]*commonPb.Transaction
- func FilterBlockTxs(reqSenderOrgId string, block *commonPb.Block) *commonPb.Block
- func FormatBlock(b *commonPb.Block) string
- func FormatRWSet(set *commonPb.TxRWSet) string
- func GZipCompressBytes(data []byte) ([]byte, error)
- func GZipDeCompressBytes(data []byte) ([]byte, error)
- func GenerateCreateTopicTableDdl(t *commonPb.ContractEvent, chainId string) string
- func GenerateInstallContractPayload(contractName, version string, runtimeType commonPb.RuntimeType, ...) (*commonPb.Payload, error)
- func GenerateSaveBlockHeightWithTopicDdl(t *commonPb.ContractEvent, chainId string, blockHeight uint64) string
- func GenerateSaveContractEventDdl(t *commonPb.ContractEvent, chainId string, blockHeight uint64, eventIdx int) string
- func GenerateUpdateBlockHeightIndexDdl(blockHeight uint64) string
- func GetCertHash(_ string, userCrtPEM []byte, hashType string) ([]byte, error)
- func GetCertificateId(certPEM []byte, hashType string) ([]byte, error)
- func GetCertificateIdFromDER(certDER []byte, hashType string) ([]byte, error)
- func GetCertificateIdHex(certPEM []byte, hashType string) (string, error)
- func GetConsensusArgsFromBlock(block *commonPb.Block) (*consensusPb.BlockHeaderConsensusArgs, error)
- func GetContractByName(readObject func(contractName string, key []byte) ([]byte, error), name string) (*commonPb.Contract, error)
- func GetContractByteCodeDbKey(contractName string) []byte
- func GetContractBytecode(readObject func(contractName string, key []byte) ([]byte, error), name string) ([]byte, error)
- func GetContractDbKey(contractName string) []byte
- func GetMemberPubKeySA(member *accesscontrol.Member, getter MemberGetter) ([]byte, uint32)
- func GetNodeUidFromAddr(addr string) (string, error)
- func GetRandTxId() string
- func GetRoleFromTx(tx *commonPb.Transaction, ac protocol.AccessControlProvider) (protocol.Role, error)
- func GetSqlStatementCount(sql string) int
- func GetSqlTableName(sql string) []string
- func GetTimestampTxId() string
- func GetTimestampTxIdByNano(nano int64) string
- func GetTxIdWithSeed(seed int64) string
- func GetTxIds(txs []*commonPb.Transaction) []string
- func HasDPosTxWritesInHeader(block *commonPb.Block, chainConf protocol.ChainConf) bool
- func IsAllBlank(args ...interface{}) bool
- func IsAnyBlank(args ...interface{}) bool
- func IsConfBlock(block *commonPb.Block) bool
- func IsConfigTx(tx *commonPb.Transaction) bool
- func IsContractMgmtBlock(b *commonPb.Block) bool
- func IsContractMgmtTx(tx *commonPb.Transaction) bool
- func IsEmptyBlock(block *commonPb.Block) error
- func IsManageContractAsConfigTx(tx *commonPb.Transaction, enableSqlDB bool) bool
- func IsManagementTx(tx *commonPb.Transaction) bool
- func IsNativeContract(contractName string) bool
- func IsNativeTx(tx *commonPb.Transaction) (isNative bool, contractName string)
- func IsValidConfigTx(tx *commonPb.Transaction) bool
- func ParseCert(crtPEM []byte) (*bcx509.Certificate, error)
- func SignBlock(hashType string, singer protocol.SigningMember, b *commonPb.Block) ([]byte, []byte, error)
- func ToCamelCase(field string) string
- func Uint32ToBinary(in uint32) []byte
- func UnmarshalJsonStrKV2KVPairs(jsonStr string) ([]*commonpb.KeyValuePair, error)
- func UpdateField(params map[string][]byte, key string, config interface{}) (bool, error)
- func VerifyBlockSig(hashType string, b *commonPb.Block, ac protocol.AccessControlProvider) (bool, error)
- func VerifyCertIssue(caCerts [][]byte, intermediateCerts [][]byte, cert []byte) error
- func VerifyTxWithoutPayload(tx *commonPb.Transaction, chainId string, ac protocol.AccessControlProvider) error
- type BigInteger
- type BlockFingerPrint
- type ERC20Config
- type MemberGetter
- type StakeConfig
- type TEEProof
- func AttestationVerify(proof []byte, certOpts bcx509.VerifyOptions, reportFromChain []byte) (bool, *TEEProof, error)
- func AttestationVerifyComponents(challenge, signature, report []byte, certificate *bcx509.Certificate, ...) (bool, *TEEProof, error)
- func GrapheneAttestationVerify(proof *tee.RemoteAttestationResponse, certOpts bcx509.VerifyOptions, ...) (bool, *TEEProof, error)
Constants ¶
const ( PrefixContractInfo = "Contract:" PrefixContractByteCode = "ContractByteCode:" )
const (
DPosOrgId = "dpos_org_id"
)
const DecBase = 10
const (
KLV_LENGTH_SIZE = 4
)
const TopicTableColumnDdl = `` /* 494-byte string literal not displayed */
const TopicTableIndex = `` /* 281-byte string literal not displayed */
const TopicTableUniqueKey = `UNIQUE KEY unique_index(chain_id,block_height,tx_id,event_index)`
Variables ¶
var (
OidKeyBag = asn1.ObjectIdentifier{1, 2, 840, 113549, 1, 12, 10, 1, 1}
)
Functions ¶
func BinaryToUint32 ¶
func CalcBlockHash ¶
CalcBlockHash calculate block hash
func CalcDagHash ¶
CalcDagHash calculate DAG hash
func CalcPartialBlockHash ¶
CalcPartialBlockHash calculate partial block bytes hash contains Header without BlockHash, ConsensusArgs, Signature
func CalcRWSetHash ¶
CalcRWSetHash calculate read-write set hash return (nil, nil) if read-write set is nil
func CalcRWSetRoot ¶
func CalcRWSetRoot(hashType string, txs []*commonPb.Transaction) ([]byte, error)
CalcRWSetRoot calculate txs' read-write set root hash, following the tx order in txs
func CalcResultBytes ¶
CalcResultBytes get bytearray of result
func CalcTxHash ¶
func CalcTxHash(hashType string, t *commonPb.Transaction) ([]byte, error)
CalcTxHash calculate transaction hash, include tx.Payload, tx.signature, tx.Payload, tx.Result
func CalcTxRequestHash ¶
func CalcTxRequestHash(hashType string, t *commonPb.Transaction) ([]byte, error)
CalcTxRequestHash calculate hash of transaction request
func CalcTxResultHash ¶
CalcTxResultHash calculate hash of transaction result
func CalcTxVerifyWorkers ¶
CalcTxVerifyWorkers calculate work size of transaction verify
func CalcUnsignedTxBytes ¶
func CalcUnsignedTxBytes(t *commonPb.Transaction) ([]byte, error)
CalcUnsignedTxBytes calculate unsigned transaction bytes [request payload bytes]
func CalcUnsignedTxRequestBytes ¶
CalcUnsignedTxRequestBytes calculate unsigned transaction request bytes
func CanProposeEmptyBlock ¶
func CanProposeEmptyBlock(consensusType consensusPb.ConsensusType) bool
CanProposeEmptyBlock can empty blocks be packed
func CheckChainIdFormat ¶
func CheckContractNameFormat ¶
func CheckEvmAddressFormat ¶
func CheckRootCertificate ¶
CheckRootCertificate check the root certificate
func CheckTxIDFormat ¶
func CreateGenesis ¶
CreateGenesis create genesis block (with read-write set) based on chain config
func CurrentTimeMillisSeconds ¶
func CurrentTimeMillisSeconds() int64
CurrentTimeMillisSeconds return current unix timestamp in milliseconds
func CurrentTimeSeconds ¶
func CurrentTimeSeconds() int64
CurrentTimeSeconds return current unix timestamp in seconds
func DispatchTxVerifyTask ¶
func DispatchTxVerifyTask(txs []*commonPb.Transaction) map[int][]*commonPb.Transaction
DispatchTxVerifyTask dispatch transaction verify task
func FilterBlockTxs ¶
func GZipCompressBytes ¶
GZipCompressBytes compress bytes with GZip(BestSpeed mode).
func GZipDeCompressBytes ¶
GZipDeCompressBytes decompress bytes with GZip.
func GenerateCreateTopicTableDdl ¶
func GenerateCreateTopicTableDdl(t *commonPb.ContractEvent, chainId string) string
func GenerateInstallContractPayload ¶
func GenerateInstallContractPayload(contractName, version string, runtimeType commonPb.RuntimeType, bytecode []byte, initParameters []*commonPb.KeyValuePair) (*commonPb.Payload, error)
func GenerateSaveBlockHeightWithTopicDdl ¶
func GenerateSaveBlockHeightWithTopicDdl(t *commonPb.ContractEvent, chainId string, blockHeight uint64) string
func GetCertHash ¶
GetCertHash get certificate hash
func GetCertificateId ¶
GetCertificateId get certificate id
func GetCertificateIdFromDER ¶
GetCertificateIdFromDER get certificate id from DER
func GetCertificateIdHex ¶
GetCertificateIdHex on input a certificate in PEM format, a hash algorithm(should be the one in chain configuration), output the identity of the certificate in the form of a string (under hexadecimal encoding)
func GetConsensusArgsFromBlock ¶
func GetConsensusArgsFromBlock(block *commonPb.Block) (*consensusPb.BlockHeaderConsensusArgs, error)
GetConsensusArgsFromBlock get args from block
func GetContractByName ¶
func GetContractBytecode ¶
func GetContractDbKey ¶
func GetMemberPubKeySA ¶
func GetMemberPubKeySA(member *accesscontrol.Member, getter MemberGetter) ([]byte, uint32)
func GetNodeUidFromAddr ¶
GetNodeUidFromAddr get protocol.NodeUId from node's address
func GetRandTxId ¶
func GetRandTxId() string
GetRandTxId return hex string format random transaction id with length = 64
func GetRoleFromTx ¶
func GetRoleFromTx(tx *commonPb.Transaction, ac protocol.AccessControlProvider) (protocol.Role, error)
func GetSqlStatementCount ¶
GetSqlStatementCount 判断一个sql字符串是由多少条独立的SQL语句组成
func GetSqlTableName ¶
GetSqlTableName 获得SQL中使用到的表名,如果带有dbName.tableName,那么返回完整的dbName.tableName
func GetTimestampTxId ¶
func GetTimestampTxId() string
GetTimestampTxId return hex string format random transaction id with length = 64 GetTimestampTxId by current time, see: GetTimestampTxIdByNano eg: 687dca1d9c4fdf1652fdfc072182654f53622c496aa94c05b47d34263cd99ec9
func GetTimestampTxIdByNano ¶
GetTimestampTxIdByNano nanosecond TODO TxId is generated linearly according to Nano
func GetTxIdWithSeed ¶
GetTxIdWithSeed return tx-id with seed
func GetTxIds ¶
func GetTxIds(txs []*commonPb.Transaction) []string
func HasDPosTxWritesInHeader ¶
func IsConfBlock ¶
IsConfBlock is it a configuration block
func IsConfigTx ¶
func IsConfigTx(tx *commonPb.Transaction) bool
IsConfigTx the transaction is a config transaction or not separate blocks are required
func IsContractMgmtBlock ¶
func IsContractMgmtTx ¶
func IsContractMgmtTx(tx *commonPb.Transaction) bool
IsContractMgmtTx 是否是合约安装、升级的交易
func IsManageContractAsConfigTx ¶
func IsManageContractAsConfigTx(tx *commonPb.Transaction, enableSqlDB bool) bool
IsManageContractAsConfigTx Whether the Manager Contract is considered a configuration transaction
func IsManagementTx ¶
func IsManagementTx(tx *commonPb.Transaction) bool
IsCallBackTx the transaction is a management transaction or not separate blocks are required
func IsNativeContract ¶
IsNativeContract return is native contract name
func IsNativeTx ¶
func IsNativeTx(tx *commonPb.Transaction) (isNative bool, contractName string)
IsNativeTx check tx is a native contract invoke tx
func IsValidConfigTx ¶
func IsValidConfigTx(tx *commonPb.Transaction) bool
IsValidConfigTx the transaction is a valid config transaction or not
func ParseCert ¶
func ParseCert(crtPEM []byte) (*bcx509.Certificate, error)
ParseCert convert bytearray to certificate
func SignBlock ¶
func SignBlock(hashType string, singer protocol.SigningMember, b *commonPb.Block) ([]byte, []byte, error)
SignBlock sign the block (in fact, here we sign block hash...) with signing member return hash bytes and signature bytes
func Uint32ToBinary ¶
func UnmarshalJsonStrKV2KVPairs ¶
func UnmarshalJsonStrKV2KVPairs(jsonStr string) ([]*commonpb.KeyValuePair, error)
UnmarshalJsonStrKV2KVPairs 传入一个json字符串,该字符串key value都是string,转换为系统需要的KeyValuePair列表
func UpdateField ¶
UpdateField set the key in data by params[key] to struct public field return if the field has been changed such as key->field: block_height -> BlockHeight
func VerifyBlockSig ¶
func VerifyCertIssue ¶
VerifyRootCertIssue verify that the certificate is issued by the root/intermediate certificate caCerts caCert list, caCert means cert []byte(string)
func VerifyTxWithoutPayload ¶
func VerifyTxWithoutPayload(tx *commonPb.Transaction, chainId string, ac protocol.AccessControlProvider) error
VerifyTxWithoutPayload verify a transaction with access control provider. The payload of the transaction will not be verified.
Types ¶
type BigInteger ¶
BigInteger wrapper for big.Int
func NewBigInteger ¶
func NewBigInteger(value string) *BigInteger
func NewZeroBigInteger ¶
func NewZeroBigInteger() *BigInteger
func Sub ¶
func Sub(x, y *BigInteger) *BigInteger
func Sum ¶
func Sum(x, y *BigInteger) *BigInteger
func (*BigInteger) Add ¶
func (x *BigInteger) Add(y *BigInteger)
func (*BigInteger) Cmp ¶
func (x *BigInteger) Cmp(y *BigInteger) int
Cmp compares x and y and returns:
-1 if x < y 0 if x == y +1 if x > y
func (*BigInteger) String ¶
func (x *BigInteger) String() string
func (*BigInteger) Sub ¶
func (x *BigInteger) Sub(y *BigInteger)
type BlockFingerPrint ¶
type BlockFingerPrint string
func CalcBlockFingerPrint ¶
func CalcBlockFingerPrint(block *commonPb.Block) BlockFingerPrint
CalcBlockFingerPrint since the block has not yet formed, snapshot uses fingerprint as the possible unique value of the block
func CalcBlockFingerPrintWithoutTx ¶
func CalcBlockFingerPrintWithoutTx(block *commonPb.Block) BlockFingerPrint
CalcBlockFingerPrintWithoutTx 排除掉Tx的因素,计算Block的指纹,这样计算出来不管Block如何包含Tx,其指纹不变
func CalcFingerPrint ¶
func CalcFingerPrint(chainId string, height uint64, timestamp int64, proposer, preHash, txRoot, dagHash, rwSetRoot []byte) BlockFingerPrint
CalcFingerPrint calculate finger print
type ERC20Config ¶
type ERC20Config struct {
// contains filtered or unexported fields
}
ERC20Config for DPoS
type MemberGetter ¶
type MemberGetter interface { //GetFullMemberInfo根据CERT_HASH获得完整的Cert,根据DID获得DID Document GetFullMemberInfo(memberId []byte, mtype accesscontrol.MemberType) ([]byte, error) }
type StakeConfig ¶
type StakeConfig struct {
// contains filtered or unexported fields
}
type TEEProof ¶
type TEEProof struct { VerificationKey bccrypto.PublicKey VerificationKeyPEM []byte EncryptionKey bccrypto.EncryptKey EncryptionKeyPEM []byte Certificate *bcx509.Certificate CertificateDER []byte Report []byte Challenge []byte Signature []byte }
func AttestationVerify ¶
func AttestationVerifyComponents ¶
func AttestationVerifyComponents(challenge, signature, report []byte, certificate *bcx509.Certificate, verificationKey bccrypto.PublicKey, encryptionKey bccrypto.EncryptKey, certOpts bcx509.VerifyOptions) (bool, *TEEProof, error)
func GrapheneAttestationVerify ¶
func GrapheneAttestationVerify(proof *tee.RemoteAttestationResponse, certOpts bcx509.VerifyOptions, reportFromChain []byte) (bool, *TEEProof, error)