mirror of
https://github.com/ton-blockchain/ton
synced 2025-03-09 15:40:10 +00:00
liteclient signature check support
1. update liteclient/liteserver. Now liteserver sends signatures of blocks and liteclient checks them. I.e. liteclient completely checks received data. 2. validator-engine: more GC options 3. blockchain-explorer: show all block transactions (instead of 256) 4. some bugfixes
This commit is contained in:
parent
d8244eff53
commit
9d6853ef24
58 changed files with 1480 additions and 325 deletions
|
@ -49,9 +49,20 @@ class ProofLinkQ : virtual public ProofLink {
|
|||
td::Result<td::Ref<ConfigHolder>> get_key_block_config() const override;
|
||||
td::Result<BasicHeaderInfo> get_basic_header_info() const override;
|
||||
|
||||
protected:
|
||||
td::Result<std::pair<Ref<vm::Cell>, std::shared_ptr<vm::StaticBagOfCellsDb>>> get_virtual_root(
|
||||
bool lazy = false) const;
|
||||
struct VirtualizedProof {
|
||||
Ref<vm::Cell> root, sig_root;
|
||||
std::shared_ptr<vm::StaticBagOfCellsDb> boc;
|
||||
VirtualizedProof() = default;
|
||||
VirtualizedProof(Ref<vm::Cell> _vroot, Ref<vm::Cell> _sigroot, std::shared_ptr<vm::StaticBagOfCellsDb> _boc)
|
||||
: root(std::move(_vroot)), sig_root(std::move(_sigroot)), boc(std::move(_boc)) {
|
||||
}
|
||||
void clear() {
|
||||
root.clear();
|
||||
sig_root.clear();
|
||||
boc.reset();
|
||||
}
|
||||
};
|
||||
td::Result<VirtualizedProof> get_virtual_root(bool lazy = false) const;
|
||||
};
|
||||
|
||||
#if TD_MSVC
|
||||
|
@ -66,6 +77,7 @@ class ProofQ : public Proof, public ProofLinkQ {
|
|||
return new ProofQ(id_, data_.clone());
|
||||
}
|
||||
td::Result<Ref<ProofLink>> export_as_proof_link() const override;
|
||||
td::Result<Ref<vm::Cell>> get_signatures_root() const;
|
||||
};
|
||||
#if TD_MSVC
|
||||
#pragma warning(pop)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue