entity

package
v0.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2021 License: AGPL-3.0 Imports: 2 Imported by: 0

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 BlockType

type BlockType string

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"`
}

func (DataBlock) IdName

func (DataBlock) IdName() string

func (DataBlock) KeyName

func (DataBlock) KeyName() string

func (DataBlock) TableName

func (DataBlock) TableName() string

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

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL