自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

The_Reader的博客

区块链从零到精通

  • 博客(94)
  • 收藏
  • 关注

原创 智能合约字节码更改,细节分析

未包含sendAction的智能合约pragma solidity >=0.4.22 <0.7.0;contract creatObject { function mapSet(uint actionNum) public payable { address a = 0x114330783bb97174154dfae5d1c67...

2020-05-26 15:34:33 1067

原创 将tendermint私钥转换成以太坊私钥及以太坊keystore

package mainimport ( "crypto/ed25519" "encoding/hex" "encoding/json" "fmt" "github.com/insight-chain/inb-go/accounts/keystore" "log")func main() { GetKeyStore("/home/wek/Desktop/inb2",...

2020-03-12 17:22:50 564

原创 以太坊 根据keystore文件与密码生成私钥

导入ethereum相关包package mainimport ( "encoding/hex" "fmt" "github.com/ethereum/go-ethereum/accounts/keystore" "github.com/ethereum/go-ethereum/crypto" "io/ioutil" "log")func main() { privK...

2020-03-11 10:24:21 3103

原创 设计模式 (一)—— 二十三种设计模式都有哪些

设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代...

2020-01-04 14:59:24 350

原创 安装Goland19.3

这里附送三个jh码第一个A82DEE284F-eyJsaWNlbnNlSWQiOiJBODJERUUyODRGIiwibGljZW5zZWVOYW1lIjoiaHR0cHM6Ly96aGlsZS5pbyIsImFzc2lnbmVlTmFtZSI6IiIsImFzc2lnbmVlRW1haWwiOiIiLCJsaWNlbnNlUmVzdHJpY3Rpb24iOiJVbmxp...

2019-12-23 16:40:51 884 1

原创 以太坊笔记(一)—— geth命令

一、Geth是什么Geth是由以太坊基金会提供的官方客户端软件,用Go编程语言编写的。Geth提供了一个交互式命令控制台,通过命令控制台中包含了以太坊的各种功能(API)。全名go-ethereum,github地址go-ethereum。wiki里为使用文档。Geth 命令是以太坊提供的一个强大的命令行工具,它是使用以太坊的入口。它包括了很多子命令,你可以通过geth --help获...

2019-12-21 10:15:37 644

原创 golang —— go语言实现字符串连接的几种方式

第一种 字符串变量直接相加连接var str1 = "hello" var str2 = "world" var str3 string str3 = str1 +" " + str2 //直接实现字符串相加,之间加了一个空格 fmt.Println(str3) //输出str3第二种 由字符串变量直接连接字符串str1 +...

2019-11-15 11:55:02 875

原创 装备选择

1,装备选择的界面。下面是个简单代码演示LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_he

2019-11-15 11:54:31 418

原创 Adnroid零基础之线性布局与相对布局

一. Linearlayout线性布局中,有4个及其重要的参数,直接决定元素的布局和位置,这四个参数是: 1. android:layout_gravity (是本元素相对于父元素的重力方向 2. android:gravity (是本元素所有子元素的重力方向) 3. android:orientation (线性布局以列或行来显示内部子元素) 4. android:layout_w

2019-11-15 11:54:20 375

原创 Android零基础之背景及系统架构

第一篇博客,开启Android,我是被动的Android背景及相关系统架构个人感觉这一章没什么大的用途,只是了解就可以了。 当你看到这张图片,我相信吸引你的并不是Android了,而是吃的,又或者在想自己已经吃过几种了。你知道这么多好吃的,那种最普及吗? 我来告诉你 很明显Android4.0以后的版本占有市场大部分份额,但这只是几年前

2019-11-15 11:54:09 326

原创 Android零基础之环境Android Studio安装

安装Android Studiio首先你得有安装包,以及环境,电脑配置应该在4G内存以上才能流畅运行,但我感觉买内存4G的比较多,所以安装一个SSD(固态硬盘)应该也可以,又或者升级一下内存,也是可以的。 http://pan.baidu.com/s/1jHIY4Do 首先,安装jdk配置环境,这个jdk版本是不需要配置环境变量的,它自己就给配置了。安装很简单,就是下一步下一步就行。 下面是安

2019-11-15 11:53:57 359

原创 golang —— go语言科学记数法使用

go语言的科学记数法package mainimport "fmt"func main() { fmt.Printf("%f\n", 1.345e9)//e9 就是小数点向右移动9位 fmt.Printf("%.10f\n", 12344E-9)//e-9就是小数点向左移动9位,%.10f表示精确到小数点后10位 fmt.Printf("%.2e\n", 12312312...

2019-11-15 11:53:50 2978

原创 一个Android小实验

运行效果: mainactivtypackage edu.bzu.cn.myapplication;import android.app.Activity;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends Activity {

2019-11-15 11:53:40 252

原创 golang小案例 —— 测量代码中的变量内存

unsafe.Sizeof() func Sizeof(v ArbitraryType) uintptr Sizeof返回类型v本身数据所占用的字节数。返回值是“顶层”的数据占有的字节数。例如,若v是一个切片,它会返回该切片描述符的大小,而非该切片底层引用的内存的大小。实例:package mainimport ( "fmt" "unsafe")func...

2019-11-15 11:52:41 424

原创 golang小案例 —— 1970 年1月1日到现在的时间秒数计算出现在的日期时间

根据1970 年1月1日到现在的时间秒数计算出CHINA现在的日期时间(考虑闰年,平年,时区等因素)package mainimport ( "time" "fmt")func main() { ret :=time.Now().Unix() var days = int(ret / ( 24 * 3600 )) ret = ret % ( 24 * 3600 ...

2019-11-15 11:52:31 2441

原创 golang小案例 —— 剪子剪子包袱锤小游戏

go语言简单的玩耍一下剪子包袱锤游戏。。。。。。package mainimport ( "fmt" "math/rand" "time")func main() { caiQuan();}func caiQuan(){ var a int var quan string fmt.Println(" \t\t<--- 锤,剪子,包袱 --->...

2019-11-15 11:52:21 850

原创 正则表达式 —— 简介

正则表达式简介: 正则表达式(Regular Expression)是一种文本模式,包括普通字符(例如,a 到 z 之间的字母)和特殊字符(称为"元字符")。 正则表达式使用单个字符串来描述、匹配一系列匹配某个句法规则的字符串。正则表达式是繁琐的,但它是强大的,学会之后的应用会让你除了提高效率外,会给你带来绝对的成就感。用途: 在编写处理字符串...

2019-11-01 20:08:58 277

原创 mark text 快捷键 列表

mark text 快捷键 列表功能快捷键备注一级标题Ctrl + 1二级标题Ctrl + 2三级标题Ctrl + 3四级标题Ctrl + 4五级标题Ctrl + 5六级标题Ctrl + 6加粗Ctrl + B标题默认加粗倾斜Ctrl + I倾斜样式插入表格Ctrl + T侧边...

2019-10-11 16:12:19 2030 2

原创 以太坊生成私钥并获取其地址查询余额

偶然间突然想碰碰运气,生成eth私钥,然后拿它的地址去获取主网上的余额,如果有就保存私钥,虽然这种概率非常小,但也并不是不可能,嘻嘻相信很多人都有过这个想法,废话不多说,直接上代码:package mainimport ( "myproject/eth_utils" "strings" "net/http" "log" "io/ioutil" "encoding/json...

2019-10-08 14:49:28 6473 23

原创 以太坊搭建私链 并使用 rpc 调用

前期准备,在源码内make clean &amp;&amp; make geth找一个空闲地方mkdir  chainnamecd chainname 做下一步之前需要把geth添加至环境变量,否则无法使用geth然后需要建一个json文件,内容为:{ "config": { "chainId": 0, "home...

2019-01-03 15:51:52 1424

原创 go语言排序之选择排序、冒泡排序、快速排序

选择排序:即每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。 选择排序是不稳定的排序方法。package mainimport "fmt"//选择排序func main() { bytes := []byte{9, 7, 3, 5,...

2018-12-11 21:09:46 354

原创 Go语言基于数组实现栈小案例

 栈:四个字就是后进先出,或者先进后出的一种数据结构,可以基于数组实现,也可以基于链表实现,栈(操作系统)在计算机中是由操作系统自动分配,存放函数的参数值与参数变量的值等栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据在多个线程或者多个栈之间是不可以共享的,但是在栈内部多个值相等的变量是可以指向一个地址的。...

2018-12-10 08:35:35 421

原创 Ubuntu 18:04 编译 bitcoin V0.1

配置Ubuntu环境将bitcoinV0.1版本放到/home目录下因为目前网络中很少能找到0.1版本了,所以我这里单独分享了:链接:https://pan.baidu.com/s/1Ur_uSCm_wk8eNMvij5DGMw 提取码:5l80 打开终端添加编译比特币所需要的依赖:apt-get install makeapt-get install gcc...

2018-12-06 19:46:50 1353 3

原创 编译btcd

首先让我们获取源码go get github.com/btcsuite/btcd然后就可以进入你的gopath中看到它了进入目录,并go build,编译btcd并启动网络./btcd -h 查看帮助说明Usage: btcd [OPTIONS]Application Options: -V, --version 打印版本号...

2018-12-06 15:52:33 773

原创 分布式系统

简单来说:分布式系统就是使用多台计算机去实现共同的需求或功能,因为单个计算机毕竟是有限的,而大型的计算机需要很高的成本,而且容错性并不是很好,所以一般会采用,价格及性能合适的多台计算机来处理,那么这就需要我们将这些计算机一起管理也架构起来,所用到的技术就是分布式技术。分布式系统,很多人都分为分布式计算与分布式存储分布式与集群的区别就在于,分布式基于网络,而集群就是机柜中一个个机器,统一管理...

2018-12-06 15:52:14 225 1

原创 SM2国密之Go语言实现数字签名与验证

package mainimport ( "github.com/tjfoc/gmsm/sm2" "fmt" "crypto/sha256")func handleErr(e error,why string){ if e!=nil{ fmt.Println(why,e) }}func main() { privateKey, e := sm2.Generate...

2018-12-04 14:46:21 3074

原创 Go语言基础(十七)—— 文件拷贝小案例

package mainimport ( "io/ioutil" "fmt" "io" "os")//文件拷贝1func main51() { copyFile("d:/找你妹.txt","d:/找自己.txt")}func copyFile(srcFilename string,dstFilename string) { bytes, _ := iouti

2018-11-25 17:37:02 237

原创 Go语言基础(十六)—— Go语言文件操作

package mainimport ( "fmt" "os" "bufio" "io/ioutil")//错误处理方法func handle(why string,e error){ if e!=nil{ fmt.Println(why,"错误为:",e) }}func main() {//读文件方式一 /*file, e := os.OpenFile(".

2018-11-25 17:36:13 288

原创 Go语言基础(十五)—— Go语言实现json数据文件读取与存储

案例:package mainimport ( "os" "fmt" "encoding/json" "time")type Person2 struct { Name string Age int Sex string Hobby []string}func main() { //初始化结构体 wek := Person2{"wek",18,"男&quot

2018-11-25 16:28:44 2149

原创 Go语言基础(十四)—— Go语言切片,map,结构体与Json的序列化,反序列化

序列化和反序列化序列化概念理解:就是将变量从内存中变成可存储或传输的过程称之为序列化,序列化之后,就可以把序列化后的内容写入磁盘,或者通过网络传输到别的机器上。反序列化则就是序列化反过来,把变量内容从序列化的对象重新读到内存里称之为反序列化序列化结构体案例:package mainimport ( "encoding/json" "fmt")//属性必须大写,不然j...

2018-11-25 15:56:13 1367

原创 Go语言基础(十三)—— Go面向对象简单小练习

练习要求:接口-&gt;父类实现-&gt;多种子类实现-&gt;多态 定义接口IPerson,定义吃喝睡三个抽象方法; 定义一个IPerson的实现类Person,实现吃喝睡方法; 定义IWorker劳动者接口,拥有劳动方法Work()(output string)其中output是其工作产出,和休息方法Rest(); IWorker实现三个不同职业的子类:...

2018-11-25 14:50:25 358

原创 Centos 7(一)—— Centos 7 命令行版安装(图解)

使用VMware创建虚拟机点击下一步点击下一步下一步选择你要安装的虚拟机是哪种操作系统选择虚拟机的安装位置选择处理器自定义内存选择网络下一步下一步下一步就可以自定义磁盘容量然后完成就可以点击开启选择否就可以然后然后我们需要添加镜像点击确定选...

2018-11-24 17:09:49 11171

原创 Go语言基础(十二) —— Go语言继承

继承子类和父类的关系。 子类对象可以直接访问父类的属性和方法 子类可以新增自己的属性和方法。 子类可以重写父类已有的方法。案例:package mainimport "fmt"type Parent struct { //父类属性 name string age int sex string}//父类方法func (fu *Parent)play(){ f...

2018-11-23 21:05:36 406

原创 Go语言基础(十一)—— 实现命令行参数对数据的简单查询小案例

案例要求:结合命令行参数、复合类型、包管理、排序等知识,写一个商品管理系统 商品属性包括:整型商品ID(gid)、字符串型名称(name)、整型类别(cid)、浮点型价格(price) 自己造一些假数据,实现如下功能: shop.exe -cmd single -gid xxx 查看商品ID为gid的单品详细信息 shop.exe -cmd category -cid xxx -ord...

2018-11-23 20:39:46 286

原创 Go语言实现单向散列函数 —— MD5消息摘要算法、SHA256与224(Go语言实现)

 MD5消息摘要算法MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。Go语言实现方式一:package mainimport ( "fmt" "crypto/md5" "encoding/hex")func ...

2018-11-23 16:33:38 1028

原创 Go语言基础(十)—— Go语言接口

Go语言提供了另外一种数据类型即接口,他把所有的共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口/* 定义接口 */ type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type] ...

2018-11-22 21:51:57 172

原创 共识算法(三)—— Raft(分布式一致性算法)

Raft简介Raft替代了paxos(太复杂),并提供了一种在计算系统集群中分布状态机的通用方法,确保集群中的每个节点都同意一系列相同的状态转换,也就是说,它在提供的计算机集群分布状态机时,有个别或者多个状态机down掉了,从而使其状态不统一并影响了consensus一致性,继而影响了整个系统的运行,而Raft算法就可以解决这个问题,它允许有down机,从而可以避免影响整个系统的运行。一个Ra...

2018-11-22 19:59:07 429

原创 共识算法(二)—— DPoS(股份授权证明)、PBFT(实用拜占庭容错)

DPoS简介DPoS(Delegated-Proof-of-Stake)即股份授权证明,目的是解决PoS和PoW的不足,DPoS是由被社区选取的可信账户(受托人,得票数为所有委托人得前101位)来创建区块,为了成为正式委托人,用户要去社区拉票,获得足够多的用户信任,用户根据自己持有的加密货币数量占有总量的百分比来进行投票。它就像一个股份制公司,普通员工进不去董事会,但可以推选代表(受托人)代他...

2018-11-22 16:26:59 1540

原创 共识算法(一)—— Pow(工作量证明)、PoS(权益证明)

PoW简介PoW (Proof-of-Work)即工作量证明,根据当时区块链网络算力得出的难易程度(前导零,所计算出来的hash开头有多少个0),将区块的属性使其拼凑成一个满足要求的hash值,(nonce值让其一直改变,从而才会计算出不同的hash),然后马上对全网进行广播打包区块,网络上的节点收到广播打包区块,会立即进行验证。网络中最快解密的区块,才会添加到帐本中,其他节点进行复制,这样就...

2018-11-22 15:03:28 4209

原创 Go语言基础(九)—— Go语言结构体、Go语言切片(Slice)、range遍历、Go语言Map(集合)

Go语言结构体Go 语言中数组可以存储同一类型的数据,但在结构体中我们可以为不同项定义不同的数据类型。 结构体是由一系列具有相同类型或不同类型的数据构成的数据集合。 结构体表示一项记录,比如保存图书馆的书籍记录,每本书有以下属性:Title :标题   Author : 作者   Subject:学科   ID:书籍 ID 定义结构体  结构体定义需要使用 type 和 s...

2018-11-19 22:14:45 784

空空如也

空空如也

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

TA关注的人

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