自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(99)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

翻译 extension point

BUIP039 Upgrade via extension pointhttps://github.com/BitcoinUnlimited/BUIP/blob/master/039.mediawiki概要 迄今为止,仅有硬分叉和软分叉两种方式来升级比特币网络。两种方式各有缺点,软分叉通过矿工激活,对于普通的节点操作者,没有途径来发出他们的声音,也没有机制来反对该分叉。另一方面,硬分叉需要大

2017-12-29 14:44:15 1247

原创 extension block

extension blockhttps://github.com/tothemoon-org/extension-blocks/blob/master/spec.md描述:不需要改变任何现存的共识规则,来增大比特币的交易吞吐量。动机:比特币网络的吞吐量与它重新定向和拒绝服务限制的共识规则相关。 比特币的重新定向规则确保出块时间时间大致在10分钟,该规则不可改变。关于其它大大提高交易吞吐量的

2017-12-23 14:28:35 599

原创 bitcoin rpc command

bitcoin rpc command创建交易bitcoin-cli createrawtransaction “[{\”txid\”:\”myid\”,\”vout\”:0}]” “{\”address\”:0.01}”bitcoin-cli createrawtransaction “[{\”txid\”:\”myid\”,\”vout\”:0, \”scriptPubKey\”:\”scr

2017-12-23 11:20:56 7747 1

转载 C++ typedef typename 作用

C typedef typename 作用vectorsize_type为什么使用typename关键字总结C++ typedef typename 作用* C++的一些语法让人看着费解,其中就有:```typedef typename std::vector<T>::size_type size_type;```vector::size_type* 明白上述语法,首先要先看清vector:

2017-11-25 15:52:34 555

转载 C++构造函数、析构函数与抛出异常

请问构造函数后面的throw()含义 : 在构造时,可能会抛出异常 使用时,要注意用try和catch解释:标准C++中定义构造函数是一个对象构建自己,分配所需资源的地方,一旦构造函数执行完毕,则表明这个对象已经诞生了,有自己的行为和内部的运行状态,之后还有对象的消亡过程(析构函数的执行)。可谁能保证对象的构造过程一定能成功呢?说不定系统当前的某个资源不够,导致对象不能完全构建好自己,又由于C

2017-11-25 15:30:42 1023

原创 C++之 lower_bound And upper_bound And insert

1. 代码#include <set>#include <iostream>int main(){ std::set<int> c = {1, 2, 3, 4, 5, 6, 7, 8, 9}; auto item = c.lower_bound(4); for(; item != c.end(); item++ ){ std::cout << *it

2017-10-11 11:24:50 369

原创 C++ 之 constexpr And shared_ptr

简介constexpr : 指定变量或函数的值可以出现在常量表达式中。解释constexpr 标识符声明可以在编译时 评估变量或函数的值。然后可以在只允许编译时的常量表达式的地方 使用这样的变量或函数(只要提供适当的函数参数)。一个constexpr说明符在对象声明时使用,暗示该对象为const。一个constexpr说明符在函数或静态成员变量声明时使用,暗示它们为inline。一个cons

2017-09-22 11:24:46 294

翻译 Language Mechanics On stacks And Pointers--golang

前言本节专注于:栈和指针。介绍当使用指针不正确时,可能会产生bug或性能问题。特别是当写多线程软件时。所以很多试图从开发者的角度去隐藏指针。然而,如果你想使用go去编程,你没有任何方式可以去避免它。对指针没有很深的理解,你将很难去写出干净,简洁,高效的代码。框架界限引用https://www.goinggo.net/2017/05/language-mechanics-on-stacks-

2017-09-22 10:44:23 356

转载 C++之 volatile

1. 介绍像const一样,volatile是一个类型修饰符。volatile修饰的数据,编译器不可对其进行执行期寄存于寄存器的优化。这种特性,是为了满足多线程同步、中断、硬件编程等特殊需要。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的直接访问。volatile原意是“易变的”,但这种解释简直有点误导人,应该解释为“直接存取原始内存地址”比较合适。

2017-09-21 10:17:45 355

转载 C++之 mutable

mutable 关键字 1. 在C++中,mutable是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中,甚至结构体变量或者类对象为const,其mutable成员也可以被修改。struct ST { int a; mutable int b; }; const ST st

2017-09-11 23:40:40 1801

原创 openssl C语言编码实现rsa加密

首先介绍下命令台下openssl工具的简单使用:   1)生成一个密钥:   openssl genrsa -out test.key 1024   这里-out指定生成文件的。需要注意的是这个文件包含了公钥和密钥两部分,也就是说这个文件即可用来加密也可以用来解密。后面的1024是生成密钥的长度。   2)openssl可以将这个文件中的公钥提取出来:   openssl rsa -in

