标签:区块 const EOS header using 源代码 type id block
1.chain/types.hpp
using block_id_type = fc::sha256;
using checksum_type = fc::sha256;
using checksum256_type = fc::sha256;
using checksum512_type = fc::sha512;
using checksum160_type = fc::ripemd160;
using transaction_id_type = checksum_type;
using digest_type = checksum_type;
using weight_type = uint16_t;
using block_num_type = uint32_t;
using share_type = int64_t;
using int128_t = __int128;
using uint128_t = unsigned __int128;
using bytes = vector<char>;
using digests_t = deque<digest_type>;
2. block_header
struct block_header
{
block_timestamp_type timestamp;
account_name producer;//帐户标识符 13字节
uint16_t confirmed = 1;
block_id_type previous;//前一块的HASH
checksum256_type transaction_mroot; /// mroot of cycles_summary
checksum256_type action_mroot; /// mroot of all delivered action receipts
uint32_t schedule_version = 0;
optional<producer_schedule_type> new_producers;//新生产者
extensions_type header_extensions;
digest_type digest()const;//摘要哈希
block_id_type id() const; //自己的哈希
uint32_t block_num() const { return num_from_id(previous) + 1; }
static uint32_t num_from_id(const block_id_type& id);//ID是任意数字,区块号是从零长到现在的排序号 ID=HASH+n
};
struct signed_block_header : public block_header
{
signature_type producer_signature;//生产者签名
};
3. block.hpp
using signed_block_ptr = std::shared_ptr<signed_block>;//重定义一个新的数据类型,方便使用
struct signed_block : public signed_block_header{
vector<transaction_receipt> transactions; /// new or generated transactions
extensions_type block_extensions;
flat_multimap<uint16_t, block_extension> validate_and_extract_extensions()const;
};
标签:区块,const,EOS,header,using,源代码,type,id,block 来源: https://blog.csdn.net/thefist11cc/article/details/120398878
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。