bool converter::to_protocol(const bc::block_header_type& header, block_header& result) { bool success = true; result.set_version(header.version); result.set_timestamp(header.timestamp); result.set_bits(header.bits); result.set_nonce(header.nonce); result.set_merkle_root(pack_hash(header.merkle)); result.set_previous_block_hash(pack_hash(header.previous_block_hash)); return success; }
bool converter::to_protocol(const bc::output_point& point, bc::protocol::point& result) { bool success = true; result.set_hash(pack_hash(point.hash)); result.set_index(point.index); return success; }
char *ddb_cons_finalize(struct ddb_cons *cons, uint64_t *length, uint64_t flags) { struct ddb_packed *pack = NULL; struct ddb_entry *order = NULL; char *buf = NULL; int disable_compression, err = 1; DDB_TIMER_DEF if (!(pack = buffer_init())) goto err; if (pack_header(pack, cons)) goto err; #ifdef DDB_PROFILE print_mem_usage(cons); #endif DDB_TIMER_START pack->head->hash_offs = pack->offs; if (!(order = pack_hash(pack, cons->keys_map))) goto err; DDB_TIMER_END("hash") DDB_TIMER_START pack->head->key2values_offs = pack->offs; if (pack_key2values(pack, order, cons->keys_map, flags & DDB_OPT_UNIQUE_ITEMS)) goto err; DDB_TIMER_END("key2values") DDB_TIMER_START flags |= maybe_disable_compression(cons); disable_compression = flags & DDB_OPT_DISABLE_COMPRESSION; pack->head->id2value_offs = pack->offs; if (pack_id2value(pack, cons->values_map, disable_compression)) goto err; else{ ddb_map_free(cons->values_map); cons->values_map = NULL; } DDB_TIMER_END("id2values") if (!disable_compression){ DDB_TIMER_START pack->head->codebook_offs = pack->offs; if (pack_codebook(pack)) goto err; DDB_TIMER_END("save_codebook") }