2017-09-03 22:32:56 8634 2

原创 Go TCP网络程序编写

案例:client和server程序编写: 面向长连接的编程 http://files.cnblogs.com/files/yyx1-1/Go_TCP.7z博客:自定义TCP的数据包 二进制协议, 将发送的数据包按照二进制的格式进行组包发送, 采用二进制协议的好处在于, 可以进行跨语言 交互; 需要用到encoding/binary package; http://www.jianshu.c

2017-08-01 12:54:17 453

原创 Golang gc演进

GC优化GC 的方向:尽量不要大量创建对象, 不要频繁创建对象. 这个道理在所有带gc的编程语言都通用;提高对象重用和避免不必要的对象创建;解决Go语言程序稳定性的问题:内存泄漏(Go语言也提供自我管理内存的方式), 使用memprof来定位;提高程序的运行性能, 使用cpuprof 来定位问题;Go gc的信息:go的gc是固定每两分钟执行一次,每次执行都是暂停整个程序的;gc 执行时

2017-08-01 11:55:37 906

原创 panic: reflect: reflect.Value.SetUint using value obtained using unexported field(go语言)

go语言中在用binary.Read(),把二进制映射为结构体时,如果出现panic: reflect: reflect.Value.SetUint using value obtained using unexported field类似的错误,是要映射的结构体成员没有大写造成的,小写是私有,大写公有的才可以被访问到

2017-08-01 10:40:35 1194

转载 C++ RALL机制详解

RAII 是 resource acquisition is initialization 的缩写,意为“资源获取即初始化”。它是 C++ 之父 Bjarne Stroustrup 提出的设计理念,其核心是把资源和对象的生命周期绑定,对象创建获取资源,对象销毁释放资源。在 RAII 的指导下,C++ 把底层的资源管理问题提升到了对象生命周期管理的更高层次。那么到底什么是 RALL 机制?使用 C+

2017-07-25 22:29:46 14007 4

原创 OpenSSL AES, RSA 算法加密本地文件

该工作采用OpenSSL库作为底层加密支持;采用Qt做界面处理;使用了 AES与RSA加密算法;版本支持: Linux 64bit; Linux 32bit;包含功能: 生成公私钥对;对单文件进行加密,加密后的文件存储在与文件相同的目录下;对单文件进行解密,解密后的文件存储在与文件相同的目录下;后期功能: 对指定目录中所有的文件进行单独加密,加密后的文件存储于当前指定目录的加密目

2017-07-24 16:17:17 1342

原创 Golang Data race 检测

golang中的 go 关键字可以很方便的开启一个协程, 在函数中又非常容易隐藏 go这个关键字; 所以当程序庞大时, 有时会不知道一个变量被几个协程所引用, 是否会引起多个协程竞争。golang在1.1之后引入了竞争检测机制, 可以使用 go run -race 或者 go build -race来进行静态检测。 其在内部的实现大概就是: 开启多个协程执行同一个命令, 并且记录下每个变量...

2017-07-12 11:08:07 2902

原创 GoLang 类型转换和类型断言

Go语言中的强制类型转换 与 C语言的区别是: char b = 9; int a = (int)b; _注意:此处括号中为将强制转换的类型_ ; var Byte b = 9 var uint a = int(b) _注意:此处括号中为 将要转换的值_ Go 的类型断言和switch判断, 两种方式: Comma-ok断言的语法是:value, ok := element.(T)。el

2017-07-11 16:58:40 899

原创 以太坊环境搭建

Golang环境安装;go-ethereum 源码安装 go get -d github.com/ethereum/go-ethereumgo install github.com/ethereum/go-ethereum/cmd/geth

2017-07-11 14:30:13 601

原创 以太坊智能合约solidity

