区块链leveldb数据库安装
一、首先,需要在电脑上安装boost库。
下载地址在这里,下载压缩包之后解压,Index of main/release/1.79.0/source。
解压完成后在解压好的文件夹里面进入cmd,之后运行bootstrip.bat文件,如下如所示:
完成之后应该会生成一个b2.exe,在命令行里面运行它进行编译安装:
静等一段时间等编译完成。
二、下载编译google benchmark
从github上克隆benchmark如下git@github.com:google/benchmark.git:
之后将googletest库克隆到benchmark文件夹中git@github.com:google/googletest.git:
使用cmake编译benchmark如下,
最后会在benchmark文件夹中生成一个benchmark.sln文件,使用VStudio打开并生成ALL_BUILD:
三、安装dirent库
从git@github.com:tronkko/dirent.git处克隆dirent源码,用cmake编译并用VS生成:
四、下载kcwin32
Index of /kyotocabinet/winpkg,下载kcw32.zip并解压到合适的地方:
五、下载sqlite源码
SQLite Download Page,下载第一个source code并解压到合适的位置。
六、下载编译pybind11
git@github.com:pybind/pybind11.git,克隆源代码,使用Cmake编译,VS生成,步骤同benchmark的编译。
至此,所有的依赖库都安装完成,可以进行leveldb的编译了。
七、下载levelDB源码并编译。
1、下载源码
从github处clone源码到本地文件夹,网址在这里:git@github.com:google/leveldb.git
2、建立项目
使用VS从现有代码新建项目:
选择类型Visual C++:
选择代码位置和项目名称:
选择项目Wie静态库:
预处理器填写LEVELDB_PLATFORM_WINDOWS;OS_WIN,搜索位置填写leveldb的源码以及源码里面的include文件夹F:\LevelDB\leveldb\include;F:\LevelDB\leveldb,用英文分号隔开:
到这一步完成了项目的创建。
3、项目属性设置
之后是对项目调试的设置:
首先在项目属性中将其配置成静态库:
之后在预处理器定义中填写:LEVELDB_PLATFORM_WINDOWS;OS_WIN
在附加包含目录中包含boost, leveldb, sqlite, pybind11, googletest, googlemock, benchmark, kcwin32,dirent的include文件夹以及boost和leveldb的整个文件夹(这一步就是为了包含头文件):
在我的电脑上就是:F:\LevelDB\sqlite3、F:\LevelDB\pybind11\include、F:\LevelDB\kcwin32\include、F:\LevelDB\dirent\include、F:\LevelDB\benchmark\googletest\googlemock\include、F:\LevelDB\benchmark\googletest\googletest\include、F:\LevelDB\benchmark\include、F:\LevelDB\leveldb\include、F:\LevelDB\leveldb、F:\LevelDB\boost\boost_1_79_0
之后只需要编译windows平台的文件,故此手动排除posix之类的所有文件:
全部排出之后生成,生成成功即可使用leveldb。
八、简单使用leveldb
1、环境配置
要使用leveldb,需要在创建项目之后在项目属性中添加leveldb和boost库以及链接器。下面做一个简单示例:
创建名为test的项目,编辑调试属性:
在附加包含中添加boost和leveldb的include:
在我的电脑上则是如下:
在链接器中添加leveldb和boost的lib:
在我的电脑中就是:
最后在链接器的附加依赖项中添加leveldb.lib:
2、运行代码
添加以下代码:
#include "leveldb/db.h"
#include<iostream>
int main() {
// 声明
leveldb::DB* mydb;
leveldb::Options myoptions;
leveldb::Status mystatus;
// 创建
myoptions.create_if_missing = true;
mystatus = leveldb::DB::Open(myoptions, "testdb", &mydb);
// 写入数据
std::string key = "gonev";
std::string value = "a handsome man";
if (mystatus.ok()) {
mydb->Put(leveldb::WriteOptions(), key, value);
}
// 读取数据
std::string key_ = "gonev";
std::string val_ = "";
mydb->Get(leveldb::ReadOptions(), key_, &val_);
std::cout << key_ << ": " << val_ << std::endl;
}
运行结果如下:
可以看到,test文件夹中也出现了testdb文件夹:
里面含有leveldb的数据库文件:
至此,leveldb成功安装在电脑上并可以使用。
区块链leveldb数据库安装的更多相关文章
- 用Hyperledger Fabric(超级账本)来构建Java语言开发区块链的环境
面向 Java 开发人员的链代码简介 您或许听说过区块链,但可能不确定它对 Java™ 开发人员有何用.本教程将帮助大家解惑.我将分步展示如何使用 Hyperledger Fabric v0.6 来构 ...
- (转)区块链共识机制分析——论PoW,PoS,DPos和DAG的优缺点
近期,随着区块链技术在社区中的声音越来越大,业界已经开始从技术角度对区块链进行全方位的解读.作为第一批区块链技术的实现,传统比特币与以太坊在共识机制.存储机制.智能合约机制.跨链通讯机制等领域并没有非 ...
- ICO和区块链区别
区块链项目众筹(ICO)浅析 2017-07-25 原创 Fintech科普大使 ICO是区块链初创公司项目融资的重要方式类似于Kickstarter众筹,但有不同之处(具体在下一节详述),可以避开传 ...
- 区块链钱包开发 - USDT - 一、Omni本地钱包安装
背景 Tether(USDT)中文又叫泰达币,是一种加密货币,是Tether公司推出的基于稳定价值货币美元(USD)的代币Tether USD,也是目前数字货币中最稳定的币,USDT目前发行了两种代币 ...
- 《区块链:从入门到放弃》之obc安装步骤
obc安装步骤 朋友们可能会好奇,厨师不研究菜谱怎么改研究兵法了,哈哈,我原本是app出身,最近被安排去预研区块链和比特币技术,2个月下来,颇有斩获.期间得到IBM的CC同学指导我一步一步安装obc的 ...
- 区块链侧链应用开发平台Asch节点安装及区块生产教程
1 系统要求 必须是linux系统 必须有公网ip 建议使用ubuntu 14.04 64位 建议内存1G以上 建议带宽2Mb以上 2 安装 2.1 下载 wget https://www.asch. ...
- 《区块链DAPP开发入门、代码实现、场景应用》笔记3——Ethereum Wallet的安装
以太坊官方网站可以下载最新版本的Ethereum Wallet,用户无需选择,浏览器会根据访问者操作系统版本自动展现合适的版本,点击DOWNLOAD按钮下载即可安装,如图2.9所示,其下载网址: ht ...
- 安装比特币区块链钱包API(Blockchain Wallet用户发送和接收比特币的简单API)
区块链钱包API提供了一个简单的界面,商家可以用它以编程方式与钱包进行交互. 安装:要使用此API,您需要运行负责管理区块链钱包的小型本地服务. 您的应用程序通过HTTP API调用在本地与此服务进行 ...
- [区块链\理解BTCD源码]GO语言实现一个区块链原型
摘要 本文构建了一个使用工作量证明机制(POW)的类BTC的区块链.将区块链持久化到一个Bolt数据库中,然后会提供一个简单的命令行接口,用来完成一些与区块链的交互操作.这篇文章目的是希望帮助大家理解 ...
- 基于Tendermint的区块链漂流瓶简单实现
本文主要借demo介绍基于Tendermint的区块链应用开发,这个demo很简单,主要包含以下功能: 扔漂流瓶 捞漂流瓶 之后投放者和打捞者可以相互传递[加密]信息 代码已上传至github. Te ...
随机推荐
- 分享.net framework4.0无法安装的几种处理方案.
[关于.net framework4.0安装失败]-------------)方案1:http://www.win7xtzj.com/win10jiaocheng/39834.html 关键词: -- ...
- [R语言] ggplot2入门笔记4—前50个ggplot2可视化效果
文章目录 通用教程简介(Introduction To ggplot2) 4 ggplot2入门笔记4-前50个ggplot2可视化效果 1 相关性(Correlation) 1.1 散点图(Scat ...
- Spark详解(05-1) - SparkCore实战案例
Spark详解(05-1) - SparkCore实战案例 数据准备 1)数据格式 本项目的数据是采集电商网站的用户行为数据,主要包含用户的4种行为:搜索.点击.下单和支付. (1)数据采用_分割字段 ...
- 孤独的照片【USACO 2021 December Contest Bronze】
孤独的照片 Farmer John 最近购入了 \(N\) 头新的奶牛,每头奶牛的品种是更赛牛(Guernsey)或荷斯坦牛(Holstein)之一. 奶牛目前排成一排,Farmer John 想要为 ...
- 如何在现有的Vue项目中嵌入 Blazor项目?
目前官方只提供了angular和react俩种示例,所以本教程将来讲解如何在Vue的现有项目中使用,上期已经做好了react的教材! 准备流程 Vue 项目创建流程 使用Vue创建一个Demo项目 全 ...
- Java 进阶P-4.8+P-4.9
Object类 Object类的函数 toString() equals() Java Object 类是所有类的父类,也就是说 Java 的所有类都继承了 Object,子类可以使用 Object ...
- 2023牛客寒假算法基础集训营5 A-L
比赛链接 A 题解 知识点:前缀和,二分. 找到小于等于 \(x\) 的最后一个物品,往前取 \(k\) 个即可,用前缀和查询. 时间复杂度 \(O(n + q\log n)\) 空间复杂度 \(O( ...
- 浅析 SeaweedFS 与 JuiceFS 架构异同
SeaweedFS 是一款高效的分布式文件存储系统,最早的设计原型参考了 Facebook 的 Haystack,具有快速读写小数据块的能力.本文将通过对比 SeaweedFS 与 JuiceFS 在 ...
- 【学习笔记】Http请求方法总结
Http常用请求方法对比 请求方法 常见参数传递方式 是否幂等 说明 API举例 GET URL,注意:Http协议对URL长度没有限制,所谓的限制是浏览器和处理服务器的 幂等 用于查询 批量查询:/ ...
- 2 .NET Core笔试题
1.说说在Linux系统部署ASP.NET Core项目的步骤. 2.说说热重载是什么. 3.如何理解鉴权和授权两个词 4.说说.NET7包含了几大方向的开发? 5.如何理解云原生? 6.ASP.NE ...