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;
}
Exemplo n.º 3
0
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")
    }