37 std::vector<vote_hash_t>&& reward_votes,
const std::optional<PbftBlockExtraData>& extra_data = {});
80 static Json::Value
toJson(
const PbftBlock& b,
const std::vector<blk_hash_t>& dag_blks);
156 std::ostream&
operator<<(std::ostream& strm,
const PbftBlock& pbft_blk);
Class for writing to an RLP bytestream.
Definition: RLP.h:484
PbftPeriod getPeriod() const
Get period number.
Definition: pbft_block.hpp:116
auto getExtraData() const
Get extra data.
Definition: pbft_block.hpp:128
blk_hash_t order_hash_
Definition: pbft_block.hpp:25
bytes rlp(bool include_sig) const
Recursive Length Prefix.
Definition: pbft_block.cpp:126
const auto & getFinalChainHash() const
Get final chain hash to tie final chain to the PBFT chain.
Definition: pbft_block.hpp:110
auto getTimestamp() const
Get timestamp.
Definition: pbft_block.hpp:122
std::vector< vote_hash_t > reward_votes_
Definition: pbft_block.hpp:31
void calculateHash_()
Set PBFT block hash and block proposer address.
Definition: pbft_block.cpp:58
void checkUniqueRewardVotes()
Check if all rewards votes are unique.
Definition: pbft_block.cpp:70
const auto & getRewardVotes() const
Definition: pbft_block.hpp:142
blk_hash_t dag_block_hash_as_pivot_
Definition: pbft_block.hpp:24
blk_hash_t final_chain_hash_
Definition: pbft_block.hpp:26
const auto & getBlockHash() const
Get PBFT block hash.
Definition: pbft_block.hpp:86
PbftBlock(const blk_hash_t &prev_blk_hash, const blk_hash_t &dag_blk_hash_as_pivot, const blk_hash_t &order_hash, const blk_hash_t &final_chain_hash, PbftPeriod period, const addr_t &beneficiary, const secret_t &sk, std::vector< vote_hash_t > &&reward_votes, const std::optional< PbftBlockExtraData > &extra_data={})
Definition: pbft_block.cpp:29
const auto & getOrderHash() const
Get DAG blocks ordering hash.
Definition: pbft_block.hpp:104
const auto & getPivotDagBlockHash() const
Get DAG anchor hash for the finalized PBFT block.
Definition: pbft_block.hpp:98
std::optional< PbftBlockExtraData > extra_data_
Definition: pbft_block.hpp:32
PbftPeriod period_
Definition: pbft_block.hpp:27
Json::Value getJson() const
Get PBFT block in JSON.
Definition: pbft_block.cpp:85
addr_t beneficiary_
Definition: pbft_block.hpp:29
sig_t signature_
Definition: pbft_block.hpp:30
static Json::Value toJson(const PbftBlock &b, const std::vector< blk_hash_t > &dag_blks)
Get PBFT block with DAG blocks in JSON.
Definition: pbft_block.cpp:47
blk_hash_t block_hash_
Definition: pbft_block.hpp:22
uint64_t timestamp_
Definition: pbft_block.hpp:28
std::string getJsonStr() const
Get PBFT block in string.
Definition: pbft_block.cpp:83
void streamRLP(dev::RLPStream &strm, bool include_sig) const
Stream RLP uses to setup PBFT block hash.
Definition: pbft_block.cpp:106
const auto & getBeneficiary() const
Get PBFT block proposer address.
Definition: pbft_block.hpp:140
auto getExtraDataRlp() const
Get extra data rlp.
Definition: pbft_block.hpp:134
blk_hash_t sha3(bool include_sig) const
Secure Hash Algorithm 3.
Definition: pbft_block.cpp:81
blk_hash_t prev_block_hash_
Definition: pbft_block.hpp:23
const auto & getPrevBlockHash() const
Get previous PBFT block hash.
Definition: pbft_block.hpp:92
The PbftBlock class is a PBFT block class that includes PBFT block hash, previous PBFT block hash,...
Definition: pbft_block.hpp:21
std::vector<::byte > bytes
Definition: Common.h:46
std::vector< byte > bytes
Definition: types.hpp:53
EthBlockNumber PbftPeriod
Definition: types.hpp:24
std::ostream & operator<<(std::ostream &strm, NodeConfig const &conf)
Definition: config.cpp:205