เจ เฉฐเจค เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเจฒเจพเจเจเฉเจจ เจจเจพเจฒ เจเจคเจฎ เจเจฐเจจ เจฒเจ เจจเจพ เจเจฟ เจธเจฟเจฐเจซ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ, เจธเจพเจจเฉเฉฐ เจธเจพเจกเฉ เจชเฉเจฐเฉเจเฉเจเจ เจตเจฟเฉฑเจ 3 เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจคเฉฑเจค เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉ:
- เจฌเจฒเจพเจ เจกเจพเจเจพ เจฌเจฃเจคเจฐ เจ เจคเฉ เจขเฉฐเจ เจฆเจพ เจตเฉเจฐเจตเจพ
- เจกเจพเจเจพ เจฌเจฃเจคเจฐ เจ เจคเฉ เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเฉ เจคเจฐเฉเจเจฟเจเจ เจฆเจพ เจตเฉเจฐเจตเจพ
- เจฌเจฒเจพเจเจเฉเจจ เจซเฉฐเจเจธเจผเจจ เจเฉ เจเฉฑเจ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจฌเจฒเจพเจเจพเจ เจจเฉเฉฐ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจเจฐเจฆเฉ เจนเจจ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจเจนเจจเจพเจ เจฆเฉ เจนเฉเจธเจผ เจเจพเจ เจเจเจพเจ (เจเจพเจ เจเฉเจ เจนเฉเจฐ) เจฆเฉเจเจฐเจพ เจฒเฉฑเจญเจฆเฉ เจนเจจเฅค
เจเจน เจเจฆเจฏเฉเจ เจฒเจ เจฌเจฒเจพเจเจเฉเจจ เจฌเจพเจฐเฉ เจฆเฉเจเจพ เจฒเฉเจ เจนเฉ, เจชเจนเจฟเจฒเจพ
เจเจนเจจเจพเจ เจชเฉเจฐเจธเจผเจจเจพเจ เจจเฉเฉฐ เจฏเจพเจฆ เจเจฐเจฆเฉ เจนเฉเจ เจเฉ เจชเจพเจ เจเจพเจ เจจเฉ เจฎเฉเจจเฉเฉฐ เจเจธ เจฒเฉเฉ เจตเจฟเฉฑเจ เจชเจฟเจเจฒเฉ เจฒเฉเจ เจฌเจพเจฐเฉ เจชเฉเฉฑเจเฉ เจธเจจ, เจเจน เจจเฉเจ เจเฉเจคเจพ เจเจพเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉ: เจเจธ เจเฉเจธ เจตเจฟเฉฑเจ, เจฒเฉเจตเจฒเจกเฉเจฌเฉ เจกเฉเจเจพเจฌเฉเจธ เจฆเฉ เจตเจฐเจคเฉเจ เจฌเจฒเจพเจเจเฉเจจ เจกเฉเจเจพ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจจ เจฒเจ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจชเจฐ เจเฉเจ เจตเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจเจฟเจธเฉ เจนเฉเจฐ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจคเฉเจ เจจเจนเฉเจ เจฐเฉเจเจฆเจพ, เจเจนเฉ, 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() []เจฌเจพเจเจ เจตเจฟเจงเฉ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ เจจเฉเฉฐ เจฌเจพเจเจ เจธเจฒเจพเจเจธ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจฆเจฟเฉฐเจฆเฉ เจนเฉเฅค
เจ เฉฐเจฆเจฐเฉเจจเฉ เจซเฉฐเจเจธเจผเจจ preByteHash(bytes []byte) เจธเจเฉเจฐเจฟเฉฐเจ เจจเฉเฉฐ JavaScript เจเจชเจฒเฉเจเฉเจธเจผเจจเจพเจ เจคเฉเจ เจคเจฟเจเจฐ เจเฉเจคเฉ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ เจนเฉเจธเจผ เจฆเฉ เจ เจจเฉเจเฉเจฒ เจฌเจฃเจพเจเจฃ เจฒเจ Build() เจ เจคเฉ Check() เจตเจฟเฉฑเจ เจตเจฐเจคเจฟเจ เจเจพเจเจฆเจพ เจนเฉเฅค
เจฌเจฟเจฒเจก() เจตเจฟเจงเฉ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจ เจนเฉเจธเจผ เจจเฉเฉฐ เจเจธ เจคเจฐเฉเจนเจพเจ เจธเฉเฉฑเจ เจเจฐเจฆเฉ เจนเฉ: 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 เจนเฉเฅค
เจฌเจฒเจพเจเจนเจพเจเจ เจฌเจฒเจพเจ เจฆเฉ เจเจเจพเจ เจจเฉเฉฐ เจธเจเฉเจฐ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจพเจเจฎเจธเจเฉเจเจช เจเจพเจเจฎเจธเจเฉเจเจชเฅค
HeaderSize เจฌเจพเจเจ เจตเจฟเฉฑเจ เจฌเจฒเจพเจ เจฆเจพ เจเจเจพเจฐ เจนเฉเฅค
PrevBlockHash เจชเจฟเจเจฒเฉ เจฌเจฒเจพเจ เจฆเจพ เจนเฉเจธเจผ เจนเฉ, เจ
เจคเฉ SelfBlockHash เจฎเฉเจเฉเจฆเจพ เจเฉฑเจ เจฆเจพ เจนเฉเจธเจผ เจนเฉเฅค
TxsHash เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเจพ เจเฉฑเจ เจเจฎ เจนเฉเจธเจผ เจนเฉเฅค
MerkleRoot Merkle เจฐเฉเฉฑเจ เจฆเฉ เจเฉเฉเจน เจนเฉ.
เจนเฉเจฐ เจเฉเจคเจฐเจพเจ เจตเจฟเฉฑเจ เจฌเจฒเจพเจ เจฆเฉ เจธเจฟเจฐเจเจฃเจนเจพเจฐ เจฆเฉ เจเจจเจคเจ เจเฉเฉฐเจเฉ, เจธเจฟเจฐเจเจฃเจนเจพเจฐ เจฆเฉ เจฆเจธเจคเจเจค, เจฌเจฒเจพเจ เจฆเจพ เจธเฉฐเจธเจเจฐเจฃ, เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจฒเฉเจฃ-เจฆเฉเจฃ เจฆเฉ เจธเฉฐเจเจฟเจ, เจ เจคเฉ เจเจน เจฒเฉเจฃ-เจฆเฉเจฃ เจเฉเจฆ เจนเฉเฉฐเจฆเฉ เจนเจจเฅค
เจเจ เจเจธเจฆเฉ เจคเจฐเฉเจเจฟเจเจ เจจเฉเฉฐ เจตเฉเจเฉเจ:
เจเฉฑเจ เจฌเจฒเจพเจ เจฌเจฃเจพเจเจฃ เจฒเจ, block.NewBlock() เจซเฉฐเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเฉ: NewBlock(prevBlockHash string, height int) *Block, เจเฉ เจชเจฟเจเจฒเฉ เจฌเจฒเจพเจ เจฆเฉ เจนเฉเจธเจผ เจฒเฉเจเจฆเจพ เจนเฉ เจ
เจคเฉ เจฌเจฒเจพเจเจเฉเจจ เจตเจฟเฉฑเจ เจฌเจฃเจพเจ เจเจ เจฌเจฒเจพเจ เจฒเจ เจเจเจพเจ เจธเฉเฉฑเจ เจเจฐเจฆเจพ เจนเฉเฅค เจฌเจฒเจพเจ เจฆเฉ เจเจฟเจธเจฎ เจจเฉเฉฐ เจชเฉเจเฉเจ เจธเจฅเจฟเจฐ เจเจฟเจธเจฎเจพเจ เจคเฉเจ เจตเฉ เจธเฉเฉฑเจ เจเฉเจคเจพ เจเจฟเจ เจนเฉ:
b.DataType = types.BLOCK_TYPE.
AddTx(tx *transaction.TX) เจตเจฟเจงเฉ เจเฉฑเจ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฒเฉเจฃ-เจฆเฉเจฃ เจเฉเฉเจฆเฉ เจนเฉเฅค
เจฌเจฟเจฒเจก() เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจฆเฉ เจเฉเจคเจฐเจพเจ เจตเจฟเฉฑเจ เจฎเฉเฉฑเจฒเจพเจ เจจเฉเฉฐ เจฒเฉเจก เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธเจฆเฉ เจฎเฉเจเฉเจฆเจพ เจนเฉเจธเจผ เจจเฉเฉฐ เจคเจฟเจเจฐ เจ เจคเฉ เจธเฉเจ เจเจฐเจฆเฉ เจนเฉเฅค
ToBytesHeader() []เจฌเจพเจเจ เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจนเฉเจกเจฐ (เจฌเจฟเจจเจพเจ เจฒเฉเจฃ-เจฆเฉเจฃ) เจจเฉเฉฐ เจฌเจพเจเจ เจธเจฒเจพเจเจธ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฆเฉ เจนเฉเฅค
ToJSON() เจธเจเฉเจฐเจฟเฉฐเจ เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจจเฉเฉฐ JSON เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจกเจพเจเจพ เจฆเฉ เจเฉฑเจ เจธเจเฉเจฐเจฟเฉฐเจ เจชเฉเจธเจผเจเจพเจฐเฉ เจตเจฟเฉฑเจ เจฌเจฆเจฒเจฆเฉ เจนเฉเฅค
FromJSON(data []byte) เจเจฒเจคเฉ เจตเจฟเจงเฉ JSON เจคเฉเจ เจเฉฑเจ เจฌเจฒเจพเจ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ เจกเจพเจเจพ เจฒเฉเจก เจเจฐเจฆเฉ เจนเฉเฅค
เจเฉเฉฑเจ() เจฌเฉเจฒ เจตเจฟเจงเฉ เจเฉฑเจ เจฌเจฒเจพเจ เจนเฉเจธเจผ เจคเจฟเจเจฐ เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธเจฆเฉ เจคเฉเจฒเจจเจพ เจฌเจฒเจพเจ เจนเฉเจธเจผ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจจเจพเจฒ เจเจฐเจฆเฉ เจนเฉเฅค
GetTxsHash() เจธเจเฉเจฐเจฟเฉฐเจ เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจธเจพเจฐเฉ เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจเจพเจ เจฆเฉ เจเฉเฉฑเจฒ เจนเฉเจธเจผ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
GetMerkleRoot() เจตเจฟเจงเฉ เจเฉฑเจ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจฒเฉเจฃ-เจฆเฉเจฃ เจฒเจ Merkle เจเฉเจฐเฉ เจฆเฉ เจเฉเฉเจน เจจเฉเฉฐ เจฆเจฐเจธเจพเจเจเจฆเฉ เจนเฉเฅค
เจธเจพเจเจจ (privk เจธเจคเจฐ) เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจธเจฟเจฐเจเจฃเจนเจพเจฐ เจฆเฉ เจชเฉเจฐเจพเจเจตเฉเจ เจเฉเฉฐเจเฉ เจจเจพเจฒ เจเฉฑเจ เจฌเจฒเจพเจ เจจเฉเฉฐ เจธเจพเจเจจ เจเจฐเจฆเฉ เจนเฉเฅค
SetHeight(height int) เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจฆเฉ เจเจเจพเจ เจจเฉเฉฐ เจฌเจฒเจพเจ เจฌเจฃเจคเจฐ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจฒเจฟเจเจฆเฉ เจนเฉเฅค
GetHeight() int เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจขเจพเจเจเฉ เจฆเฉ เจ เจจเฉเจธเจพเจฐเฉ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจฆเจฐเจธเจพเจ เจ เจจเฉเจธเจพเจฐ เจฌเจฒเจพเจ เจฆเฉ เจเจเจพเจ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
ToGOBBytes() []เจฌเจพเจเจ เจตเจฟเจงเฉ GOB เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเจฒเจพเจ เจจเฉเฉฐ เจเจจเจเฉเจก เจเจฐเจฆเฉ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ เจฌเจพเจเจ เจธเจฒเจพเจเจธ เจตเจเฉเจ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
FromGOBBytes(data []byte) เจเจฒเจคเฉ เจตเจฟเจงเฉ GOB เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจชเจพเจธ เจเฉเจคเฉ เจฌเจพเจเจ เจธเจฒเจพเจเจธ เจคเฉเจ เจฌเจฒเจพเจ เจขเจพเจเจเฉ เจตเจฟเฉฑเจ เจฌเจฒเจพเจ เจกเฉเจเจพ เจฒเจฟเจเจฆเฉ เจนเฉเฅค
GetHash() เจธเจเฉเจฐเจฟเฉฐเจ เจตเจฟเจงเฉ เจฆเจฟเฉฑเจคเฉ เจฌเจฒเจพเจ เจฆเฉ เจนเฉเจธเจผ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
GetPrevHash() เจธเจเฉเจฐเจฟเฉฐเจ เจตเจฟเจงเฉ เจชเจฟเจเจฒเฉ เจฌเจฒเจพเจ เจฆเฉ เจนเฉเจธเจผ เจตเจพเจชเจธ เจเจฐเจฆเฉ เจนเฉเฅค
SetPublicKey(pubk เจธเจคเจฐ) เจตเจฟเจงเฉ เจฌเจฒเจพเจ เจธเจฟเจฐเจเจฃเจนเจพเจฐ เจฆเฉ เจเจจเจคเจ เจเฉเฉฐเจเฉ เจจเฉเฉฐ เจฌเจฒเจพเจ เจตเจฟเฉฑเจ เจฒเจฟเจเจฆเฉ เจนเฉเฅค
เจเจธ เจคเจฐเฉเจนเจพเจ, เจฌเจฒเจพเจ เจเจฌเจเฉเจเจ เจฆเฉ เจคเจฐเฉเจเจฟเจเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ, เจ เจธเฉเจ เจเจธเจจเฉเฉฐ เจเจธเจพเจจเฉ เจจเจพเจฒ เจจเฉเฉฑเจเจตเจฐเจ เจเฉฑเจคเฉ เจเฉเจฐเจพเจเจธเจฎเจฟเจธเจผเจจ เจเจฐเจจ เจ เจคเฉ เจฒเฉเจตเจฒเจกเฉเจฌเฉ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจธเฉเจต เจเจฐเจจ เจฒเจ เจเฉฑเจ เจซเจพเจฐเจฎเฉเจ เจตเจฟเฉฑเจ เจฌเจฆเจฒ เจธเจเจฆเฉ เจนเจพเจเฅค
เจฌเจฒเจพเจเจเฉเจจ เจชเฉเจเฉเจ เจฆเฉ เจซเฉฐเจเจธเจผเจจ เจฌเจฒเจพเจเจเฉเจจ เจจเฉเฉฐ เจฌเจเจพเจเจฃ เจฒเจ เจเจผเจฟเฉฐเจฎเฉเจตเจพเจฐ เจนเจจ:
เจ เจเจฟเจนเจพ เจเจฐเจจ เจฒเจ, เจฌเจฒเจพเจ เจจเฉเฉฐ 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(เจนเฉเจธเจผ เจธเจเฉเจฐเจฟเฉฐเจ) เจเจฐเจฐ เจซเฉฐเจเจธเจผเจจ เจฎเฉเจเฉเจฆเจพ เจฌเจฒเจพเจ เจฆเฉ เจนเฉเจธเจผ เจจเฉเฉฐ เจกเจพเจเจพเจฌเฉเจธ เจฒเจ BLOCK_HASH เจธเจฅเจฟเจฐ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเฉฐเจเฉ เจจเจพเจฒ เจฒเจฟเจเจฆเจพ เจนเฉเฅค
GetTargetBlockHash() (เจธเจเจฐเจฟเฉฐเจ, เจเจฐเจฐ) เจซเฉฐเจเจธเจผเจจ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเฉ เจฎเฉเจเฉเจฆเจพ เจฌเจฒเจพเจ เจฆเจพ เจนเฉเจธเจผ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค
SetTargetBlockHeight(height int) เจเจฐเจฐ เจซเฉฐเจเจธเจผเจจ BLOCK_HEIGHT เจธเจฅเจฟเจฐเจพเจเจ เจฆเฉเจเจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจเฉเฉฐเจเฉ เจฆเฉ เจจเจพเจฒ เจจเฉเจก เจฒเจ เจฌเจฒเจพเจเจเฉเจจ เจเจเจพเจ เจฆเจพ เจฎเฉเฉฑเจฒ เจกเจพเจเจพเจฌเฉเจธ เจจเฉเฉฐ เจฒเจฟเจเจฆเจพ เจนเฉเฅค
GetTargetBlockHeight() (int, error) เจซเฉฐเจเจธเจผเจจ เจกเฉเจเจพเจฌเฉเจธ เจตเจฟเฉฑเจ เจธเจเฉเจฐ เจเฉเจคเฉ เจเจ เจจเฉเจก เจฒเจ เจฌเจฒเจพเจเจเฉเจจ เจฆเฉ เจเจเจพเจ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค
เจเฉเฉฑเจเจฌเจฒเจพเจ (เจฌเจฒเจพเจ IBlock) เจฌเฉเจฒ เจซเฉฐเจเจธเจผเจจ เจฌเจฒเจพเจเจเฉเจจ เจตเจฟเฉฑเจ เจเจธ เจฌเจฒเจพเจ เจจเฉเฉฐ เจเฉเฉเจจ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจเฉฑเจ เจฌเจฒเจพเจ เจฆเฉ เจธเจผเฉเฉฑเจงเจคเจพ เจฒเจ เจเจพเจเจ เจเจฐเจฆเจพ เจนเฉเฅค
เจเจกเจฌเจฒเจพเจ (เจฌเจฒเจพเจ IBlock) เจเจฒเจคเฉ เจซเฉฐเจเจธเจผเจจ เจฌเจฒเจพเจเจเฉเจจ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเจฒเจพเจ เจเฉเฉเจฆเจพ เจนเฉเฅค
เจฌเจฒเจพเจเจเฉเจจ เจชเฉเจเฉเจ เจฆเฉ explore.go เจซเจพเจเจฒ เจตเจฟเฉฑเจ เจฌเจฒเจพเจเจพเจ เจจเฉเฉฐ เจฎเฉเฉ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจ เจคเฉ เจฆเฉเจเจฃ เจฒเจ เจซเฉฐเจเจธเจผเจจ เจนเจจ:
GetBlockByHash(hash string) (*block.Block, error) เจซเฉฐเจเจธเจผเจจ เจเฉฑเจ เจเจพเจฒเฉ เจฌเจฒเจพเจ เจเจฌเจเฉเจเจ เจฌเจฃเจพเจเจเจฆเจพ เจนเฉ, เจกเฉเจเจพเจฌเฉเจธ เจคเฉเจ เจเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจฌเจฒเจพเจ เจฒเฉเจก เจเจฐเจฆเจพ เจนเฉ, เจเจฟเจธ เจฆเจพ เจนเฉเจธเจผ เจเจธ เจจเฉเฉฐ เจชเจพเจธ เจเฉเจคเจพ เจเจฟเจ เจธเฉ, เจ เจคเฉ เจเจธ เจจเฉเฉฐ เจเฉฑเจ เจชเฉเจเจเฉฐเจเจฐ เจตเจพเจชเจธ เจเจฐเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจเฉเจจเฉเจธเจฟเจธ เจฌเจฒเจพเจ เจฆเฉ เจฐเจเจจเจพ เจฌเจฒเจพเจเจเฉเจจ เจชเฉเจเฉเจ เจฆเฉ genesis.go เจซเจพเจเจฒ เจคเฉเจ Genesis() เจเจฐเจฐ เจซเฉฐเจเจธเจผเจจ เจฆเฉเจเจฐเจพ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉเฅค
เจ
เจเจฒเจพ เจฒเฉเจ WebSocket เจตเจฟเจงเฉ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจเจพเจนเจเจพเจ เจจเฉเฉฐ เจจเฉเจก เจจเจพเจฒ เจเฉเฉเจจ เจฌเจพเจฐเฉ เจเฉฑเจฒ เจเจฐเฉเจเจพเฅค
เจธเจฐเฉเจค: www.habr.com