自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 比特币源码分析——比特币地址生成流程

简介本文参考密钥和地址,主要内容是分析生成比特币地址的代码流程。获取新地址bitcoin-cli getnewaddress通过命令bitcoin-cli getnewaddress可以得到一个新的比特币地址,其调用流程如下:bitcoin_cli.cpprpcwallet.cppwallet.cppscriptpubkeymap.cpoutputtype.cppCallRPC()get...

2020-01-29 13:26:09 108

原创 比特币源码分析———编译、调试环境搭建

主要内容源码下载berkerydb安装比特币源码编译vscode设置支持编译及断点调试PS: 本文非面向小白内容,需要有一定的C++、VSCODE等的基础,文中很多路径使用的是本机的绝对路径,直接copy不可以使用。我本机比特币源码路径为/home/sglfe/Workspace/c++/bitcoin仅供参考。源码下载//berkeley db 下载 wget http:/...

2019-12-24 23:14:28 141

翻译 使用GO语言实现区块链网络连接功能

原文:《Part 2: Networking — Code your own blockchain in less than 200 lines of Go!》如果你还没有读《200行go代码实现区块链》可以先读一下,以下内容以其为基础。本文仅是模拟节点广播区块链数据到其他节点,可以在此基础上进行一些修改使其真正地成为节点互联。流程 第一个终端负责产生创世块,并建立TCP服务接受...

2018-04-19 21:22:13 911

翻译 使用GO语言实现POW挖矿

本文接上一篇文单《200行go代码实现区块链》,在上文中我们使用go语言实现了一个简单的区块链,本文我们在其基础上添加挖矿功能。原文出处《Code your own blockchain mining algorithm in Go!》什么是挖矿?加密货币必须保持其稀缺性才能保证其价值 ,假如任何人都可以在任何时间产生任意多的比特币,那么比特币将一文不值。比特币算法每隔10分种就会...

2018-04-18 23:23:21 1387

翻译 200行go代码实现区块链

本文翻译自《Code your own blockchain in less than 200 lines of Go!》,国内被墙无法访问。由于我的英语水平有限,所以也不逐段翻译,而是概括其关键内容。你可以学到什么创建自己的blockchain理解哈希算法是怎样保证blockchain的完整性理解新块是如何被添加的如何解决多个节点竞争问题通过浏览器来查看你的blockcha...

2018-04-17 23:51:10 2373 1

原创 Fabric实践(二):用户收入支出记录Chaincode

