Open abbshr opened 10 years ago
BitCoin Explorer环境配置就绪,下一步就可以利用Blocks做任何想做的了。
insight-api和bitcoinjs都使用Google出品的LevelDB作Transaction持久化。因此有必要了解一下LevelDB。
Key Words:
关键词中描述了LevelDB的主要特性。很明了,这里不再赘述。
作为一个嵌入式数据库,像SQLite和Node embed nosql database一样。没有服务进程一说,这也恰恰凸显embed database目标——轻量级。
虽说是小型的数据库,但从关键词描述中可以看出——其性能仍很强劲。Google的一个benchmarks给出了levelDB和SQLite的性能测试图表。
作为一个开源项目,levelDB自然提供了不同编程语言的Wrapper。这里有两种基本使用方式:
为了尽快了解它,可以先用用它的lib。
过程与其他项目大同小异。
git clone https://code.google.com/p/leveldb/ && cd leveldb
其Makefile将它编译为静态链接库.a,也可以选择编译为动态链接库.so,这就需要修改一下Makefile:_CTRL + F_查找:
.a
.so
LIBRARY = libleveldb.a $(AR) -rs $@ $(LIBOBJECTS)
分别改为:
LIBRARY = libleveldb.so gcc -shared -fPIC -o $@ $(LIBOBJECTS)
开始编译:
make cp libleveldb.so /usr/local/lib/ cp -r include/leveldb /usr/local/include/ sudo ldconfig
这时就可以在C/C++ 代码中引用libleveldb了:
#include "leveldb/db.h"
Note:g++需要包含-lleveldb和-lpthread参数编译程序:
-lleveldb
-lpthread
g++ -o leveldbtest leveldbtest.cc -lleveldb -lpthread
之后可以写个test练习练习什么的~ example可以参见Quick Guide或Google官方示例
Log 3:拆Blocks之前
BitCoin Explorer环境配置就绪,下一步就可以利用Blocks做任何想做的了。
insight-api和bitcoinjs都使用Google出品的LevelDB作Transaction持久化。因此有必要了解一下LevelDB。
Key Words:
关键词中描述了LevelDB的主要特性。很明了,这里不再赘述。
作为一个嵌入式数据库,像SQLite和Node embed nosql database一样。没有服务进程一说,这也恰恰凸显embed database目标——轻量级。
虽说是小型的数据库,但从关键词描述中可以看出——其性能仍很强劲。Google的一个benchmarks给出了levelDB和SQLite的性能测试图表。
使用
作为一个开源项目,levelDB自然提供了不同编程语言的Wrapper。这里有两种基本使用方式:
为了尽快了解它,可以先用用它的lib。
编译
过程与其他项目大同小异。
其Makefile将它编译为静态链接库
.a
,也可以选择编译为动态链接库.so
,这就需要修改一下Makefile:_CTRL + F_查找:分别改为:
开始编译:
这时就可以在C/C++ 代码中引用libleveldb了:
Note:g++需要包含
-lleveldb
和-lpthread
参数编译程序:之后可以写个test练习练习什么的~ example可以参见Quick Guide或Google官方示例