From edcadfb47b736e6c9dd6b078689114aecf5c1add Mon Sep 17 00:00:00 2001 From: Determinant Date: Fri, 3 Aug 2018 18:09:01 -0400 Subject: allow extra data in blocks --- src/entity.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'src/entity.cpp') diff --git a/src/entity.cpp b/src/entity.cpp index 80c9cf9..a5dc44e 100644 --- a/src/entity.cpp +++ b/src/entity.cpp @@ -10,15 +10,19 @@ void Block::serialize(DataStream &s) const { s << (uint32_t)cmds.size(); for (auto cmd: cmds) s << *cmd; - if (qc == nullptr) + if (qc) + s << (uint8_t)1 << *qc; + else s << (uint8_t)0; + if (extra) + s << (uint8_t)1 << *extra; else - s << (uint8_t)1 << *qc; + s << (uint8_t)0; } void Block::unserialize(DataStream &s, HotStuffCore *hsc) { uint32_t n; - uint8_t has_qc; + uint8_t flag; s >> n; parent_hashes.resize(n); for (auto &hash: parent_hashes) @@ -27,9 +31,11 @@ void Block::unserialize(DataStream &s, HotStuffCore *hsc) { cmds.resize(n); for (auto &cmd: cmds) cmd = hsc->parse_cmd(s); - s >> has_qc; - qc = has_qc ? hsc->parse_quorum_cert(s) : nullptr; + s >> flag; + qc = flag ? hsc->parse_quorum_cert(s) : nullptr; this->hash = salticidae::get_hash(*this); + s >> flag; + extra = flag ? hsc->parse_extra_block_data(s) : nullptr; } } -- cgit v1.2.3