impl

package
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Mar 8, 2019 License: Apache-2.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrHashCalculationFailed = errors.New("Hash Calculation Failed Error")

ErrHashCalculationFailed 변수는 Hash 계산 중 발생한 에러를 정의한다.

Functions

This section is empty.

Types

type DefaultBlock

type DefaultBlock struct {
	Seal      []byte
	PrevSeal  []byte
	Height    uint64
	TxList    []*DefaultTransaction
	TxSeal    [][]byte
	Timestamp time.Time
	Creator   string
}

func NewEmptyBlock

func NewEmptyBlock(prevSeal []byte, height uint64, creator string) *DefaultBlock

func (*DefaultBlock) Deserialize

func (block *DefaultBlock) Deserialize(serializedBlock []byte) error

func (*DefaultBlock) GetCreator

func (block *DefaultBlock) GetCreator() string

func (*DefaultBlock) GetHeight

func (block *DefaultBlock) GetHeight() uint64

func (*DefaultBlock) GetPrevSeal

func (block *DefaultBlock) GetPrevSeal() []byte

func (*DefaultBlock) GetSeal

func (block *DefaultBlock) GetSeal() []byte

func (*DefaultBlock) GetTimestamp

func (block *DefaultBlock) GetTimestamp() time.Time

func (*DefaultBlock) GetTxList

func (block *DefaultBlock) GetTxList() []common.Transaction

func (*DefaultBlock) GetTxSeal

func (block *DefaultBlock) GetTxSeal() [][]byte

func (*DefaultBlock) IsPrev

func (block *DefaultBlock) IsPrev(serializedPrevBlock []byte) bool

func (*DefaultBlock) IsReadyToPublish

func (block *DefaultBlock) IsReadyToPublish() bool

func (*DefaultBlock) PutTx

func (block *DefaultBlock) PutTx(transaction common.Transaction) error

func (*DefaultBlock) Serialize

func (block *DefaultBlock) Serialize() ([]byte, error)

func (*DefaultBlock) SetCreator

func (block *DefaultBlock) SetCreator(creator string)

func (*DefaultBlock) SetHeight

func (block *DefaultBlock) SetHeight(height uint64)

func (*DefaultBlock) SetPrevSeal

func (block *DefaultBlock) SetPrevSeal(prevSeal []byte)

func (*DefaultBlock) SetSeal

func (block *DefaultBlock) SetSeal(seal []byte)

func (*DefaultBlock) SetTimestamp

func (block *DefaultBlock) SetTimestamp(currentTime time.Time)

func (*DefaultBlock) SetTxSeal

func (block *DefaultBlock) SetTxSeal(txSeal [][]byte)

type DefaultTransaction

type DefaultTransaction struct {
	ID        string
	Status    Status
	PeerID    string
	Timestamp time.Time
	TxData    *TxData
	Signature []byte
}

DefaultTransaction 구조체는 Transaction 인터페이스의 기본 구현체이다.

func NewDefaultTransaction

func NewDefaultTransaction(peerID string, txID string, timestamp time.Time, txData *TxData) *DefaultTransaction

NewDefaultTransaction 함수는 새로운 DefaultTransaction를 반환한다.

func (*DefaultTransaction) CalculateSeal

func (t *DefaultTransaction) CalculateSeal() ([]byte, error)

CalculateSeal 함수는 Transaction 고유의 Hash 값을 계산하여 반환한다.

func (*DefaultTransaction) Deserialize

func (t *DefaultTransaction) Deserialize(serializedBytes []byte) error

func (*DefaultTransaction) GetContent

func (t *DefaultTransaction) GetContent() ([]byte, error)

func (*DefaultTransaction) GetID

func (t *DefaultTransaction) GetID() string

GetID 함수는 Transaction의 ID 값을 반환한다.

func (*DefaultTransaction) GetSignature

func (t *DefaultTransaction) GetSignature() []byte

func (*DefaultTransaction) Serialize

func (t *DefaultTransaction) Serialize() ([]byte, error)

Serialize 함수는 Transaction을 []byte 형태로 변환한다.

func (*DefaultTransaction) SetSignature

func (t *DefaultTransaction) SetSignature(signature []byte)

type DefaultValidator

type DefaultValidator struct{}

DefaultValidator 객체는 Validator interface를 구현한 객체.

func (*DefaultValidator) BuildSeal

func (t *DefaultValidator) BuildSeal(timeStamp time.Time, prevSeal []byte, txSeal [][]byte, creator string) ([]byte, error)

BuildSeal 함수는 block 객체를 받아서 Seal 값을 만들고, Seal 값을 반환한다. 인풋 파라미터의 block에 자동으로 할당해주지는 않는다.

func (*DefaultValidator) BuildTxSeal

func (t *DefaultValidator) BuildTxSeal(txList []common.Transaction) ([][]byte, error)

BuildTxSeal 함수는 Transaction 배열을 받아서 TxSeal을 생성하여 반환한다.

func (*DefaultValidator) ValidateSeal

func (t *DefaultValidator) ValidateSeal(seal []byte, comparisonBlock common.Block) (bool, error)

ValidateSeal 함수는 원래 Seal 값과 주어진 Seal 값(comparisonSeal)을 비교하여, 올바른지 검증한다.

func (*DefaultValidator) ValidateTransaction

func (t *DefaultValidator) ValidateTransaction(txSeal [][]byte, transaction common.Transaction) (bool, error)

ValidateTransaction 함수는 주어진 Transaction이 이 txSeal에 올바로 있는지를 확인한다.

func (*DefaultValidator) ValidateTxSeal

func (t *DefaultValidator) ValidateTxSeal(txSeal [][]byte, txList []common.Transaction) (bool, error)

ValidateTxSeal 함수는 주어진 Transaction 리스트에 따라 주어진 transaction Seal을 검증함.

type FunctionType

type FunctionType string

FunctionType 은 ... TODO: FunctionType 타입에 대한 상수값들이 없음

type Params

type Params struct {
	Type     int
	Function string
	Args     []string
}

Params 구조체는 Jsonrpc에서 invoke하는 함수의 패러미터를 정의한다.

func NewParams

func NewParams(paramsType int, function string, args []string) Params

NewParams 함수는 새로운 Params 객체를 반환한다. (포인터가 아니라 객체 자체를 반환한다.)

type Status

type Status int

Status 변수는 Transaction의 상태를 Unconfirmed, Confirmed, Unknown 중 하나로 표현함.

const (
	StatusTransactionInvalid Status = 0
	StatusTransactionValid   Status = 1
)

Transaction의 Status를 정의하는 상수들 TODO: 필요한 것인지 논의가 필요함.

type TxData

type TxData struct {
	Jsonrpc string
	Method  TxDataType
	Params  Params
	ID      string
}

TxData 구조체는 Jsonrpc에서 invoke하는 함수를 정의한다.

func NewTxData

func NewTxData(jsonrpc string, method TxDataType, params Params, contractID string) *TxData

NewTxData 함수는 새로운 TxData 객체를 반환한다.

type TxDataType

type TxDataType string

TxDataType 변수는 Transaction의 함수가 invoke인지 query인지 표현한다.

const (
	Invoke TxDataType = "invoke"
	Query  TxDataType = "query"
)

TxData의 Type을 정의하는 상수들

Jump to

Keyboard shortcuts

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