自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

错位竞争,单点突破。

专注密码学、区块链、时序数据库、分布式存储、分布式数据库、量子计算领域。

  • 博客(314)
  • 资源 (17)
  • 收藏
  • 关注

原创 椭圆曲线密码原理

椭圆曲线密码概述⾃从公钥加密被发明之后,⼀些合适的数学函数被提出,譬如:素数幂和椭圆曲线乘法。这些数学函数都是不可逆的,就是说很容易向⼀个⽅向计算,但不可以向相反⽅向倒推。基于这些数学函数的密码学,使得⽣成数字密钥和不可伪造的数字签名成为可能。⽐特币正是使⽤椭圆曲线乘法作为其公钥加密的基础算法。 在⽐特币系统中,我们⽤公钥加密创建⼀个密钥对,⽤于控制⽐特币的获取。密钥对包括⼀个私钥,和由...

2018-04-03 11:25:14 4847

原创 公钥密码体制RSA算法原理

RSA概述假如你已经了解了对称密码体制,你肯定知道对称密码中存在着密钥分发和管理的难题。为了解决这一问题,Whitefield与Martin Hellman在1976年提出了一个奇妙的密钥交换协议,称为Diffie-Hellman密钥交换协议/算法(Diffie-Hellman Key Exchange/Agreement Algorithm)。这个机制的巧妙在于需要安全通信的双方可以用这个方...

2018-04-03 10:22:47 9781 1

原创 在以太坊上部署第一个去中心化应用Dapp—宠物商店

官方文档:http://truffleframework.com/tutorials/pet-shop 中文翻译:https://learnblockchain.cn/2018/01/12/first-dapp/运行后效果: 注意如果无法显示图片,将src/index.html里面的jquery.min.js路径修改为国内的路径,如:https://apps.bdimg.com/libs/...

2018-03-20 17:26:55 3446 2

转载 用Python从零开始创建区块链

原文地址:https://learnblockchain.cn/2017/10/27/build_blockchain_by_python/ 本文通过python编程实现了区块链的一个原型,通过代码可以形象地理解区块链的工作原理,具体细节请看原文。代码地址:https://github.com/anda0109/pyblockchain 下面是完整代码:import hashlibi...

2018-03-14 17:10:49 694

原创 Ubuntu搭建以太坊开发环境—使用truffle框架

环境ubuntu-14.04 ubuntu-14.04-desktop-amd64.iso ,不多解释。 nodejs用来安装truffle等工具truffle ,目前最好用的以太坊开发框架 ganache ,可以跑开发环境下的私有区块链步骤1、前提是ubuntu已经可以正常使用,包括上网。 2、下载nodejs,按经验apt-get安装的nodejs不可用,估计apt...

2018-03-09 10:33:09 2198

转载 Windows下编译bitcoin

编译windows版的比特币程序,基本上有两种方法,一种是在linux平台(推荐ubuntu 13.10)通过交叉编译的方法来编译,另外一种就是直接在windows平台编译。第一步:安装变编译环境QT和MINGW,msys1、msys是一个在windows平台模拟shell的程序。访问http://sourceforge.net/projects/mingw/files/Install...

2018-03-06 14:55:46 1562

原创 Ubuntu下编译windows版本bitcoin

要编译windows版的比特币程序,基本上有两种方法,一种是在linux平台(推荐ubuntu 13.10)通过交叉编译的方法来编译,另外一种就是直接在windows平台编译。下面就详细介绍一下如何在Ubuntu平台编译比特币程序。官方参考:https://github.com/bitcoin/bitcoin/blob/master/doc/build-windows.mdUbun...

2018-03-06 14:54:53 1497

原创 centos7环境下编译bitcoin

centos7虚拟机安装虚拟机安装完成后需要配置好网络,能连接上互联网后再进行后面操作。vi /etc/sysconfig/network-scripts/ifcfg-ens33 (ens33为网卡名称)TYPE=EthernetBOOTPROTO=static #启用静态IP地址DEFROUTE=yesPEERDNS=yesPEERROUTES=yesIPV4_F...

2018-03-06 09:51:36 1819

原创 10-leveldb repair流程及优化方法

leveldb做为一个单机存储引擎,难免遇到数据损坏的情况:比如意外断电、磁盘坏块等。轻者文件损坏无法读取,严重者则导致数据库无法启动。这个时候就需要进行数据修复了。leveldb提供的修复流程如下:(1) wal日志文件转化为sstable文件(2) 扫描所有的sstable文件(3) 生成MANIFEST文件:由上述流程可知,leveldb修复后会将所有的文件添加到level 0,根据level 0层的规则,由于文件之间key有重叠,读取时会在每个文件都读取一次,速度是很慢的;同时,我们知道Lev

