1
0
Fork 0
mirror of https://github.com/ton-blockchain/ton synced 2025-03-09 15:40:10 +00:00

added support for config change proposals

- added some fift scripts for the config change proposal voting
- added validator-engine-console support for the config change proposal voting
- additional sanity checks in catchain
- unsafe slow catchain resync method
This commit is contained in:
ton 2020-03-30 17:20:45 +04:00
parent a31f8d4424
commit 4dd5eea11f
35 changed files with 753 additions and 144 deletions

View file

@ -200,11 +200,16 @@ class ValidatorEngine : public td::actor::Actor {
bool started_keyring_ = false;
bool started_ = false;
std::set<ton::CatchainSeqno> unsafe_catchains_;
public:
static constexpr td::uint8 max_cat() {
return 250;
}
void add_unsafe_catchain(ton::CatchainSeqno seq) {
unsafe_catchains_.insert(seq);
}
void set_local_config(std::string str);
void set_global_config(std::string str);
void set_fift_dir(std::string str) {
@ -286,6 +291,8 @@ class ValidatorEngine : public td::actor::Actor {
void alarm() override;
void run();
void get_current_validator_perm_key(td::Promise<std::pair<ton::PublicKey, size_t>> promise);
void try_add_adnl_node(ton::PublicKeyHash pub, AdnlCategory cat, td::Promise<td::Unit> promise);
void try_add_dht_node(ton::PublicKeyHash pub, td::Promise<td::Unit> promise);
void try_add_validator_permanent_key(ton::PublicKeyHash key_hash, td::uint32 election_date, td::uint32 ttl,
@ -376,6 +383,8 @@ class ValidatorEngine : public td::actor::Actor {
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
void run_control_query(ton::ton_api::engine_validator_checkDhtServers &query, td::BufferSlice data,
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
void run_control_query(ton::ton_api::engine_validator_createProposalVote &query, td::BufferSlice data,
ton::PublicKeyHash src, td::uint32 perm, td::Promise<td::BufferSlice> promise);
template <class T>
void run_control_query(T &query, td::BufferSlice data, ton::PublicKeyHash src, td::uint32 perm,
td::Promise<td::BufferSlice> promise) {