mirror of
https://github.com/logos-storage/logos-storage-nim-validator.git
synced 2026-01-09 08:53:08 +00:00
calculate block id based on block hash
This commit is contained in:
parent
343b4bdccd
commit
04d66b8bd9
@ -1,7 +1,7 @@
|
||||
import std/sequtils
|
||||
import pkg/stint
|
||||
import pkg/questionable
|
||||
|
||||
export sequtils
|
||||
|
||||
import pkg/stint
|
||||
|
||||
export stint
|
||||
export questionable
|
||||
|
||||
@ -7,3 +7,7 @@ export blck
|
||||
import ./blocks/serialization
|
||||
|
||||
export serialization.toBytes
|
||||
|
||||
import ./blocks/blockhash
|
||||
|
||||
export blockhash.id
|
||||
|
||||
@ -1,12 +1,15 @@
|
||||
import pkg/mysticeti
|
||||
from pkg/mysticeti import CommitteeMember, `==`
|
||||
import ../basics
|
||||
import ../transaction
|
||||
import ../hashing
|
||||
import ./blockid
|
||||
|
||||
export mysticeti.CommitteeMember
|
||||
export mysticeti.`==`
|
||||
|
||||
type Block* = ref object
|
||||
author*: CommitteeMember
|
||||
round*: uint64
|
||||
parents*: seq[blockid.BlockId]
|
||||
parents*: seq[BlockId]
|
||||
transactions*: seq[Transaction]
|
||||
id*: blockid.BlockId
|
||||
hash*: ?Hash
|
||||
|
||||
15
codexvalidator/blocks/blockhash.nim
Normal file
15
codexvalidator/blocks/blockhash.nim
Normal file
@ -0,0 +1,15 @@
|
||||
import ../basics
|
||||
import ./blck
|
||||
import ./blockid
|
||||
import ./serialization
|
||||
import ../hashing
|
||||
|
||||
func id*(blck: Block): BlockId =
|
||||
without var hash =? blck.hash:
|
||||
hash = Hash.hash(blck.toBytes())
|
||||
blck.hash = some hash
|
||||
BlockId.init(
|
||||
blck.author,
|
||||
blck.round,
|
||||
hash
|
||||
)
|
||||
@ -1,11 +1,11 @@
|
||||
import std/unittest
|
||||
|
||||
export unittest
|
||||
|
||||
import std/sequtils
|
||||
|
||||
export sequtils
|
||||
|
||||
import pkg/stint
|
||||
|
||||
export unittest
|
||||
export sequtils
|
||||
export stint
|
||||
|
||||
import ./examples
|
||||
|
||||
export examples
|
||||
|
||||
12
tests/codexvalidator/blocks/testBlock.nim
Normal file
12
tests/codexvalidator/blocks/testBlock.nim
Normal file
@ -0,0 +1,12 @@
|
||||
import ../basics
|
||||
import codexvalidator/blocks
|
||||
import codexvalidator/hashing
|
||||
|
||||
suite "Blocks":
|
||||
|
||||
test "have a correct block id":
|
||||
let blck = Block.example
|
||||
check blck.id.author == blck.author
|
||||
check blck.id.round == blck.round
|
||||
check blck.id.hash == Hash.hash(blck.toBytes())
|
||||
|
||||
@ -3,7 +3,6 @@ import codexvalidator/blocks
|
||||
import codexvalidator/blocks/serialization
|
||||
import codexvalidator/transaction/serialization
|
||||
import codexvalidator/hashing
|
||||
import ../examples
|
||||
|
||||
suite "Block serialization":
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import ./basics
|
||||
import pkg/blscurve
|
||||
import codexvalidator/signatures
|
||||
import ./examples
|
||||
|
||||
suite "Signature scheme":
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import ../basics
|
||||
import codexvalidator/transaction
|
||||
import codexvalidator/transaction/serialization
|
||||
import ../examples
|
||||
|
||||
suite "Transaction serialization":
|
||||
|
||||
|
||||
@ -1,7 +1,6 @@
|
||||
import ../basics
|
||||
import codexvalidator/signatures
|
||||
import codexvalidator/transaction
|
||||
import ../examples
|
||||
|
||||
suite "Transaction signing":
|
||||
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
import ../basics
|
||||
import codexvalidator/transaction
|
||||
import ../examples
|
||||
|
||||
suite "Transaction":
|
||||
|
||||
|
||||
@ -2,6 +2,7 @@ import ./codexvalidator/testSignatures
|
||||
import ./codexvalidator/transaction/testTransaction
|
||||
import ./codexvalidator/transaction/testSigning
|
||||
import ./codexvalidator/transaction/testSerialization
|
||||
import ./codexvalidator/blocks/testBlock
|
||||
import ./codexvalidator/blocks/testSerialization
|
||||
|
||||
{.warning[UnusedImport]:off.}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user