Documentation
¶
Index ¶
Constants ¶
View Source
const ( BlockType_ChatAttach = "ChatAttach" BlockType_Collection = "Collection" BlockType_P2pChat = "P2pChat" BlockType_GroupFile = "GroupFile" BlockType_Channel = "Channel" BlockType_ChannelArticle = "ChannelArticle" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ChainMessageLog ¶
type ChainMessageLog struct {
entity.StatusEntity `xorm:"extends"`
UUID string `xorm:"varchar(255)" json:"uuid,omitempty"`
MessageType string `xorm:"varchar(255)" json:"messageType,omitempty"`
Action string `xorm:"varchar(255)" json:"action,omitempty"`
// 消息发送的源地址
SrcPeerId string `xorm:"varchar(255)" json:"srcPeerId,omitempty"`
// 消息发送的目标地址
TargetPeerId string `xorm:"varchar(255)" json:"targetPeerId,omitempty"`
// 消息发送的源地址
SrcAddress string `xorm:"varchar(255)" json:"srcAddress,omitempty"`
// 消息发送的目标地址
TargetAddress string `xorm:"varchar(255)" json:"targetAddress,omitempty"`
Payload string `xorm:"varchar(10485760)" json:"payload,omitempty"`
/**
* 定义消息的负载的类型
*
* 可以是定义消息类型对应的负载的实体类型,比如PeerEndpointEO
*
* 也可以是列表List
*
* 其取值来源于消息构造时的设置,如果没有设置,默认为消息类型的实体类型
*
*/
PayloadClass string `xorm:"varchar(255)" json:"payloadClass,omitempty"`
// 请求的时间戳
CreateTimestamp time.Time `json:"createTimestamp,omitempty"`
// 返回消息
ResponseType string `xorm:"varchar(255)" json:"responseType,omitempty"`
ResponseCode string `xorm:"varchar(255)" json:"responseCode,omitempty"`
ResponseMessage string `xorm:"varchar(10485760)" json:"responseMessage,omitempty"`
ResponsePayload string `xorm:"varchar(10485760)" json:"responsePayload,omitempty"`
}
func (ChainMessageLog) IdName ¶
func (ChainMessageLog) IdName() string
func (ChainMessageLog) TableName ¶
func (ChainMessageLog) TableName() string
type ConsensusLog ¶
type ConsensusLog struct {
entity.StatusEntity `xorm:"extends"`
// 主节点
PrimaryPeerId string `xorm:"varchar(255)" json:"primaryPeerId,omitempty"`
// 请求的排好序的序号
PrimarySequenceId uint64 `json:"primarySequenceId,omitempty"`
// 主节点的地址
PrimaryAddress string `xorm:"varchar(255)" json:"primaryAddress,omitempty"`
PrimaryPublicKey string `xorm:"varchar(1024)" json:"primaryPublicKey,omitempty"`
/**
* 发起协议的源节点peerClient
*/
ClientPeerId string `xorm:"varchar(255)" json:"clientPeerId,omitempty"`
ClientPublicKey string `xorm:"varchar(1024)" json:"clientPublicKey,omitempty"`
ClientAddress string `xorm:"varchar(255)" json:"clientAddress,omitempty"`
// 消息源节点的序号
PeerId string `xorm:"varchar(255)" json:"peerId,omitempty"`
Address string `xorm:"varchar(255)" json:"address,omitempty"`
PublicKey string `xorm:"varchar(1024)" json:"publicKey,omitempty"`
BlockId string `xorm:"varchar(255)" json:"blockId,omitempty"`
BlockType BlockType `xorm:"varchar(255)" json:"blockType,omitempty"`
SliceNumber uint64 `json:"sliceNumber,omitempty"`
// 交易请求的payloadhash
PayloadHash string `xorm:"varchar(255)" json:"payloadHash,omitempty"`
// 请求的结果状态
ResponseStatus string `xorm:"varchar(255)" json:"responseStatus,omitempty"`
TransactionAmount float64 `json:"transactionAmount,omitempty"`
PeerIds string `xorm:"varchar(2048)" json:"peerIds,omitempty"`
}
func (ConsensusLog) IdName ¶
func (ConsensusLog) IdName() string
func (ConsensusLog) TableName ¶
func (ConsensusLog) TableName() string
type DataBlock ¶
type DataBlock struct {
//entity.StatusEntity `xorm:"extends"`
Id uint64 `xorm:"pk" json:"-"`
CreateDate *time.Time `xorm:"created" json:"createDate,omitempty"`
UpdateDate *time.Time `xorm:"updated" json:"updateDate,omitempty"`
EntityId string `xorm:"-" json:"entityId,omitempty"`
State string `xorm:"-" json:"state$,omitempty"`
/**
* 当在一个事务中的一批交易开始执行的时候,首先保存交易,状态是Draft,
*
* 交易在共识后真正执行完毕状态变为effective,生成blockId
*
* 交易被取消,状态变成Ineffective
*/
Status string `xorm:"varchar(16)" json:"status,omitempty"`
StatusReason string `xorm:"varchar(255)" json:"statusReason,omitempty"`
StatusDate *time.Time `json:"statusDate,omitempty"`
BlockId string `xorm:"varchar(255) notnull" json:"blockId,omitempty"`
ParentBusinessNumber string `xorm:"varchar(255)" json:"parentBusinessNumber,omitempty"`
BusinessNumber string `xorm:"varchar(255)" json:"businessNumber,omitempty"`
BlockType BlockType `xorm:"varchar(255)" json:"blockType,omitempty"`
/**
* 双方的公钥不能被加密传输,因为需要根据公钥决定配对的是哪一个版本的私钥
*
* 对方的公钥有可能不存在,这时候数据没有加密,对称密钥也不存在
*
* 自己的公钥始终存在,因此签名始终可以验证
*/
PeerId string `xorm:"varchar(255)" json:"peerId,omitempty"`
PublicKey string `xorm:"varchar(1024)" json:"publicKey,omitempty"`
Address string `xorm:"varchar(255)" json:"address,omitempty"`
SecurityContext string `xorm:"varchar(255)" json:"securityContext,omitempty"`
/**
* 经过源peer的公钥加密过的对称秘钥,这个对称秘钥是随机生成,每次不同,用于加密payload
*
* 如果本字段不为空,表示负载被加密了,至少是只有源peer能够解密
*
* 这样处理的好处是判断是否加密只需datablock,而且如果只是源peer的收藏,则transactionkey为空
*/
PayloadKey string `xorm:"varchar(1024)" json:"payloadKey,omitempty"`
/**
* chainTransactions的寄送格式
*/
TransportPayload string `xorm:"varchar(10485760)" json:"transportPayload,omitempty"`
/**
* 块负载的hash,是负载的decode64 hash,然后encode64
*/
PayloadHash string `xorm:"varchar(255)" json:"payloadHash,omitempty"`
/**
* 负载源peer的签名
*/
Signature string `xorm:"varchar(1024)" json:"signature,omitempty"`
/**
* transactionKeys的寄送格式,每个交易的第一个分片有数据,保证每个交易可以单独被查看
*/
TransportKey string `xorm:"varchar(32768)" json:"transportKey,omitempty"`
/**
* 是负载的decode64 signature,然后encode64
*/
TransactionKeySignature string `xorm:"varchar(1024)" json:"transactionKeySignature,omitempty"`
/**
* 本数据块的负载被拆成分片的总数,在没有分片前是1,分片后>=1,同一交易负载的交易号相同
*/
SliceSize uint64 `xorm:"notnull" json:"sliceSize,omitempty"`
/**
* 数据块的本条分片是交易负载的第几个分片,在没有分片前是0,分片后>=0,但是<sliceSize
*/
SliceNumber uint64 `xorm:"notnull" json:"sliceNumber"`
/**
* 分片hash汇总到交易,交易汇总到块hash
*/
StateHash string `xorm:"varchar(255)" json:"stateHash,omitempty"`
TransactionKeys []*TransactionKey `xorm:"-" json:"transactionKeys,omitempty"`
// 共识可能会引入的一些可选的元数据
Metadata string `xorm:"varchar(32768)" json:"metadata,omitempty"`
Thumbnail string `xorm:"varchar(32768)" json:"thumbnail,omitempty"`
Name string `xorm:"varchar(255)" json:"name,omitempty"`
Description string `xorm:"varchar(255)" json:"description,omitempty"`
MimeType string `xorm:"varchar(255)" json:"mimeType,omitempty"`
// 由区块提议者填充的时间戳
CreateTimestamp uint64 `json:"createTimestamp,omitempty"`
ExpireDate int64 `json:"expireDate,omitempty"`
TransactionAmount float64 `json:"transactionAmount"`
// 请求的排好序的序号
PrimarySequenceId uint64 `json:"primarySequenceId,omitempty"`
PreviousBlockId string `xorm:"varchar(255)" json:"previousBlockId,omitempty"`
// 前一个区块的全局hash,也就是0:0的stateHash
PreviousBlockHash string `xorm:"varchar(255)" json:"previousBlockHash,omitempty"`
/**
* chainApp
*/
ChainAppPeerId string `xorm:"varchar(255)" json:"chainAppPeerId,omitempty"`
ChainAppPublicKey string `xorm:"varchar(1024)" json:"chainAppPublicKey,omitempty"`
ChainAppAddress string `xorm:"varchar(255)" json:"chainAppAddress,omitempty"`
/**
* primary peer
*/
PrimaryPeerId string `xorm:"varchar(255)" json:"primaryPeerId,omitempty"`
PrimaryPublicKey string `xorm:"varchar(1024)" json:"primaryPublicKey,omitempty"`
PrimaryAddress string `xorm:"varchar(255)" json:"primaryAddress,omitempty"`
PeerIds string `xorm:"varchar(2048)" json:"peerIds,omitempty"`
}
type PeerTransaction ¶
type PeerTransaction struct {
entity.StatusEntity `xorm:"extends"`
TransactionType string `xorm:"varchar(255)" json:"transactionType,omitempty"`
SrcPeerId string `xorm:"varchar(255)" json:"srcPeerId,omitempty"`
SrcPeerType string `xorm:"varchar(255)" json:"srcPeerType,omitempty"`
PrimaryPeerId string `xorm:"varchar(255)" json:"primaryPeerId,omitempty"`
TargetPeerId string `xorm:"varchar(255)" json:"targetPeerId,omitempty"`
TargetPeerType string `xorm:"varchar(255)" json:"targetPeerType,omitempty"`
BlockId string `xorm:"varchar(255) notnull" json:"blockId,omitempty"`
Amount float64 `json:"amount,omitempty"`
Currency string `xorm:"varchar(32)" json:"currency,omitempty"`
TransactionTime *time.Time `json:"transactionTime,omitempty"`
SrcPeerBeginBalance float64 `json:"srcPeerBeginBalance,omitempty"`
SrcPeerEndBalance float64 `json:"srcPeerEndBalance,omitempty"`
TargetPeerBeginBalance float64 `json:"targetPeerBeginBalance,omitempty"`
TargetPeerEndBalance float64 `json:"targetPeerEndBalance,omitempty"`
ParentBusinessNumber string `xorm:"varchar(255)" json:"parentBusinessNumber,omitempty"`
BusinessNumber string `xorm:"varchar(255)" json:"businessNumber,omitempty"`
SliceNumber uint64 `xorm:"notnull" json:"sliceNumber"`
CreateTimestamp uint64 `json:"createTimestamp,omitempty"`
Metadata string `xorm:"varchar(32768)" json:"metadata,omitempty"`
Thumbnail string `xorm:"varchar(32768)" json:"thumbnail,omitempty"`
Name string `xorm:"varchar(255)" json:"name,omitempty"`
Description string `xorm:"varchar(255)" json:"description,omitempty"`
}
func (PeerTransaction) IdName ¶
func (PeerTransaction) IdName() string
func (PeerTransaction) KeyName ¶
func (PeerTransaction) KeyName() string
func (PeerTransaction) TableName ¶
func (PeerTransaction) TableName() string
type TransactionKey ¶
type TransactionKey struct {
entity.BaseEntity `xorm:"extends"`
BlockId string `xorm:"varchar(255) notnull" json:"blockId,omitempty"`
PeerId string `xorm:"varchar(255) notnull" json:"peerId,omitempty"`
/**
* 经过目标peer的公钥加密过的对称秘钥,这个对称秘钥是随机生成,每次不同,用于加密payload
*/
PayloadKey string `xorm:"varchar(1024)" json:"payloadKey,omitempty"`
PublicKey string `xorm:"varchar(1024)" json:"publicKey,omitempty"`
Address string `xorm:"varchar(255)" json:"address,omitempty"`
PeerType string `xorm:"varchar(255)" json:"peerType,omitempty"`
/**
Key是BlockId:PeerId,用于Key检索和存储
*/
Key string `xorm:"varchar(255)" json:"key,omitempty"`
}
func (TransactionKey) IdName ¶
func (TransactionKey) IdName() string
func (TransactionKey) KeyName ¶
func (TransactionKey) KeyName() string
func (TransactionKey) TableName ¶
func (TransactionKey) TableName() string
Click to show internal directories.
Click to hide internal directories.