Skip to content

Latest commit

 

History

History
78 lines (60 loc) · 1.94 KB

alert.h.adoc

File metadata and controls

78 lines (60 loc) · 1.94 KB

比特币源码分析之升级通告

升级警告主要用于提醒用户版本升级

1. 对山寨开发的重要性:一星

偶尔会有变态客户要求提供广播私钥

2. 升级警告

警报用于通知旧版本钱包节点,如果它们过时并且需要升级。

  • 该消息显示在状态栏中。

  • 警报消息作为签名数据的向量(vector)广播。

  • 如果警报针对较新版本,则新版本无法反序列化读取整个缓冲区,但旧版本仍可以中继原始数据。

3. CUnsignedAlert类—​未签名通告

没有签名的通告

3.1. 成员变量

  • nVersion;版本号

  • nRelayUntil; when newer nodes stop relaying to newer nodes

  • nExpiration;

  • nID;

  • nCancel;

  • std::set<int> setCancel;

  • nMinVer; // lowest version inclusive

  • nMaxVer; // highest version inclusive

  • std::set<std::string> setSubVer; // empty matches all

  • nPriority;

  • std::string strComment;

  • std::string strStatusBar;

  • std::string strReserved;

3.2. 成员函数

方法名 说明

void SetNull()

清空,重置数据为null

std::string ToString() const

…​

void print() const

…​

4. CAlert类—​通告类

通告类CAlert是序列化的CUnsignedAlert类和签名的组合

4.1. 成员变量

  • vchMsg;//序列化的未签名通告类CUnsignedAlert

  • vchSig;//签名

4.2. 成员函数

方法名 说明

void SetNull();

…​

bool IsNull() const;

…​

uint256 GetHash() const;

…​

bool IsInEffect() const;

…​

bool Cancels(const CAlert& alert) const;

…​

bool AppliesTo(int nVersion, std::string strSubVerIn) const;

…​

bool AppliesToMe() const;

…​

bool RelayTo(CNode* pnode) const;

…​

bool CheckSignature() const;

…​

bool ProcessAlert(bool fThread = true);

…​