2022-06-13 11:45:00 1155 2

原创 09-leveldb性能优化(三)

本文主要讲述如何设置WriteOptions参数、ReadOptions参数以及compact参数,来提升读写性能。

2022-06-01 22:13:18 811

原创 08-leveldb性能优化(二)

本文主要介绍leveldb写缓冲区大小、块缓存大小、块大小、文件大小等参数的原理,以及如何合理地设置这些参数以达到性能优化的目的。

2022-05-30 12:30:00 1875

原创 07-leveldb性能优化(一)

1-Compaction:清除冗余数据,减少磁盘IOCompaction为什么能提升查询性能,我们从leveldb的原理说起。如图所示,数据写入leveldb的过程如下:数据写入MemtableMemtable达到一定大小后变为Immutable MemtableImmutable Memtable通过Minor Compaction写入0层SSTable数据读取流程如下:从Memtable中查询;从Immutable Memtable中查询;遍历level 0所有文件,若未查找到

2022-05-18 22:01:43 1353

原创 06-Leveldb实现-sstable

本文主要介绍leveldb中sstable文件的组成及格式,数据块、元数据块、元数据索引块、索引块、footer的结构,并结合源码进行分析。

2022-05-14 20:53:26 305

原创 05-Leveldb实现-Memtable

Memtableleveldb数据写入时并非直接落盘,而是先保存在内存中,在内存中的数据按key进行排序。当内存中的数据达到一定大小时,再将这批数据批量写入磁盘。在内存中的数据结构我们称之为Memtable,本节将介绍Memtable的实现。先看代码:class MemTable { public: // MemTables are reference counted. The initial reference count // is zero and the caller must c

2022-05-08 22:13:10 779

原创 04-Leveldb实现-Log

日志文件包含了一系列的32K大小的块。每个块包含了一系列的记录(record):block := record* trailer?record := checksum: uint32 // crc32c of type and data[] ; little-endian length: uint16 // little-endian type: uint8 // One of FULL, FIRST, MIDDLE, LAST data: uint

2022-04-24 12:00:00 535

原创 03-Leveldb原理

01-简介谷歌曾经发布过三篇大名鼎鼎的论文,《GFS-Google FileSystem》、《BigTable》、《MapReduce》,其中BigTable中描述了分布式数据库的实现,而leveldb正是该论文中所描述的tablet的具体实现。同时,leveldb的作者就是《BigTable》论文的作者。leveldb是一个非常简洁且具有代表意义的基于LSM TREE的存储引擎,堪称经典。掌握了LEVELDB,也就掌握了LSM TREE思想的精髓。leveldb存储引擎的原理框架如下图所示:上图简

2022-04-17 08:38:13 659

原创 02-leveldb入门

01-leveldb编译和使用在github下载开源代码:git clone --recurse-submodules https://github.com/google/leveldb.git进入项目根目录,执行以下命令:mkdir -p build && cd buildcmake -DCMAKE_BUILD_TYPE=Release … && cmake --build .以上命令运行之后会编译全部代码包括测试程序,windows下编译生成文件在leveldb

2022-03-20 19:27:48 1568

原创 01-leveldb概述

01-存储背景数据存储是信息时代的一项基础技术,是各种互联网应用背后的重要基石。例如我们每天用到的各种APP,看头条,刷抖音,以及个人的各种电子数据的保存等等,都离不开存储技术。在开发者的角度,数据存储大多是使用数据库,而大家广泛使用的又是比较成熟的关系型数据库,例如mysql、oracle、db2、sqlserver等。一直以来,关系型数据库得到大家的青睐。但随着互联网和信息技术的发展,以及各种新的应用场景的需求,各种数据库不断涌现,也出现了新的数据库类型,比如kv数据库、文档数据库、图数据库、时序数

2022-03-13 19:07:24 1885

原创 Haproxy负载均衡部署

Haproxy安装:useradd haproxy#wget http://haproxy.1wt.eu/download/1.4/src/haproxy-1.4.25.tar.gz# tar zxvf haproxy-1.4.25.tar.gz# cd haproxy-1.4.25# make TARGET=linux26 PREFIX=/usr/local/haproxy ARCH=...

2018-10-27 16:10:00 568

原创 ZeroMq的编译及使用

ZeroMq是一个开源的消息队列网络框架,支持进程内和进程间的通信。 源码地址:https://github.com/zeromq/libzmqwindows下的编译: 打开build/msvc,打开工程,编译报错,解决方案如下: 1、添加宏 ZMQ_IOTHREAD_POLLER_USE_SELECT ZMQ_POLL_BASED_ON_SELECT 2、编译成功,链接出错 将...

2018-07-31 17:57:34 3576

原创 ubuntu安装C++ oracle开发环境(oci)

1、oracle官网下载rpm包 http://www.oracle.com/technetwork/topics/linuxx86-64soft-092277.html 2、安装rpm包 Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien #alien默认没有安装,所以首先要...

2018-07-04 10:07:45 1741

转载 设计模式(十一)——模板方法模式(Template Method Pattern,行为型)

https://blog.csdn.net/k346k346/article/details/60468153

2018-04-12 23:18:39 509

转载 设计模式 (十)——适配器模式(Adapter Pattern,结构型)

https://blog.csdn.net/k346k346/article/details/60465994

2018-04-12 23:08:52 436

转载 设计模式 (九)——外观模式(Facade Pattern,结构型)

https://blog.csdn.net/k346k346/article/details/60462832

2018-04-12 22:35:41 446

转载 设计模式(八)——命令模式(Command Pattern,行为型)

https://blog.csdn.net/k346k346/article/details/60332112

2018-04-12 22:03:39 468

转载 设计模式(七)——单例模式(Singleton Pattern,创建型)

https://blog.csdn.net/k346k346/article/details/60142660

2018-04-10 21:47:41 626

转载 设计模式(六)——抽象工厂模式(Abstract Factory Pattern,创建型)

https://blog.csdn.net/k346k346/article/details/59482370

2018-04-10 21:37:59 313

转载 设计模式 (五)——工厂方法模式(Factory Method,创建型)

https://blog.csdn.net/k346k346/article/details/59119509

2018-04-10 21:32:34 307

转载 设计模式 (四)——简单工厂模式(Simple Factory,创建型)

https://blog.csdn.net/k346k346/article/details/58651682

2018-04-10 16:01:10 316

转载 设计模式 (三)——装饰者模式(Decorator,结构型)

转载自:https://blog.csdn.net/k346k346/article/details/58056854

2018-04-10 15:44:07 250

转载 设计模式 (二)——观察者模式(Observer,行为型)

转载自:https://blog.csdn.net/k346k346/article/details/570804911.概述使用设计模式可以提高代码的可复用性、可扩充性和可维护性。观察者模式(Observer Pattern)属于行为型模式,在对象之间定义一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象都会收到通知,并自动更新。例如,在实际生活中,报纸出版社和订阅者之间存...

2018-04-10 15:36:49 458

转载 设计模式 (一)——策略模式(Strategy,行为型)

转载自:https://blog.csdn.net/k346k346/article/details/552709621.概述使用设计模式可以提高代码的可复用性、可扩充性和可维护性。策略模式(Strategy Pattern)属于行为型模式,其做法是将类所需的行为或者算法一个个封装成单独的类,并将其作为类的数据成员,使得类的行为可以在不改变类设计的情况下灵活变化。2.实例上...

2018-04-10 14:45:12 343

原创 const和staic

constConst:常量类型,被const修饰的部分是不可以修改的,只在声明中使用。Cont int* p,常量指针,即p是一个指向const int的指针,p的值是可以修改的,但是其指向的值是不能修改的。Int* const p,指针常量,即p是一个指向int的指针常量,p的值是不可以修改的,但是p所指向的内容是可以修改的。在类的成员函数后用const修饰,即将成员函数声明为c...

2018-04-10 11:42:26 378

原创 const、static变量在内存中的位置

以下面代码说明各变量的存放位置:static int val_a = 1 ; // 初始化的静态变量 int val_b = 2 ; // 全局变量 const int val_c = 3 ; // const 全局变量 static int val_d ; // 未初始化的静态变量 int val_e ; // 未初...

2018-04-10 10:52:26 1967

原创 主流区块链(公链)项目总结

Bitcoin:比特币项目官网:https://bitcoin.org 发起者:中本聪Ethereum:以太坊项目官网:https://www.ethereum.org/ 发起者:Hyperledger:超级账本项目官网:https://www.hyperledger.org/EOS:柚子项目官网:https://eos.io/QTUM:量子链项...

2018-04-06 14:24:07 5453

转载 什么是拜占庭将军问题

原文:https://learnblockchain.cn/2018/02/05/bitcoin-byzantine/接触区块链的同学,多少都听说过拜占庭将军问题,经常看到或听到某某区块链使用某某算法解决了拜占庭将军问题,那么究竟什么是拜占庭将军问题呢?什么是拜占庭将军问题也被称为“拜占庭容错”、“拜占庭将军问题”。 拜占庭将军问题是Leslie Lamport(2013年的图灵...

2018-03-20 22:40:13 434

原创 ubuntu下搭建Eclipse C++开发环境

ubuntu下使用Eclipse下搭建开发环境基本上网上教程一大堆,但是复杂度太大,因为很多教程都是从JDK开始安装一直到最后,而且很多都是从别的linux发行版上弄来的方法,各种编译直接吓死人有木有,其实ubuntu的方便之处很大程度上在于atp的使用,抹杀了atp-get的ubuntu那就太鸡肋了。​ OK,正题,再ubuntu下搭建Eclipse C++开发环境。​ ...

2018-03-08 16:53:28 3266

原创 Ionic开发环境搭建

Ionic是基于web技术开发移动应用的跨平台框架,可开发手机web、Ios、Android应用程序。1、Ionic环境安装Ionic开发依赖于Node.js环境,因此需要先安装Node.js,在Node.js环境下执行命令:npm install -g cordova ionicnpm是一个包管理器,这里使用npm安装cordova和ionic,-g表示全局安装,全局安装...

2018-02-09 10:52:29 1667 2

原创 json_encode不对中文进行转码、json_decode解析json字符串返回NULL的处理方法

josn_encode不对中文进行转码用PHP的json_encode来处理中文的时候, 中文都会被编码, 变成不可读的, 类似”\u***”的格式。 在PHP5.4及以上, Json新增了一个选项: JSON_UNESCAPED_UNICODE, 故名思议就是, Json不要编码Unicode。代码如下:$json = json_encode($arr, JSON_UNESCAPED_UNICO

2017-10-15 22:09:06 2303

转载 thinkphp5行为扩展实现html静态缓存

参考文章:http://www.yunshare.net/Article/12/7.html 具体方法如下: 1、在application/config.php中添加如下配置: //以下为静态缓存配置 'app_debug' => false,//false为开启静态缓存模式 'html_cache_on' => true, // 开启静态缓存 'html_cache

2017-09-04 15:28:45 6540 1

xulrunner-1.9.0.17.en-US.win32.sdk.zip

用于火狐的扩展及NPAPI插件开发的SDK。使用方法参见我的博客http://blog.csdn.net/anda0109

2015-12-25

U盘识别及自动备份,MFC开发

U盘自动识别及备份的软件,MFC开发,满足你的U盘自动备份要求

2012-07-23

仿酷狗音乐播放器(C语言)

C语言开发的仿酷狗音乐播放器,基本实现酷狗音乐播放器所有功能。

2012-06-13

ldapbrowser

非常方便好用的ldap客户端,是你搭建ldap服务器和进行操作的最佳帮手

2012-04-30

屏幕录像专家_2011.12.26.exe

屏幕录像专家,视频录制,教学视频制作的好帮手

2012-04-01

C语言windows计算器 课程设计毕业设计

C语言写的仿windows计算器,含C语言源代码,适合C/C++开发人员,计算机软件开发人员,及计算机专业课程设计及毕业设计。

2012-02-14

山寨酷狗3.0(含C语言源代码)

C语言开发的酷狗音乐播放器,基本能实现酷狗所有功能,并且有不亚于酷狗的界面,注意歌曲列表不支持双击播放。

2012-02-12

数字键盘高手(C语言源码,课程设计毕业设计)

适合于办公室工作人员,财务管理人员会计等使用的数字键盘练习软件。同时有完整的c语言源代码,也适合程序开发人员,毕业设计课程设计等。

2012-02-12

如何成为十倍效率开发者

本文教你如何成为一个高效开发者,而不是代码工人

2012-02-10

C语言写的酷狗音乐播放器

纯C语言写的酷狗音乐播放器,界面几乎和酷狗7一模一样

2012-02-10

串口高度助手(含源代码)

电子工程师必备工具,串口通讯调试助手,含源代码

2011-07-30

汇编语言写的计算器(含源码)

汇编语言写的计算器源码,你学习汇编的起点。

2011-05-06

四级数据库工程师真题08~09年全

08~09年的数据库真题,并附有详细答案。

2010-03-26

程序员的SQL经典(面向应用,深入学习和掌握数据库的各方面知识)

面向应用,深入学习和掌握数据库的各方面知识

2010-03-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除