เดเดคเตเดฏเดจเตเดคเดฟเดเดฎเดพเดฏเดฟ เดเดฐเต เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเดจเดฟเตฝ เด เดตเดธเดพเดจเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดฎเดพเดคเตเดฐเดฎเดฒเตเดฒ, เดเดเตเดเดณเตเดเต เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต 3 เดชเตเดฐเดงเดพเดจ เดเดเดเดเตเดเตพ เดเตเตผเดเตเดเตเดฃเตเดเดคเตเดฃเตเดเต:
- เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเดเดจเดฏเตเดเตเดฏเตเด เดฐเตเดคเดฟเดเดณเตเดเตเดฏเตเด เดตเดฟเดตเดฐเดฃเด
- เดกเดพเดฑเตเดฑเดพ เดเดเดจเดฏเตเดเตเดฏเตเด เดเดเดชเดพเดเต เดฐเตเดคเดฟเดเดณเตเดเตเดฏเตเด เดตเดฟเดตเดฐเดฃเด
- เดเดฐเต เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดฌเตเดฒเตเดเตเดเตเดเตพ เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดเดฏเตเด เด เดตเดฏเตเดเต เดนเดพเดทเต เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดเดฏเดฐเด (เด เดฒเตเดฒเตเดเตเดเดฟเตฝ เดฎเดฑเตเดฑเตเดจเตเดคเตเดเตเดเดฟเดฒเตเด) เดเดชเดฏเตเดเดฟเดเตเดเต เด เดต เดเดฃเตเดเตเดคเตเดคเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจ เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเตป เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ
เดตเตเดฏเดตเดธเดพเดฏเดคเตเดคเดฟเดจเตเดณเตเดณ เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเตเดณเตเดณ เดฐเดฃเตเดเดพเดฎเดคเตเดคเต เดฒเตเดเดจเดฎเดพเดฃเดฟเดคเต, เดเดฆเตเดฏเดคเตเดคเตเดคเต
เด เดธเตเดฐเตเดธเดฟเดฒเต เดฎเตเตป เดฒเตเดเดจเดคเตเดคเตเดเตเดเตเดฑเดฟเดเตเดเต เดตเดพเดฏเดจเดเตเดเดพเตผ เดเดจเตเดจเตเดเต เดเตเดฆเดฟเดเตเด เดเตเดฆเตเดฏเดเตเดเตพ เดเตผเดฎเตเดฎเดฟเดเตเดเตเดฎเตเดชเตเตพ, เดเดคเต เดถเตเดฐเดฆเตเดงเดฟเดเตเดเตเดฃเตเดเดคเดพเดฃเต: เด เดธเดพเดนเดเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเตป เดกเดพเดฑเตเดฑ เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต LevelDB เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต, เดเดจเตเดจเดพเตฝ เดฎเดฑเตเดฑเตเดจเตเดจเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเตฝ เดจเดฟเดจเตเดจเต เดจเดฟเดเตเดเดณเต เดคเดเดฏเตเดจเตเดจเดฟเดฒเตเดฒ, เดชเดฑเดฏเตเด, MySQL. เดเดจเดฟ เด เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดเดจ เดจเตเดเตเดเดพเด.
เดเดเดชเดพเดเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเดเดญเดฟเดเตเดเดพเด:
เด เดคเดฟเตปเตเดฑเต เดกเดพเดฑเตเดฑ เดเดเดจ เดเดคเดพ:
type TX struct {
DataType byte
TxHash string
TxType byte
Timestamp int64
INs []TxIn
OUTs []TxOut
}
type TxIn struct {
ThatTxHash string
TxOutN int
ByteCode string
}
type TxOut struct {
Value int
ByteCode string
}
TX เดกเดพเดฑเตเดฑเดพ เดคเดฐเด (เดเดเดชเดพเดเต 2-เดจเต), เด เดเดเดชเดพเดเดฟเตปเตเดฑเต เดนเดพเดทเต, เดเดเดชเดพเดเดฟเตปเตเดฑเต เดคเดฐเด, เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเต, เดเตปเดชเตเดเตเดเตเดเดณเตเด เดเดเตเดเตเดชเตเดเตเดเตเดเดณเตเด เดเดจเตเดจเดฟเดต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต. TxIn เดเตปเดชเตเดเตเดเตเดเตพ, เดเดเตเดเตโเดชเตเดเตเดเต เดชเดฐเดพเดฎเตผเดถเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดเดชเดพเดเดฟเตปเตเดฑเต เดนเดพเดทเต, เด เดเดเตเดเตโเดชเตเดเตเดเดฟเตปเตเดฑเตเดฏเตเด เดฌเตเดฑเตเดฑเตโเดเตเดกเดฟเตปเตเดฑเตเดฏเตเด เดเดฃเตเดฃเด เดเดจเตเดจเดฟเดต เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต, เดเตเดเดพเดคเต TxOut เดเดเตเดเตโเดชเตเดเตเดเตเดเตพ เดเตเดฑเดเตเดเต เดฎเตเดฒเตเดฏเดตเตเด เดฌเตเดฑเตเดฑเตเดเตเดกเตเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเดฐเต เดเดเดชเดพเดเดฟเดจเต เด เดคเดฟเตปเตเดฑเต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดเดจเตเดคเตเดเตเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเตเดฏเตเดฏเดพเดจเดพเดเตเดฎเตเดจเตเดจเต เดเดชเตเดชเตเตพ เดจเตเดเตเดเดพเด, เด เดคเดพเดฏเดคเต. เดจเดฎเตเดเตเดเต เดฐเตเดคเดฟเดเตพ เดจเตเดเตเดเดพเด.
เดเดฐเต เดเดเดชเดพเดเต เดธเตเดทเตเดเดฟเดเตเดเดพเตป, เดเดเดชเดพเดเต เดเดชเดฏเตเดเดฟเดเตเดเตเด.NewTransaction(txtype byte) *TX เดซเดเดเตโเดทเตป.
AddTxIn(thattxhash []byte, txoutn int, code []byte) (*TxIn, error) เดฐเตเดคเดฟ เดเดเดชเดพเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดเตปเดชเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเต.
AddTxOut(value int, data []byte) (*TxOut, error) เดฐเตเดคเดฟ เดเดเดชเดพเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดเตเดเตเดชเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเต.
ToBytes() []byte เดฐเตเดคเดฟ เดเดเดชเดพเดเดฟเดจเต เดเดฐเต เดฌเตเดฑเตเดฑเต เดธเตเดฒเตเดธเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.
เดเตปเตเดฑเตเดฃเตฝ เดซเดเดเตโเดทเตป preByteHash(bytes []byte) เดธเตเดเตเดฐเดฟเดเดเต, JavaScript เดเดชเตเดฒเดฟเดเตเดเตเดทเดจเตเดเดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจ เดเตเดฐเดพเตปเดธเดพเดเตเดทเตป เดนเดพเดทเตเดเตพเดเตเดเต เด เดจเตเดฏเตเดเตเดฏเดฎเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเต, Build() เดฒเตเด Check() เดเดจเตเดจเดฟเดตเดฏเดฟเดฒเตเด เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
Build() เดฐเตเดคเดฟ เดเตเดฐเดพเตปเดธเดพเดเตเดทเตป เดนเดพเดทเดฟเดจเต เดเดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดฐเตเดคเดฟเดฏเดฟเตฝ เดธเดเตเดเดฎเดพเดเตเดเตเดจเตเดจเต: tx.TxHash = preByteHash(tx.ToBytes()).
ToJSON() เดธเตเดเตเดฐเดฟเดเดเต เดฐเตเดคเดฟ เดเดฐเต เดเดเดชเดพเดเดฟเดจเต JSON เดธเตเดเตเดฐเดฟเดเดเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.
FromJSON(data []byte) เดชเดฟเดถเดเต เดฐเตเดคเดฟ เดเดฐเต เดฌเตเดฑเตเดฑเต เดธเตเดฒเตเดธเดพเดฏเดฟ เดเตเดฎเดพเดฑเดฟเดฏ JSON เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดเดฐเต เดเดเดชเดพเดเต เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเตเดเตเดเต() เดฌเตเตพ เดฐเตเดคเดฟ, เดเตเดฐเดพเตปเดธเดพเดเตเดทเตป เดนเดพเดทเต เดซเตเตฝเดกเดฟเตฝ เดจเดฟเดจเตเดจเต เดฒเดญเดฟเดเตเดเตเดจเตเดจ เดนเดพเดทเดฟเดจเต เด เดเดเดชเดพเดเต เดนเดพเดทเดฟเดเดเต เดเตเดฏเตเดคเดคเดฟเตปเตเดฑเต เดซเดฒเดฎเดพเดฏเดฟ เดฒเดญเดฟเดเตเด เดนเดพเดทเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเต (เดนเดพเดทเต เดซเตเตฝเดกเต เด เดตเดเดฃเดฟเดเตเดเต).
เดเดเดชเดพเดเตเดเตพ เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเตเตผเดคเตเดคเต:
เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเดเดจ เดเตเดเตเดคเตฝ เดตเดฒเตเดคเดพเดฃเต:
type Block struct {
DataType byte
BlockHeight int
Timestamp int64
HeaderSize int
PrevBlockHash string
SelfBlockHash string
TxsHash string
MerkleRoot string
CreatorPublicKey string
CreatorSig string
Version int
TxsN int
Txs []transaction.TX
}
DataType เดกเดพเดฑเตเดฑ เดคเดฐเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต, เดจเตเดกเต เด เดคเต เดเดชเดฏเตเดเดฟเดเตเดเตเดเดฏเตเด เดเดฐเต เดเดเดชเดพเดเดฟเตฝ เดจเดฟเดจเตเดจเต เดฎเดฑเตเดฑเต เดกเดพเดฑเตเดฑเดฏเดฟเตฝ เดจเดฟเดจเตเดจเต เดฌเตเดฒเตเดเตเดเดฟเดจเต เดตเตเตผเดคเดฟเดฐเดฟเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเดฐเต เดฌเตเดฒเตเดเตเดเดฟเดจเต เด เดฎเตเดฒเตเดฏเด 1 เดเดฃเต.
BlockHeight เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดเดฏเดฐเด เดธเดเดญเดฐเดฟเดเตเดเตเดจเตเดจเต.
เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเต เดเตเดเดธเตเดฑเตเดฑเดพเดฎเตเดชเต.
HeaderSize เดเดจเตเดจเดคเต เดฌเตเดฑเตเดฑเตเดเดณเดฟเดฒเต เดฌเตเดฒเตเดเตเดเต เดตเดฒเตเดชเตเดชเดฎเดพเดฃเต.
PrevBlockHash เดเดจเตเดจเดคเต เดฎเตเดฎเตเดชเดคเตเดคเต เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเดพเดฃเต, เดเตเดเดพเดคเต SelfBlockHash เดเดจเตเดจเดคเต เดจเดฟเดฒเดตเดฟเดฒเตเดณเตเดณเดคเดฟเตปเตเดฑเต เดนเดพเดทเตเดฎเดพเดฃเต.
TxsHash เดเดจเตเดจเดคเต เดเดเดชเดพเดเตเดเดณเตเดเต เดเดฐเต เดชเตเดคเต เดนเดพเดทเดพเดฃเต.
เดฎเตเตผเดเตเดเตฝ เดฎเดฐเดคเตเดคเดฟเตปเตเดฑเต เดตเตเดฐเดพเดฃเต เดฎเตเตผเดเตเดเตฝ เดฑเตเดเตเดเต.
เดซเตเตฝเดกเตเดเดณเดฟเตฝ เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดธเตเดฐเดทเตเดเดพเดตเดฟเตปเตเดฑเต เดชเตเดคเต เดเต, เดธเตเดฐเดทเตเดเดพเดตเดฟเตปเตเดฑเต เดเดชเตเดชเต, เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดชเดคเดฟเดชเตเดชเต, เดฌเตเดฒเตเดเตเดเดฟเดฒเต เดเดเดชเดพเดเตเดเดณเตเดเต เดเดฃเตเดฃเด, เด เดเดเดชเดพเดเตเดเตพ เดเดจเตเดจเดฟเดตเดฏเตเดฃเตเดเต.
เด
เดคเดฟเตปเตเดฑเต เดฐเตเดคเดฟเดเตพ เดจเตเดเตเดเดพเด:
เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต, เดฌเตเดฒเตเดเตเดเต.NewBlock() เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเตเด: NewBlock(prevBlockHash เดธเตเดเตเดฐเดฟเดเดเต, เดเดฏเดฐเด int) *เดฌเตเดฒเตเดเตเดเต, เดเดคเต เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตฝ เดธเตเดทเตโเดเดฟเดเตเด เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดฎเตเตป เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเตเด เดเดฏเดฐเด เดธเตเดฑเตเดฑเตเด เดเดเตเดเตเดเตเดจเตเดจเต. เดคเดฐเด เดชเดพเดเตเดเตเดเต เดธเตเดฅเดฟเดฐเดพเดเตเดเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเด เดฌเตเดฒเตเดเตเดเต เดคเดฐเดตเตเด เดธเดเตเดเตเดเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจเต:
b.DataType = types.BLOCK_TYPE.
AddTx(tx *transaction.TX) เดฐเตเดคเดฟ เดเดฐเต เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเดฐเต เดเดเดชเดพเดเต เดเตเตผเดเตเดเตเดจเตเดจเต.
เดฌเดฟเตฝเดกเต () เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดซเตเตฝเดกเตเดเดณเดฟเดฒเตเดเตเดเต เดฎเตเดฒเตเดฏเดเตเดเตพ เดฒเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดคเดฟเตปเตเดฑเต เดจเดฟเดฒเดตเดฟเดฒเต เดนเดพเดทเต เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดธเดเตเดเดฎเดพเดเตเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
ToBytesHeader() []เดฌเตเดฑเตเดฑเต เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเต เดคเดฒเดเตเดเตเดเตเดเดฟเดจเต (เดเดเดชเดพเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต) เดเดฐเต เดฌเตเดฑเตเดฑเต เดธเตเดฒเตเดธเดพเดเตเดเดฟ เดฎเดพเดฑเตเดฑเตเดจเตเดจเต.
ToJSON() เดธเตเดเตเดฐเดฟเดเดเต เดฐเตเดคเดฟ เดกเดพเดฑเตเดฑเดฏเตเดเต เดเดฐเต เดธเตเดเตเดฐเดฟเดเดเต เดชเตเดฐเดพเดคเดฟเดจเดฟเดงเตเดฏเดคเตเดคเดฟเตฝ เดฌเตเดฒเตเดเตเดเดฟเดจเต JSON เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
FromJSON(data []byte) เดชเดฟเดถเดเต เดฐเตเดคเดฟ JSON-เตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดกเดพเดฑเตเดฑ เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดเดเดจเดฏเดฟเดฒเตเดเตเดเต เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
เดเตเดเตเดเต() เดฌเตเตพ เดฐเตเดคเดฟ เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดนเดพเดทเต เดเดจเดฑเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดเดฏเตเด เดฌเตเดฒเตเดเตเดเต เดนเดพเดทเต เดซเตเตฝเดกเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏเดฟเดฐเดฟเดเตเดเตเดจเตเดจเดคเตเดฎเดพเดฏเดฟ เดคเดพเดฐเดคเดฎเตเดฏเด เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
GetTxsHash() เดธเตเดเตเดฐเดฟเดเดเต เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเดฟเดฒเต เดเดฒเตเดฒเดพ เดเดเดชเดพเดเตเดเดณเตเดเตเดฏเตเด เดฎเตเดคเตเดคเด เดนเดพเดทเต เดจเตฝเดเตเดจเตเดจเต.
GetMerkleRoot() เดฐเตเดคเดฟ เดเดฐเต เดฌเตเดฒเตเดเตเดเดฟเดฒเต เดเดเดชเดพเดเตเดเตพเดเตเดเดพเดฏเดฟ Merkle เดเตเดฐเตเดฏเตเดเต เดฑเตเดเตเดเต เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเตเดจเตเดจเต.
Sign(privk string) เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเต เดธเตเดฐเดทเตเดเดพเดตเดฟเตปเตเดฑเต เดธเตเดตเดเดพเดฐเตเดฏ เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดธเตเตป เดเตเดฏเตเดฏเตเดจเตเดจเต.
SetHeight(height int) เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดเดฏเดฐเด เดฌเตเดฒเตเดเตเดเต เดเดเดจ เดซเตเตฝเดกเดฟเดฒเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเต.
GetHeight() int เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเต เดเดเดจเดฏเตเดเต เด เดจเตเดฌเดจเตเดง เดซเตเตฝเดกเดฟเตฝ เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดเดฏเดฐเด เดจเตฝเดเตเดจเตเดจเต.
ToGOBBytes() []เดฌเตเดฑเตเดฑเต เดฐเตเดคเดฟ GOB เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดเตปเดเตเดกเต เดเตเดฏเตเดฏเตเดเดฏเตเด เด เดคเต เดเดฐเต เดฌเตเดฑเตเดฑเต เดธเตเดฒเตเดธเดพเดฏเดฟ เดจเตฝเดเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต.
FromGOBBytes(data []byte) เดชเดฟเดถเดเต เดฐเตเดคเดฟ GOB เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดชเดพเดธเตเดธเดพเดเตเดเดฟเดฏ เดฌเตเดฑเตเดฑเต เดธเตเดฒเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เดฌเตเดฒเตเดเตเดเต เดเดเดจเดฏเดฟเดฒเตเดเตเดเต เดฌเตเดฒเตเดเตเดเต เดกเดพเดฑเตเดฑ เดเดดเตเดคเตเดจเตเดจเต.
GetHash() เดธเตเดเตเดฐเดฟเดเดเต เดฐเตเดคเดฟ เดคเดจเตเดจเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเต เดจเตฝเดเตเดจเตเดจเต.
GetPrevHash() เดธเตเดเตเดฐเดฟเดเดเต เดฐเตเดคเดฟ เดฎเตเดฎเตเดชเดคเตเดคเต เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเต เดจเตฝเดเตเดจเตเดจเต.
SetPublicKey(pubk string) เดฐเตเดคเดฟ เดฌเตเดฒเตเดเตเดเต เดธเตเดฐเดทเตเดเดพเดตเดฟเตปเตเดฑเต เดชเตเดคเต เดเต เดฌเตเดฒเตเดเตเดเดฟเดฒเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเต.
เด เดเตเดเดจเต, เดฌเตเดฒเตเดเตเดเต เดเดฌเตโเดเดเตเดฑเตเดฑเดฟเตปเตเดฑเต เดฐเตเดคเดฟเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต, เดจเตเดฑเตเดฑเตโเดตเตผเดเตเดเดฟเดฒเตเดเต เดธเดเดชเตเดฐเตเดทเดฃเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดฒเตเดตเตฝเดกเดฟเดฌเดฟ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดเดฐเต เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดจเดฎเตเดเตเดเต เดเดณเตเดชเตเดชเดคเตเดคเดฟเตฝ เดชเดฐเดฟเดตเตผเดคเตเดคเดจเด เดเตเดฏเตเดฏเดพเตป เดเดดเดฟเดฏเตเด.
เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดฒเตเดเตเดเต เดธเดเดฐเดเตเดทเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเตป เดชเดพเดเตเดเตเดเดฟเตปเตเดฑเต เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ เดเดคเตเดคเดฐเดตเดพเดฆเดฟเดเดณเดพเดฃเต:
เดเดคเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต, เดฌเตเดฒเตเดเตเดเต IBlock เดเตปเตเดฑเตผเดซเตเดธเต เดจเดเดชเตเดชเดฟเดฒเดพเดเตเดเดฃเด:
type IGOBBytes interface {
ToGOBBytes() []byte
FromGOBBytes(data []byte) error
}
type IBlock interface {
IGOBBytes
GetHash() string
GetPrevHash() string
GetHeight() int
Check() bool
}
init() เดซเดเดเตเดทเดจเดฟเตฝ เดชเดพเดเตเดเตเดเต เดเดฐเดเดญเดฟเดเตเดเตเดฎเตเดชเตเตพ เดเดฐเดฟเดเตเดเตฝ เดกเดพเดฑเตเดฑเดพเดฌเตเดธเต เดเดฃเดเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเดชเตเดชเตเดเตเดจเตเดจเต:
db, err = leveldb.OpenFile(BLOCKCHAIN_DB_DEBUG, nil).
CloseDB() เดเดจเตเดจเดคเต db.Cloce() เดเดจเตเดจเดคเดฟเดจเดพเดฏเตเดณเตเดณ เดเดฐเต เดฑเดพเดชเตเดชเดฑเดพเดฃเต - เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเตเดณเตเดณ เดเดฃเดเตเดทเตป เด เดเดฏเตเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดชเดพเดเตเดเตเดเต เดซเดเดเตเดทเดจเตเดเตพเดเตเดเตเดชเตเดชเด เดชเตเดฐเดตเตผเดคเตเดคเดฟเดเตเดเดคเดฟเดจเต เดถเตเดทเด เดตเดฟเดณเดฟเดเตเดเตเดจเตเดจเต.
SetTargetBlockHash(hash string) เดชเดฟเดถเดเต เดซเดเดเตเดทเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต BLOCK_HASH เดธเตเดฅเดฟเดฐเดพเดเตเดเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเดฟเดฒเดตเดฟเดฒเต เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเต เดเดดเตเดคเตเดจเตเดจเต.
GetTargetBlockHash() (เดธเตเดเตเดฐเดฟเดเดเต, เดชเดฟเดถเดเต) เดซเดเดเตเดทเตป เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดจเดฟเดฒเดตเดฟเดฒเต เดฌเตเดฒเตเดเตเดเดฟเตปเตเดฑเต เดนเดพเดทเต เดจเตฝเดเตเดจเตเดจเต.
SetTargetBlockHeight(height int) เดชเดฟเดถเดเต เดซเดเดเตเดทเตป, BLOCK_HEIGHT เดธเตเดฅเดฟเดฐเดพเดเตเดเด เดตเตเดฏเดเตเดคเดฎเดพเดเตเดเดฟเดฏ เดเต เดเดชเดฏเตเดเดฟเดเตเดเต เดจเตเดกเดฟเดจเตเดณเตเดณ เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเตป เดเดฏเดฐเดคเตเดคเดฟเตปเตเดฑเต เดฎเตเดฒเตเดฏเด เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเดฒเตเดเตเดเต เดเดดเตเดคเตเดจเตเดจเต.
GetTargetBlockHeight() (int, error) เดซเดเดเตโเดทเตป, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเดฟเดฐเดฟเดเตเดเตเดจเตเดจ เดเดฐเต เดจเตเดกเดฟเดจเดพเดฏเดฟ เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเตปเตเดฑเต เดเดฏเดฐเด เดจเตฝเดเตเดจเตเดจเต.
เดเตเดเตเดเตเดฌเตเดฒเตเดเตเดเต(เดฌเตเดฒเตเดเตเดเต เดเดฌเตเดฒเตเดเตเดเต) เดฌเตเตพ เดซเดเดเตเดทเตป เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดฒเตเดเตเดเต เด เดฌเตเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดถเดฐเดฟเดฏเดพเดฃเต เดเดจเตเดจเต เดชเดฐเดฟเดถเตเดงเดฟเดเตเดเตเดจเตเดจเต.
AddBlock(block IBlock) เดชเดฟเดถเดเต เดชเตเดฐเดตเตผเดคเตเดคเดจเด เดฌเตเดฒเตเดเตเดเตเดเตเดฏเดฟเดจเดฟเดฒเตเดเตเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเต.
เดฌเตเดฒเตเดเตเดเตเดเตพ เดตเตเดฃเตเดเตเดเตเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เดเดพเดฃเตเดจเตเดจเดคเดฟเดจเตเดฎเตเดณเตเดณ เดชเตเดฐเดตเตผเดคเตเดคเดจเดเตเดเตพ blockchain เดชเดพเดเตเดเตเดเดฟเตปเตเดฑเต explore.go เดซเดฏเดฒเดฟเดฒเตเดฃเตเดเต:
GetBlockByHash(hash string) (*block.Block, error) เดซเดเดเตโเดทเตป เดเดฐเต เดถเตเดจเตเดฏเดฎเดพเดฏ เดฌเตเดฒเตเดเตเดเต เดเดฌเตโเดเดเตโเดฑเตเดฑเต เดธเตเดทเตโเดเดฟเดเตเดเตเดจเตเดจเต, เดกเดพเดฑเตเดฑเดพเดฌเตเดธเดฟเตฝ เดจเดฟเดจเตเดจเต เด เดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดฌเตเดฒเตเดเตเดเต เดฒเตเดกเต เดเตเดฏเตเดฏเตเดจเตเดจเต, เด เดคเดฟเตปเตเดฑเต เดนเดพเดทเต เด เดคเดฟเดฒเตเดเตเดเต เดเตเดฎเดพเดฑเดฟ, เด เดคเดฟเดฒเตเดเตเดเต เดเดฐเต เดชเตเดฏเดฟเตปเตเดฑเตผ เดคเดฟเดฐเดฟเดเต เดจเตฝเดเตเดจเตเดจเต.
เดฌเตเดฒเตเดเตเดเตโเดเตเดฏเดฟเตป เดชเดพเดเตเดเตเดเดฟเตปเตเดฑเต genesis.go เดซเดฏเดฒเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ Genesis() เดชเดฟเดถเดเต เดซเดเดเตโเดทเตป เดตเดดเดฟเดฏเดพเดฃเต เดเดฐเต เดเดจเดฟเดคเด เดฌเตเดฒเตเดเตเดเต เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต.
WebSocket เดฎเตเดเตเดเดพเดจเดฟเดธเด เดเดชเดฏเตเดเดฟเดเตเดเต เดเดฐเต เดจเตเดกเดฟเดฒเตเดเตเดเต เดเตเดฒเดฏเตปเตเดฑเตเดเดณเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเดคเดฟเดจเตเดเตเดเตเดฑเดฟเดเตเดเต เด
เดเตเดคเตเดค เดฒเตเดเดจเด เดธเดเดธเดพเดฐเดฟเดเตเดเตเด.
เด
เดตเดฒเดเดฌเด: www.habr.com