- 博客(97)
- 收藏
- 关注
原创 共识算法(二)—— DPoS(股份授权证明)、PBFT(实用拜占庭容错)
DPoS简介DPoS(Delegated-Proof-of-Stake)即股份授权证明,目的是解决PoS和PoW的不足,DPoS是由被社区选取的可信账户(受托人,得票数为所有委托人得前101位)来创建区块,为了成为正式委托人,用户要去社区拉票,获得足够多的用户信任,用户根据自己持有的加密货币数量占有总量的百分比来进行投票。它就像一个股份制公司,普通员工进不去董事会,但可以推选代表(受托人)代他...
2018-11-22 16:26:59
1742
原创 共识算法(一)—— Pow(工作量证明)、PoS(权益证明)
PoW简介PoW (Proof-of-Work)即工作量证明,根据当时区块链网络算力得出的难易程度(前导零,所计算出来的hash开头有多少个0),将区块的属性使其拼凑成一个满足要求的hash值,(nonce值让其一直改变,从而才会计算出不同的hash),然后马上对全网进行广播打包区块,网络上的节点收到广播打包区块,会立即进行验证。网络中最快解密的区块,才会添加到帐本中,其他节点进行复制,这样就...
2018-11-22 15:03:28
4773
原创 Go语言基础(九)—— Go语言结构体、Go语言切片(Slice)、range遍历、Go语言Map(集合)
Go语言结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:Title :标题 Author : 作者 Subject:学科 ID:书籍 ID 定义结构体 结构体定义需要使用 type 和 s...
2018-11-19 22:14:45
876
原创 Go语言基础(八)—— Go语言变量作用域、Go语言数组、Go语言指针
Go语言变量作用域作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。 Go 语言中变量可以在三个地方声明:• 函数内定义的变量称为局部变量 • 函数外定义的变量称为全局变量 • 函数定义中的变量称为形式参数 接下来让我们具体了解局部变量、全局变量和形式参数。 局部变量在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变...
2018-11-19 16:09:43
427
原创 Go语言基础(七)—— Go语言for循环语句、Go字符串、Go语言函数
for循环Go语言的For循环有3种形式,只有其中的一种使用分号,和C语言种的for一样:for init; condition; post { }和C语言种while一样:for condition { }说明:init: 一般为赋值表达式,给控制变量赋初值; condition: 关系表达式或逻辑表达式,循环控制条件; post: 一般为赋值表达式,给控制变量增...
2018-11-19 15:28:22
697
原创 国密SM —— SM3单向散列、SM3案例实现、SM4分组密码标准、Go语言实现SM4加密
func main() { hash := sm3.New() hash.Write([]byte("i am wek $$ The_Reader !")) result := hash.Sum(nil) println("sm3 hash = ",hex.EncodeToString(result)) hash2 := sm3.Sm3Sum([]byte("i am wek ...
2018-11-15 19:12:50
3844
1
原创 国密GMSM2 —— go语言实现国密SM2加密算法
package mainimport ( "github.com/tjfoc/gmsm/sm2" "fmt" "encoding/hex")func main() { //生成私钥 privateKey, e := sm2.GenerateKey() if e!=nil{ fmt.Println("sm2 encrypt faild!") } //从私...
2018-11-12 21:05:14
9959
19
原创 Go语言与RSA算法 —— RSA案例实现
package mainimport ( "crypto/rsa" "crypto/rand" "crypto/x509" "encoding/pem" "os" "fmt" "encoding/hex")//生成私钥和公钥//bits:私钥的长度func RsaGenKey(bits int) error { //生成公钥和私钥 //
2018-11-12 20:07:45
346
原创 Go语言与AES加密算法 —— 简介、AES算法案例
AES简介高级加密标准(英语:Advanced Encryption Standard,缩写:AES),在密码学中又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成...
2018-11-12 19:50:50
874
原创 GMSM —— 国密简介、概念(SM1-9)、ZUC祖冲之算法
国密算法介绍国密算法是国家商用密码管理办公室指定的一系列的密码标准,即已经被国家密码局认定的国产密码算法,又称商用密码(是指能够实现商用密码算法的加密,解密和认证等功能的技术),保障在金融,医疗等领域的信息传输安全。国密算法可分为对称算法和非对称算法,对称算法包括了SM1,SM4,SM7,祖冲之密码(zuc),非对称算法包括SM2,SM9。还有SM3是哈希算法,SM1和SM7对外是不公开的...
2018-11-12 15:20:35
20115
1
原创 单向散列 —— 简介、SHA256加密算法、RIPEMD160加密算法
单向散列单向散列算法,又称hash函数(杂凑函数,或者杂凑算法),就是把任意输入消息字符串变成固定长的输出串的一种函数,这个输出串称为该消息的杂凑值,一般使用产生消息摘要,密钥加密等。具体指的是根据输入消息计算后,输出固定长度数值的算法,输出数值也成为“散列值”或消息摘要,其长度通常在128~256位之间。输入的长度可以是任意的 输出长度是固定的,根据目前的计算技术应至少取128bit长...
2018-11-12 10:23:48
7972
1
原创 Hyperledger Fabric(二)—— Fabric入门及Hello_World
Fabric入门需要的环境docker (docker的安装学习请看https://mp.csdn.net/postedit/83618414) docker-compose go (go的安装学习请看https://mp.csdn.net/postedit/81138437) JDK npm和node.js下载fabric组件的d...
2018-11-12 08:47:29
1434
原创 密码学(一)—— 背景、常用的密码算法简介,单向散列简介、数字签名简介
背景密码,最初的目的就是用于对信息的加密,计算机领域的密码技术种类繁多,但随着密码学的运用,密码还用于身份认证,防止否认等功能上。最基本的,是信息加密解密分为对称加密和非对称加密,这两者的区别在于是否在加密解密时是否使用了相同的密钥。除了信息的加密解密,还有用于确认数据完整性的单向散列技术,又称魏密码检验、指纹、消息摘要。信息的加密解密与信息的单向散列的区别时,加密解密是可以通过密钥来获取其加...
2018-11-09 18:14:50
3244
原创 Hyperledger Fabric(三)—— Fabric智能合约
Fabric 智能合约执行环境:以太坊虚拟智能合约执行环境EVM,fabric执行环境是docker。 链码:是应用层和区块链底层的中间点。 每一个链码执行环境是一个独立的docker 使用GPRC协议与背书节点通信,只有背书节点才能运行智能合约链码得到生命周期打包,智能合约的编写和编译。 安装,将打包好的文件,上传到背书节点。 实例化,实际的安装了,执行Init方法,只执行一...
2018-11-08 22:10:36
3065
2
原创 Docker容器(四)—— Docker数据持久化、部署wordpress、docker-compose简介及使用
docker 数据持久化数据持久化1.停止并删除之前的容器 2.数据持久化的方案绑定挂载的Volume:真实去存储数据,可以指定Volume位置(数据持久化) dataVolume,指定一个共享目录(数据共享)3.Volume创建并启动mysql,密码设置为空 查看所有的valume 查看volume详细信息,可以找到具体目录 停止并删除了mysql容器 ...
2018-11-07 19:24:47
1721
原创 Go语言基础(六)—— Go运算符,Go条件语句
Go运算符运算符用于在程序运行时执行数学或逻辑运算。Go语言内置的运算符有:算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 其他运算符算术运算符假设a=1,b=2:运算符 描述 实例 + 相加 a+b 输出结果为3 - 相减 b-a 输出结果为1 * 相乘 a*b 输出结果为2...
2018-11-05 22:40:21
812
原创 SVN安装与使用教程
简介Apache Subversion 通常被缩写成 SVN,是一个开放源代码的版本控制系统,Subversion 在 2000 年由 CollabNet Inc 开发,现在发展成为 Apache 软件基金会的一个项目,同样是一个丰富的开发者和用户社区的一部分。SVN相对于的RCS、CVS,采用了分支管理系统,它的设计目标就是取代CVS。互联网上免费的版本控制服务多基于Subversio...
2018-11-05 19:46:42
1439
原创 Ubuntu基础(四)—— Ubuntu安装Go及开发工具Goland(图解)
安装Go直接在终端执行:sudo apt-get install golang安装完成后你可以查看版本号,这里默认安装最新版本(也可以加入版本号安装指定版本) 然后配置环境变量,将下面代码添加至 /etc/profile文件下,也可以添加至 ~/.bashrc文件里export GOPATH=/home/GO_PATH //用于go的工作目录export...
2018-11-05 18:52:40
13066
3
原创 Ubuntu基础(三) —— Ubuntu打开和关闭防火墙与安装vim
首先我们先看一下防火墙的状态:可以看到它的状态是不活动的,我们打开它然后查看它的状态:然后我们将它关闭: 卸载iptable关闭ubuntu中的防火墙的其余命令 iptables -P INPUT ACCEPT iptables -P FORWARD ACCEPT iptables -P OUTPUT ACCEPT ipt...
2018-11-05 12:58:25
288
原创 Docker容器(三)—— 对Container(容器)的操作、Dockerfile的一个案例、Docker的网络
运行中对container操作后台运行(-d命令为后台运行,--name为定义名称 ) 操作容器 也可以在外部直接使用容器内部的东西 指定容器的名称 查看容器的详细信息 先看dockers日志 修改容器名字Dockerfile案例运行ubuntu直接安装stress使用 256内存,debug输出 指定超出容器内存的任务Docker的网络b...
2018-11-02 20:07:06
386
原创 Docker容器(二)—— Dockerfile详解、如何分享自己的Dockerfile
Dockerfile详解1.FROM:引入和开始 #从头制作baseImage FROM scratch #使用已有的baseImage FROM centos #指定使用的版本 FROM ubuntu:14.042.LABEL:定义一些说明信息 L...
2018-11-01 22:18:27
366
1
原创 Docker容器(一) —— 容器、docker概念、docker安装及使用
一、容器、docker概念部属演变物理机/KVM部署慢 成本高 资源浪费,CPU内存使用不完 很难迁移虚拟化的优点资源得到了合理分配 容易扩展 很容易云化容器是实现DevOps的解决方案docker能做什么?搭建环境,简化配置 提供开发效率 隔离应用二、docker安装Centos7安装 更新软件源 ...
2018-11-01 20:55:16
367
原创 宠物商店分析与合约实现
背景:wek有一个宠物店,最多可以同时托管16只宠物。他希望可以利用以太坊开发一个去中心化应用,让大家来领养宠物。Truffle Box已经提供了框架代码,我们只需要开发智能合约和接口交互部分。环境搭建https://blog.csdn.net/The_Reader/article/details/83187194安装Ganache,链接:http://truffleframewo...
2018-10-30 08:33:48
953
原创 solidity中的Mapping遍历 案例
pragma solidity ^0.4.18;// mapping 遍历库library IterableMapping { // 增、删、改、查 struct itmap { uint size; mapping(uint => IndexValue) data; KeyFlag []keys; /...
2018-10-29 14:12:22
8835
原创 DAPP与传统web开发的区别
web架构:运行TCP/IP四层,在TCP/IP网络上传递数据。Dapp架构:在TCP/IP基础上添加价值转移层,Dapp天然具有价值转移的功能。 Web应用 DAPP应用 前端 HTML/CSS/JS HTML/CSS/JS 逻辑层 ...
2018-10-22 19:51:19
552
原创 Truffle开发框架
Web3.js概念:与以太坊进行合约交互的javaScript的api作用:以太坊节点只能识别一种JSON-RPC的语言,但JSON-RPC写起来很麻烦,也很容易出错,所以通过web3.js来进行封装,这样就只需要与web3.js进行交互就可以了。英文文档:https://web3js.readthedocs.io/en/1.0/Truffle开发框架概念:Truffle是针对...
2018-10-21 14:56:56
1058
原创 Solidity语言学习——(六)
Solidity面向对象面向对象:oo编程,正对过程而言。特点:封装,继承,多态。Solidity中的面向对象:继承:在solidity中,继承就是合约与合约之间的一种特殊的传递关系。通过is关键字实现继承,子合约(派生合约)可以访问父合约中所有非private的状态变量与函数。继承支持参数的传递。solidity支持多重继承,但是多重继承中不能有同名的合约,如果一个合约继承了多个...
2018-10-19 19:48:07
481
原创 Solidity语言学习——(五)
控制语句solidity中所支持的控制语句:if else , for , while,do while,三目运算符。不支持switch语句。直接通过案例学:// forcontract For { // 等差数列求和 function getSum(uint n, uint x) public returns(uint sum) { for ...
2018-10-18 19:37:39
854
原创 Solidity语言学习——(四)
结构体特点:结构体也是solidity中的自定义数据,它包含基本类型与复杂类型。注:在solidity中结构体类型不能作为返回值来进行返回,只能是返回其指定属性。案例:pragma solidity ^0.4.18;contract structdemo{ struct Bank{ address addr; uint b...
2018-10-17 16:35:29
535
原创 Solidity语言学习——(三)
智能推断:使用var关键字时,第一次赋值给变量,编译器会自动推断变量的类型,而且推断后不能更改这个变量的类型了,如果更改了就会出错,还有就是不能在函数参数中使用。注意:有时候var会推断出一个错误的类型。案例:pragma solidity ^0.4.18;contract Var{ function vardemo() view returns(bool){...
2018-10-17 14:26:22
419
原创 Solidity语言学习——(二)
布尔类型 跟其他语言一样,取值范围为:ture与false Address类型 代表以太坊的地址,长度为20个字节,160位 ,uint160是所有地址都可以用的类型话不多说,直接上案例:contract addr { address addr=0x8cC758f5a41bdF6Ab749944c737F86e6a4B4070B; fu...
2018-10-15 22:25:31
410
原创 solidity语言学习——(一)
Solidity简介Solidity是一门编写智能合约的高级语言,它的语法接近于javaScript,是一种面向对象的语言,以太坊做区块链2.0的典型代表,Solidity在以太坊中是撰写智能合约最受欢迎的语言,因此今天我们就和大家介绍一下这个作为智能合约开发中最主流的语言。Solidity是运行在EVM(ethereum虚拟机)上的一门语言。它虽然跟javaScript很相似,但是呢,它...
2018-10-15 20:42:19
681
原创 go语言命令行操作
当我们想要写出一个程序来时,并想要实现一部分功能,就可以使用命令行来操作,让其实现想要实现的功能。那么,我们应该怎么操作呢首先我先用os.args写一个小案例//命令行参数获取func main() { args := os.Args fmt.Printf("%v\t",args) if len(args)>=2{ for i,v:=range args{ ...
2018-10-09 19:22:06
930
原创 BoltDB
1.简介BoltDB是一个嵌入式key/value的数据库,即只需要将其链接到你的应用程序代码中即可使用BoltDB提供的API来高效的存取数据。而且BoltDB支持完全可序列化的ACID事务,让应用程序可以更简单的处理复杂操作。BoltDB设计源于LMDB,具有以下特点:直接使用API存取数据,没有查询语句; 支持完全可序列化的ACID事务,这个特性比LevelDB强; 数据保存...
2018-10-09 18:43:19
1436
原创 Go语言实现base64编码
package mainimport ( "encoding/base64" "fmt")func main() { var msg =[]byte("i am the reader!") encoding := base64.StdEncoding.EncodeToString(msg) fmt.Println(encoding) bytes, e := base64.S...
2018-10-08 20:01:19
1650
原创 SHA256与ripemd160两种算法应用
package mainimport ( "crypto/sha256" "fmt" "encoding/hex" "golang.org/x/crypto/ripemd160")func main() { hashed := sha256.New() hashed.Write([]byte("i am wek")) hash := hashed.Sum(nil)...
2018-10-08 19:41:14
2478
原创 mysql主从结构环境搭建
首先要有两个装有mysql的节点系统然后将一台定为主节点,一台定位从节点在主节点中,将/usr/share/mysql/my-medium.cnf /etc/my.cnf并vi /etc/my.cnf将server_id改为1从节点做法一样,但要将server_id 改为2然后重启mysql service mysql restart然后可以通过show var...
2018-09-11 21:55:39
223
原创 hedoop3个节点环境搭建
首先在/usr/local下新建一个hadoop文件夹cd /usr/localmkdir hadoop 链接:https://pan.baidu.com/s/1mswY8vgrFlsLuGhCd9fAGQ 密码:evjs然后将安装包放在这个目录下。apache-hadoop-2.7.3.tar.gz可以用scp工具,也可以直接rz上传。方法很多自己用一个就行。...
2018-09-11 20:36:29
344
原创 center os7关闭防火墙与SELinux
安装系统完成后,首先将防火墙关闭,命令为:systemctl status firewalld.service (查看防火墙状态)systemctl stop firewalld.service (关闭防火墙)这只是简单的关闭防火墙,电脑再重启后依然会自动开启的,所以要想永久的关闭防火墙就必须:systemctl disable fireswalld.service这就永久关闭了防...
2018-09-10 21:27:44
1353
原创 分布式编程mysql环境安装
工具下载:链接:https://pan.baidu.com/s/1cqMp-ORDkCe32KVhCJVUgA 密码:4u92 下载好文件后,将其上传至 /home目录下安装前首先解决依赖问题也就是说,直接安装这3个包会出错,会提示有一个依赖包错误没有解决,你可以看一下是哪个依赖包。然后将它处理掉可以看到package后面这个包就是依赖包没有解决。yum -y re...
2018-09-10 19:39:16
215
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