Skip to content

Commit

Permalink
GH-1523 Minor cleanup
Browse files Browse the repository at this point in the history
  • Loading branch information
heifner committed Sep 1, 2023
1 parent f24626a commit decb6c2
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 27 deletions.
8 changes: 2 additions & 6 deletions libraries/chain/finalizer_set.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,11 @@ namespace eosio::chain {
finalizer_set::~finalizer_set() = default;

finalizer_set::finalizer_set(const finalizer_set&) = default;
finalizer_set::finalizer_set(finalizer_set&&) = default;
finalizer_set::finalizer_set(finalizer_set&&) noexcept = default;

finalizer_set& finalizer_set::operator=(const finalizer_set&) = default;
finalizer_set& finalizer_set::operator=(finalizer_set&&) = default;
finalizer_set& finalizer_set::operator=(finalizer_set&&) noexcept = default;

auto finalizer_set::operator<=>(const finalizer_set&) const = default;


hs_finalizer_set_extension::hs_finalizer_set_extension(const finalizer_set& s)
: finalizer_set(s) {}

} /// eosio::chain
2 changes: 1 addition & 1 deletion libraries/chain/include/eosio/chain/config.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,7 @@ static_assert(maximum_tracked_dpos_confirmations >= ((max_producers * 2 / 3) + 1
* Maximum number of finalizers in the finalizer set
*/
const static size_t max_finalizers = 64*1024;
const static size_t max_finalizer_description = 256;
const static size_t max_finalizer_description_size = 256;

/**
* The number of blocks produced per round is based upon all producers having a chance
Expand Down
22 changes: 6 additions & 16 deletions libraries/chain/include/eosio/chain/finalizer_set.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,16 @@ namespace eosio::chain {
~finalizer_set();

finalizer_set(const finalizer_set&);
finalizer_set(finalizer_set&&);
finalizer_set(finalizer_set&&) noexcept;

finalizer_set& operator=(const finalizer_set&);
finalizer_set& operator=(finalizer_set&&);

uint32_t generation = 0; ///< sequentially incrementing version number
uint64_t fthreshold = 0; ///< vote fweight threshold to finalize blocks
std::vector<finalizer_authority> finalizers; ///< Instant Finality voter set
finalizer_set& operator=(finalizer_set&&) noexcept;

auto operator<=>(const finalizer_set&) const;

uint32_t generation = 0; ///< sequentially incrementing version number
uint64_t fthreshold = 0; ///< vote fweight threshold to finalize blocks
std::vector<finalizer_authority> finalizers; ///< Instant Finality voter set
};

using finalizer_set_ptr = std::shared_ptr<finalizer_set>;
Expand All @@ -29,18 +29,8 @@ namespace eosio::chain {
* Block Header Extension Compatibility
*/
struct hs_finalizer_set_extension : finalizer_set {

static constexpr uint16_t extension_id() { return 2; } // TODO 3 instead?
static constexpr bool enforce_unique() { return true; }

hs_finalizer_set_extension() = default;
hs_finalizer_set_extension(const hs_finalizer_set_extension&) = default;
hs_finalizer_set_extension( hs_finalizer_set_extension&& ) = default;

hs_finalizer_set_extension& operator=(const hs_finalizer_set_extension&) = default;
hs_finalizer_set_extension& operator=(hs_finalizer_set_extension&&) = default;

hs_finalizer_set_extension(const finalizer_set& s);
};

} /// eosio::chain
Expand Down
9 changes: 5 additions & 4 deletions libraries/chain/webassembly/privileged.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,8 @@ namespace eosio { namespace chain { namespace webassembly {
std::array<uint8_t, 144> public_key_g1_jacobian;
};
struct abi_finalizer_set {
uint64_t fthreshold = 0;
vector<abi_finalizer_authority> finalizers;
uint64_t fthreshold = 0;
std::vector<abi_finalizer_authority> finalizers;
};

void interface::set_finalizers(span<const char> packed_finalizer_set) {
Expand All @@ -169,7 +169,7 @@ namespace eosio { namespace chain { namespace webassembly {
abi_finalizer_set abi_finset;
fc::raw::unpack(ds, abi_finset);

vector<abi_finalizer_authority>& finalizers = abi_finset.finalizers;
std::vector<abi_finalizer_authority>& finalizers = abi_finset.finalizers;

EOS_ASSERT( finalizers.size() <= config::max_finalizers, wasm_execution_error, "Finalizer set exceeds the maximum finalizer count for this chain" );
EOS_ASSERT( finalizers.size() > 0, wasm_execution_error, "Finalizer set cannot be empty" );
Expand All @@ -180,7 +180,8 @@ namespace eosio { namespace chain { namespace webassembly {
finalizer_set finset;
finset.fthreshold = abi_finset.fthreshold;
for (const auto& f: finalizers) {
EOS_ASSERT( f.description.size() <= config::max_finalizer_description, wasm_execution_error, "Finalizer description greater than 256" );
EOS_ASSERT( f.description.size() <= config::max_finalizer_description_size, wasm_execution_error,
"Finalizer description greater than ${s}", ("s", config::max_finalizer_description_size) );
f_weight_sum += f.fweight;
std::optional<bls12_381::g1> pk = bls12_381::g1::fromJacobianBytesLE(f.public_key_g1_jacobian);
EOS_ASSERT( pk, wasm_execution_error, "Invalid public key for: ${d}", ("d", f.description) );
Expand Down

0 comments on commit decb6c2

Please sign in to comment.