https://remix.ethereum.org(solidity 在线IDE)solidity语言中,int/uint 数组类型的定义: uint[] array;int[] array;数组类型的成员有两个: push 和 length push 给数组类型增加一个元素, 同时该数组长度加1;length 返回当前的数组长度。 contract Demo{ uint[]

2017-07-10 14:47:07 4422 2

原创 区块链 基础

特点:公开、透明,解决交易中信任问题,通过技术推动社会交易成本的降低。采用新的清算方式, 使用流水账记录。1. 区块链的六层结构 数据层 数据区块, 链式结构, 时间戳, 非对称加密, 哈希函数, Merkle树。 网络层 P2P网络, 传播机制, 验证机制 共识层 PoW, PoS, DPoS 激励层 发行机制, 分配机制 合约层 脚本代码,

2017-06-27 15:54:25 834

原创 Go flag包示例

Go 命令行解析示例func test_flag() { ListPort := flag.String("list", "1025", "list port") Server := flag.String("server", "192.168.1.134:9000", "server address") MonitorServer := flag.String("monit

2017-06-27 15:34:52 1125

原创 Go语言学习笔记

Go 编程查看标准包函数方法: ctrl + . + h 或者: ctrl + . + g基础知识运行方式() Golang提供了go run“解释”执行和go build编译执行两种运行方式,所谓的“解释”执行其实也是编译出了可执行文件后才执行的。 Package管理() Golang约定:我们可以用./或../相对路径来引自己的package;如果不是相对路径,那么go会去$GOPATH/

2017-06-27 14:38:22 816

原创 Go panic, defer, recover 的异常处理

本内容为部分转载 : http://www.cnblogs.com/ghj1976/archive/2013/02/11/2910114.html1.go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。在极个别的情况下,也就是说

2017-06-26 11:52:59 795

原创 Qt 文件夹与文件操作

void getDirAllFileInfo(){ QDir dir("../"); //创建文件对象, 参数为文件路径 QStringList filter;//目录筛选条件对象 //filter<<"*.dat"; //设置文件后缀名过滤 //dir->setNameFilters(filter);//设置筛选 QList<

2017-06-11 22:31:53 370

原创 动态库链接问题解决

一 .编译动态库: 使用动态库的四种方法:   1. export LD_LIBRARY_PATH=/usr/lib64/( so所在路径)     只对当前用户的终端生效, 其他用户没用。   2.在该 sudo vim /etc/ld.so.conf文件下; 将动态库的路径加进来;然后 sudo ldconfig -v 进行更新。(这种方法的弊 端,可能其他的操作系统

2017-04-26 16:04:54 2206

原创 java.lang.InternalError: internal error: SHA-1 not available

Ubuntu 12.04 安装Tomcat 与 eclipseTomcat 或 eclipse启动后 出错SHA错误情况 Tomcat 启动后, 指定端口, IP 可以ping通, 但浏览器中打不开; logs目录 catalina.out 日志输出: java.security.NoSuchAlgorithmException: SHA1PRNG SecureRandom not avai

2017-04-25 16:35:32 4194

原创 GitHub操作

在github上 创建一个git仓库回到本地, 初始化当前 git环境(此步骤只需要一次) git init (会在当前出现一个.git隐藏文件 ) 将本地路径 跟远程的git路径 相关联(此步骤只需要一次) git remote add origin url查看本地仓库链接的远程仓库地址 git remote -v 配置git的用户名和密码(此步骤只需要一次) git

2017-04-19 13:14:07 372

转载 iptables详解

一:前言防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这就是防火墙的策略,规则,以达到让它对出入网络的IP、数据进行检测。目前市面上比较常见的有3、4层的防火墙,叫网络层的防火墙,还有7层的防火墙,其实是代理层的网

2017-04-12 13:11:17 249

原创 TCP/IP 数据流套接字传输注意事项

1. IP地址修改后关闭原来套接字 问题的出现: 一个本机客户端已链接的套接字, 在修改本机IP后, 再去关闭该链接服务器套接字; 出现的状况: close() 或shutdown() 显示成功. 注意: 此时去服务器查看套接字状态, 发现该套接字在服务器上并未关闭, 继续处于链接ESTABLISHED状态. 在关闭链接套接字前, 一定要 确保此套接字对应的IP地址不被修改..

2017-04-11 14:18:42 908

原创 Go 普通LOG输出

因为Go 语言中没有自带的宏, 来表示行号和文件, 需要从方法中去获取,麻烦.所以封装了一个函数,用于输出平时程序的打印日志package mainimport ( "fmt" "log" "net" "runtime" "strconv")func AddLog(msg string) string { _, _, line, ok := ru

2017-03-30 21:34:10 638 1

原创 sigsetjmp()与siglongjmp()

使用sigsetjmp()与siglongjmp()int sigsetjmp(sigjmp_buf env, int savesigs);void siglongjmp(sigjmp_buf env, int val);解决竞态问题的另一个办法: 从信号函数中调用siglongjmp(). siglongjmp() 作用: 局部跳转,使用它可以从一个函数跳至另一个函数. 使用sigs

2017-03-27 18:34:40 1883

原创 C字符串 与 uint32类型互相转换

字符串转换为 unsigned int 类型/*将传入的字符串转换为无符号的的32位整形 *@param: str : 传入的字符串 *retval: The converted value.*/static unsigned int atoui(const char *str);unsigned int atoui(const char *str){ unsigned int

2017-03-22 09:51:46 16247

原创 https 资料收集

这里,彻底了解HTTPS. http://mp.weixin.qq.com/s/_DCI6OyH6cPfeRBvPHZkDA2.

2017-03-22 09:07:51 446

原创 Go语言包的注意事项与目录管理

Go语言包的注意事项Go 包与目录管理 http://studygolang.com/articles/2233

2017-03-21 23:32:19 371

原创 USB协议及认知

1.USB的拓扑结构决定了主机控制器就是最高统帅,没有主机控制器的要求设备永远不能主动发数据。所以主机控制器在USB 的世界里扮演着重要的角色,它是幕后操纵者。2.数据包的发送, 这个过程包含很多信息, 一切的工作都是主机控制器给我们做的. (USB Host控制器主要介绍这两种, EHCI, OHCI). EHCI主要针对高速的USB设备; 如果要操作全速和低速可以考虑OHCI。3.US

2017-03-17 18:49:26 639

转载 基于Linux的USB 主/从设备之间通讯的三种方式

转载:http://archive.eet-china.com/www.eet-china.com/ART_8800323770_617693_TA_eda530e7.HTM随着简单易用的USB接口日益流行,在嵌入式系统中添加对USB接口的支持已成为大势所趋。本文通过介绍Linux中支持USB的各种模块和库,分析了在Linux上利用USB实现高速串口和以太网连接等通信方式的具体方法。通用串行总

2017-03-17 18:49:20 11048

原创 Linux 关机 休眠, 关闭移动设备自动挂载 命令

"+++++++++++++++++++++++++ Linux 关机、休眠命令 +++++++++++++++++++++++++++++++++++++++"indows7关机、重启、待机、休眠命令 Windows7下一些关机、重启、待机、休眠命令,通过Autohotkey可实现快速关机等操作。 ;立即关机,无提示、延时。shutdown -p;立即重启shutdown -r -t 00;进入

2017-03-17 18:49:16 608

原创 Linux中网络通信中 使用的结构体

"+++++++++++++++++++++++++ Linux TCP/UDP通信中的结构体 +++++++++++++++++++++++++++++++++++++++"struct udphdr{u_int16_t source;u_int16_t dest;u_int16_t len;u_int16_t check;};struct iphdr{#if __BYTE_ORDER ==

2017-03-17 18:49:11 685

原创 多线程开发中遇到的问题

1.最近开发项目:大体框架如下:    1. 主线程接收命令, 放进队列 1 中. (命令分 2 种: 本地执行命令;   网路传输命令)  2. 处理线程: 从队列 1 中取出依次取出命令进行处理;       分两种情况: 1. 取到本地命令, 直接执行, 并立即将结果放入队列 2 中, 使用信号量 通知主线程 接收处理结果;             2. 网络传输命令, 本地立即组

2017-03-17 18:49:07 1070

OpenSSL 加解密文件 解密程序

Qt界面程序, 调用OpenSSL加密库, 采用AES, RSA完成本地文件加密; 本压缩包支持Linux 32bit

2017-07-24

OpenSSL Windows64动态库, Linux32位动态库

OpenSSL Windows64动态库, Linux32位动态库

2017-06-09

C实现线程池

C实现线程池

2017-04-25

压缩算法miniz

2017-03-27

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

TA关注的人

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