摘要在上一篇文章中实现了一个简单的用户登陆验证的Chaincode,接下实现用于记录用户收支情况的ChaincodeChaincode/*** file:journal_chaincode.go**/package mainimport ( "bytes" "encoding/json" "fmt" "strconv" "g...

2018-04-14 21:32:19 1472 4

原创 Fabric 实践 (一):用户验证Chaincode

说明我计划构建一个基于Fabric的记帐DAPP,同时也是一个学习的过程,在此分享。 以下内容全部基于Fabric V1.1.0摘要下面实现第一个Chaincode 用于用户登陆验证。该Chaincode非常简单,以用户名作为Key 以其密码作为Value,这样当用户登陆时就可以检查其密码是否正确。Chaincodepackage main/*** file:...

2018-04-14 21:05:28 1815 2

原创 docker-compose 搭建以太坊(Etherum)联盟链

摘要今天干了件事,虽然不是很难吧,但是里面还是有一些坑,所以我想还是写个博客记录下来,同时也跟大家分享一下。 本文的主要内容包括:基于docker ubuntu:16.04镜像生成以太坊节点镜像(安装geth,并生成新的境像)使用docker-compose启动三个docker container分别为 一个bootnode 和两个独立的以太坊节点记录一些在部署过程的注意事项。...

2018-04-01 09:40:28 1517

原创 简单椭圆曲线加密算法(ECC)示例(MATLAB实现)

摘要本文主要是使用MATLAB演示椭圆曲线加密算法(ECC)的加密/解密过程,内容包括密钥、公钥生成,以及通过加密并解密一个简单数字的过程来描述其使用方法。 本文实际是对以下两篇文章的一个MATLAB实现,并且提供了两个实用的MATLAB工具函数以便在阅读过程中可以随时检验计算的结果。本文不讲ECC数学原理,但代码中又实际用到其数学规则,所以读者应该结合下面两篇文章阅读本文。(本文更像是对下...

2018-03-22 23:26:53 6065 4

原创 AES加密算法go语言实现

看了篇关于AES加密的文章 《AES加密算法的详细介绍与实》对AES加密的算法写的是非常清楚,我就根据文章的描述实现了一版GO语言的,下面直接上代码了。//file:aes.gopackage aesvar S [16][16]byte = [16][16]byte{ [16]byte{0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5...

2018-03-20 22:52:14 502

原创 HyperLedger Fabric学习(二)——使用Docker镜像编译Fabric(1.0.4)源码并搭建简单测试网络

简述本文主要内容是使用docker镜像编译Fabric源码,并使用编译生成的程序构建一个只有1个Orderer、1个Peer的简单网络,以此作为后续学习的基础。 本文代码使用fabric v1.0.4、docker镜像是yeasy/hyperledger-fabric:1.0.4,我们可以从 Docker Hub上看到该镜像的信息,基于golang镜像构建,给我们安装好了编译Fabric的环...

2018-03-17 23:44:23 2111 6

原创 web3 编译以太坊智能合约流程

简介本文适合已经对以太坊有所了解,并自己动手做过一些测试的读者。 本文使用的代码来源于 http://blog.csdn.net/daichunkai123/article/details/78112640 ,但我在根据文章实践的过程中发现这篇文章中有一些坑,我将在本文中予以修正。环境安装(也是本人测试使用环境)安装并启动testrpc npm install -g...

2018-03-08 21:57:10 2756 1

原创 Hbase 行键设计(rowkey) 实现多条件查询

2018最新编辑本文写完的时间是2017年初写的,当时对HBASE的理解不深,随着一年多的学习,感觉这篇文章里的方法挺鸡肋的,在我近一年的工作中根本没有用到。 HBASE的使用跟业务逻辑有很强的关联性,就像本文里提到的例子使用ElasticSearch更合适。HBASE适合那种使用key-value模式的快速查询,多字段查询还是不适合它。 所以大家如果看本文的话,就全当是加深对hbase过...

2018-02-08 10:42:51 45195 15

原创 HyperLedge Fabric V1.0.4 踩坑汇总

HyperLedger Fabric 问题汇总在阅读文档《write first app》时,在执行./startFabric.sh可能会遇到以下错误Error: Error getting endorser client channel: PER:404 - Error trying to connect to local peer/opt/gopath/src/github...

2018-01-26 22:40:03 4411 1

原创 hadoop 2.7.3 源码分析(四):namenode启动流程

摘要通过前边的文章我们已经知道,hadoop namenode启动的类org.apache.hadoop.hdfs.server.namenode.NameNode,本节内容就顺着其启动流程,查看在namenode启动的过程中其都做了哪些工作。启动我们通过命令$start-dfs.sh启动hadoop集群的namenode和datanode,在namenode启动的过程中JVM首先加载org.apa

2016-11-27 14:40:51 2895

原创 hadoop 2.7.3 源码分析(三):hadoop远程调试

摘要调试是学习代码流程,查找BUG,修复错误的重要方法,本文内容主要是讲述在前两篇内容的基础上如何配置Idea和hadoop以使其可以使用远程调试(打断点、逐行运行等)功能Idea 设置首先需要将hadoop源码的maven工程导入idea中(这个就不讲了),导入后呢我们可以在模块hadoop-hdfs-project 下找到hadoop namenode启动的源码(在package:org.apa

2016-11-26 15:03:43 3238

原创 hadoop 2.7.3 源码分析(二):超简单源码修改测试

前言在上一节中我们搭建起了测试环境,这一节我们根据前边序言中的内容,修改一下nameNode的启动代码看是否生效。修改代码在工程 hadoop-hdfs-project中的hadoop-hdfs中找到源文件NameNode.java(在包org.apache.hadoop.hdfs.server.namenode 内)在main 函数内添加以下代码System.out.println("Hello

2016-11-26 12:33:10 3167 2

原创 hadoop 2.7.3 源码分析(一):环境搭建

序回头想想自己学习大数据相关的技术已经有很长的时间了,在这段时间里主要学习了hadoop、zookeeper、hbase、kafka、flume、spark、storm等等,有一些在工作当中使用到了(比如zookeeper、hadoop)就比较熟悉但大部分都是浅尝辄止没有做深入的研究学习。 hadoop作为时下流行的大数据处理框架,其使用范围广,开发社区活跃。在国内很多大型公司如京东、百度、阿里等

2016-11-26 11:50:34 2598

原创 Ansible(二):Ansible之剧本(Playbooks)

1、剧本(Playbooks)简介剧本是Ansible的配置、部署语言,由它对描述你想要远程机器执行的策略或步骤。 使用剧本不仅可以简单的对远程机器进行管理,还有很多更强大的功能 。2、关于YAML每一个Ansible剧本都是一个YAML格式的文件,有一些简单的YAML语法需要先了解一下所有的YAML文件都是由—开始由…结束所有的列表中的每一项都是由一个“-”开头 例如字典(或者叫做MAP

2016-11-25 14:59:36 11728 1

原创 Ansible(一):Ansible安装及测试

摘要本文主要内容是介绍Ansible的安装及测试,文章内容主要摘自Ansible的文档。背景公司近期开发分布式采集服务器,尽管当前测试仅由三台服务器组成,但是规划中会有近百台服务器一起工作。这就需要有一种方法或者工具可以批量管理整个集群,举个最简单的例子,例如软件升级,当你需要更新某一个jar包时,你肯定不愿意一台服务器一台服务器地复制文件、重启相应的进程,你希望你可以在一台服务器上进行一些操作,使

2016-11-23 15:25:50 5958

原创 kafka系列(七)使用Kafka-Connect导入导出数据

摘要本文主要内容是介绍如何使用kafka-connect进行导入导出数据,文章内容来自于kafka官方文档,对官方文档中一些内容作了简要补充。简介向console中写入数据然后再写回到console是非常方便的,但是你可能想从其他的数据源写入数据,然后将数据导出到kafka以外的其他系统,kafka connect 为很多系统提供导入导出数据功能,而不用写任何代码1、准备数据源>mkdir /dat

2016-11-14 11:41:57 7488 3

原创 kafka系列(六)---kafka安装配置与简单测试

摘要前边转发的五篇文章,作者对kafka的设计作了很多介绍,文章写的时间也比较早,现在kafka最新稳定版本已经是0.10.1.0。设计思路没有改变,只是对前文中提到的改进的方面已做了改进。 本文主要内容是kafka启动配置,以及一些简单的测试。 大部分内容来自kafka 0.10.1.0的官方文档快速启动下载解压大家可点击下边链接下载最新稳定版0.10.1.0 h...

2016-11-13 15:20:32 614

转载 Kafka设计解析(五)- Kafka性能测试方法及Benchmark报告

本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/31/KafkaColumn5_kafka_benchmark摘要  本文主要介绍了如何利用Kafka自带的性能测试脚本及Kafka Manager测试Kafka的性能,以及如何使用Kafka Manager监控Kafka的工作状态,最后给出了Kafka的

2016-11-11 12:12:40 816

转载 Kafka设计解析(四)- Kafka Consumer设计解析

本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/08/09/KafkaColumn4摘要  本文主要介绍了Kafka High Level Consumer,Consumer Group,Consumer Rebalance,Low Level Consumer实现的语义,以及适用场景。以及未来版本中对High Le

2016-11-11 12:11:15 293

转载 Kafka设计解析(三)- Kafka High Availability (下)

本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/06/08/KafkaColumn3摘要  本文在上篇文章基础上,更加深入讲解了Kafka的HA机制,主要阐述了HA相关各种场景,如Broker failover,Controller failover,Topic创建/删除,Broker启动,Follower从

2016-11-11 12:10:00 352

转载 Kafka设计解析(二)- Kafka High Availability (上)

本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/04/24/KafkaColumn2摘要  Kafka在0.8以前的版本中,并不提供High Availablity机制,一旦一个或多个Broker宕机,则宕机期间其上所有Partition都无法继续提供服务。若该Broker永远不能再恢复,亦或磁盘故障,则其上数据将丢

2016-11-11 12:08:21 247

转载 Kafka设计解析(一)- Kafka背景及架构介绍

在阅读《learning apache kafka second editon 》的过程在网上发现了几篇好的文章,不由感叹文章作者真是太NB了,现原文转发。本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/03/10/KafkaColumn1摘要  Kafka是由LinkedIn开发并开源的分布式消息系统,

2016-11-11 12:03:05 729

转载 Hadoop+zookeeper集群部署

Hadoop+zookeeper集群部署(本文是工作过程中,一个同事整理编写的,非常全面详细,在此对其表示由衷的感谢,同时也分享给大家,希望对有此需求的朋友能给予帮助)一、集群服务器情况IP主机名进程192.168.0.202hadoop-masterNameNode/ DataNode/ Journa

2016-11-09 23:26:59 422

原创 Zookeeper学习(一)

《Zookeeper distributed process coordination》学习笔记。 第一部分Zookeeper基础 通过搭建使用zookeeper管理Master-Worker模式集群,加深对基的理解。系统结构图如下 我们使用工具zkCli以该图为基础实现书中的示例一、Master节点Master节点负责管理workers和tasks,并且负责分配任务(task)

2016-10-26 20:49:15 2338

原创 apache-flume-1.7.x配置安装

本文内容主要参考自Apache Flume用户文档(http://flume.apache.org/FlumeUserGuide.html),由于关于Apache Flume 1.X的中文参考资料不是很多,所以这里将我部署的过程记录下来,希望能给有同样需要的人们有一些提示作用。 (英文文档的内容很多,这里只写一些我自己用到的)OverviewApache Flume 是一个高效的分布式日志收集系统

2016-10-19 19:54:14 4232

原创 实用文章收集

eclipse 远程调试tomcathttp://jingyan.baidu.com/article/0320e2c1f4ef6b1b87507b06.html

2016-10-12 17:52:15 387

原创 AVRO 数据序列化系统学习笔记

本篇内容基于《hadoop权威指南(第三版)》内容。我在实现书中源代码的时候会出现一些错误(我在windows平台下测试),这里做了一些改进,同时我也想在书中内容的基础上了解更多AVRO的信息,所以写这个笔记对自已学习的内容有一个记录,方便以后使用。1、简单AVRO实例1.1、修改pom.xml添加以下代码 <dependency> <groupId>org.apache.ha

2016-10-08 17:08:07 440

原创 linux zookeeper 集群搭建

网上有很多zookeeper安装的教程,简洁明了的如 http://blog.csdn.net/gobitan/article/details/8659175 我这里安装过程与上述文章没有大的区别只是为了管理方便使用以下代码复制zookeeper的相关文件#!/usr/bin/expect -f# my scp command this file can copy files or dirs

2016-10-06 21:47:59 373

原创 批量配置计算机集群SSH免登录

今天准备在自已电脑上使用5台虚拟机搭建一个zookeeper+hadoop+hbase的一个完全分布模式的实验环境。每台机器都安装ubuntu server 12.04版本的linux系统,并正确安装ssh。 给5台机器分别起名为h1、h2、h3、h4、h5。 新建一个虚拟机名称为dns,安装bind9用作域名解析(问问度娘,确保五台机器能够互联) 现在我想让这五台机器之间实现ssh互联免密码

2016-10-01 12:45:32 1299

原创 linux操作知识归集

linux操作知识归集(ubuntu)修改主机名vi /etc/hostname该文件中第一行就是主机名设置固定IP,以及DNS在Ubuntu 12.04 server 中需要sudo vi etc/network/interfaces下图为本机文件内容 关于cp命令的一些测试cp是文件复制命令,是linux使用过程中常用的命令之一。 在

2016-09-30 19:42:40 431

原创 Hbase 快速启动指南

本文内容参考《HBASE权威指南》中关于“2.1 、快速启动指南”1、正确安装JDK,并设置JAVA_HOME等环境变量2、安装HBASE解压hbase压缩包tar -xvzf hbase-1.2.3-bin.tar.gz将解压后的目录移动到你希望的hbase安装目录我这里将其移动到/home/local/目录下 sudo mv hbase-1.2.3 /home/local3、配置Hbase进

2016-09-28 14:19:14 551

原创 Linux JDK1.8 安装(基于Ubuntu)

关于Linux jdk(下载、安装)的网络文章有很多,此处不再赘述。 此处主要是记录一些环境变量的配置1、编辑/etc/profilesudo vi /etc/profile2、向其中添加以下内容export JAVA_HOME=/home/local/jdk1.8.0_91 export PATH=$PATH:$JAVA_HOME/bin export CLASS_PATH=.:$JAVA_

2016-09-28 11:27:16 215

原创 SSH安装(基于Ubuntu)

通常为了便于管理linux服务器,我们会给服务器里安装ssh以便远程登录。以下介绍ssh安装过程1、更新源(如果最近更新过可以跳过)sudo apt-get update2、安装sudo apt-get install ssh3、重新启动sshsudo service ssh restart 如果没有报错就说明我们的ssh服务启动成功了,之后我们就可以用ssh连接工具连接了(推荐使用putty)

2016-09-28 11:01:07 212

原创 vsftpd 安装配置(基于Ubuntu)

vsftpd 安装配置(基于Ubuntu)1、更新源sudo apt-get update2、安装vsftpsudo apt-get install vsftpd3、添加ftp帐号和目录3.1、先检查一下nologin的位置sudo locate nologin 我本地执行上述命令后可以看到nologin位置在/usr/sbin/nologin 3.2、使用下面的命令创建帐户,该命令指定了 /h

2016-09-28 10:41:41 240

原创 常用排序算法----Java实现

依赖包: junit-4.11-extended:1.0.4 commons-lang3:3.4源码:package com.alogrithms.sort;/** * Created by 410s on 2016/6/13. */import org.apache.commons.lang3.ArrayUtils;import org.apache.commons.lang3.Ran

2016-06-16 18:06:36 237

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