![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
GO语言和区块链
测试开发大山
一事无成往往不是不聪明,而是不坚持
展开
-
精通区块链1:btc介绍
精通比特币1:比特币介绍1.1比特币是什么比特币既是构成数字货币生态系统基础概念和技术的总称,又是比特币网络中参与者存储和传输的货币单位。在互联网上,比特币用户主要通过比特币协议进行通信,当然也可以使用其他传输网络。比特币协议栈作为开源软件,可以在各种类型的计算设备上运行,包括笔记本电脑和智能手机,从而使得比特币更加普及。用户通过网络进行比特币转账可以做到和传统货币一样的事,包括买卖商品,汇款给别人或机构,或者提供借贷。比特币可以在专业的交易所进行买卖出售或兑换其他货币。从某种意义上讲,比特币是互联网原创 2020-09-30 19:33:01 · 1106 阅读 · 0 评论 -
精通以太坊9:智能合约和solidity(3)
精通以太坊9:智能合约和solidity(3)9.1错误处理(assert、require和revert)合约的执行过程可能会中断,也可能会返回错误。Solidity中的错误处理由以下这几个关键字负责:assert、require、revert和throw(目前已经废弃)合约遇到错误而中断执行时,所有的状态更改(变量、余额等)都会回滚,如果是一串合约的连续调用,则会一直恢复到最初触发这一串调...原创 2020-04-04 00:22:06 · 655 阅读 · 1 评论 -
精通以太坊8:智能合约与Solidity(2)
精通以太坊8:智能合约与Solidity(2)8.1使用Solidity进行编程有关Solidity的完整文档可以在这里访问:https://solidity.readthedocs.io/en/latest。8.2数据类型:布尔型(bool)布尔值true或false,可以使用逻辑操作符!(否)、&&(与)、||(或)、==(等于)和!=(不等于)。整数型(int、u...原创 2020-03-31 22:40:20 · 585 阅读 · 0 评论 -
精通以太坊7:智能合约与Solidity(1)
精通以太坊7:智能合约与Solidity以太坊包含两种类型账号:外部账号(EOA)和合约账号外部账号由用户通过独立于以太坊平台的钱包软件控制。与之相反,合约账户由他的代码(也是就是智能合约)来控制,这些代码运行在以太坊虚拟机(EVM)上。外部账户就是一个账户,没有任何代码和状态存储与之关联,而合约账户则有其代码和数据状态存储。外部账户被交易控制,交易由来自现实世界中的私钥所创建并签名,并且...原创 2020-03-29 23:27:14 · 707 阅读 · 0 评论 -
精通以太坊6:交易
精通以太坊6:交易交易是由外部账户发出的经过签名的消息,通过以太坊的网络传播,由矿工记录在区块链上。在这些基本定义背后,包含了很多令人称奇的细节。从另一个角度来看,交易是唯一能够触发区块链状态改变,或触发EVM上的合约执行的东西。以太坊是一个全局的单体状态机,交易是唯一能够让这台状态机向前推进并改变状态的东西。合约并不会自动运行。以太坊也不会在“后台”运行。所有这一切,都是由交易触发的。6.1...原创 2020-03-29 21:30:45 · 1447 阅读 · 2 评论 -
数字货币钱包常识
数字货币钱包常识1.什么是钱包?钱包是私钥的管理工具,它只包含私钥而不是确切的某一个代币。钱包中包含成对的私钥和公钥。用户用私钥来签名交易,从而证明该用户拥有交易输出权(有权利使用消费)。而输出的交易信息存储在区块链中。用户在使用Imtoken钱包时,你的keyStore,助记词,明文私钥,都是钱包,keyStore是你加了“锁”的钱包,而助记词和明文私钥是完全暴露在外的钱包,没有任何安全性...原创 2020-03-28 17:19:38 · 6931 阅读 · 0 评论 -
精通以太坊4:以太坊背后的密码学
精通以太坊4:以太坊背后的密码学密码学是以太坊的技术基石。在计算机安全领域有广泛应用密码学可以用来进行知识证明,在不公开秘密数据的情况下,证明直到秘密的信息(数字签名)也可以用作证明信息的真实性(数字指纹,也称哈希)4.1秘钥和地址有两类以太坊账户可以用来持有和操作以太币:外部账户和合约账户外部账户对以太币的所有权通过私钥,以太坊地址和数字签名建立起来。私钥乃是用户与以太坊交互的核...原创 2020-03-28 17:18:47 · 2160 阅读 · 0 评论 -
精通以太坊3:以太坊客户端
精通以太坊3:以太坊客户端以太坊客户端是一种软件应用程序,他实现了以太坊协议规范,并通过点对点网络与其他以太坊客户端通信。如果遵从以太坊的参考规范并采用标准的通信协议,不同的以太坊客户端之间是可以实现交互的。尽管这些客户端是由不同的开发团队开发的,使用编程语言也不尽相同,但是他们都遵从相同的协议和规则。因此,他们可以在相同的以太坊网络上实现操作和交互。以太坊是一个开源项目,它采用LGPL v3...原创 2020-03-28 17:18:09 · 599 阅读 · 0 评论 -
精通以太坊2:以太坊的基本概念
精通以太坊2:以太坊的基本概念1.以太币的货币单位以太坊的货币单位称为ether,也常用ETH或符号 Ξ(这是来自希腊文的字母“Xi",看上去像个大写的E),偶尔也会有人使用◆1 ether,或 1 ETH,或 Ξ,或 ◆1我们可以使用 Unicode字符 U+039E显示 Ξ,使用 U+2666显示◆以太币最小单元为 wei.1 ETH=1x10^18wei(记住:以太坊是区块链...原创 2020-02-28 19:24:03 · 2063 阅读 · 0 评论 -
精通以太坊1:什么是以太坊
精通以太坊1:什么是以太坊1.1什么是以太坊?以太坊通常被称为“世界计算机”。1》从计算机科学的角度来看,以太坊是一个具备确定性但实际上却没有边际的状态机。他有两个特点:具有一个全球范围可访问的单体状态;还有一个执行状态更改的虚拟机。2》从更实际的角度看,以太坊是一个开源的,全球去中心化的计算基础架构,可以执行称为智能合约的程序。它使用区块链同步和保存系统状态,借助以太币这种数字货币来计量...原创 2020-02-25 19:10:29 · 779 阅读 · 0 评论 -
go语言学习之反射
go语言学习之反射1.先看一个问题,package mainimport ( "encoding/json" "fmt")type Monster struct { Name string `json:"monsterName"` Age string `json:"monsterAge"` Sal float64 `json:"monsterSal"` Sex stri...原创 2020-01-07 18:14:13 · 318 阅读 · 0 评论 -
GO语言学习之goroutine和channel
GO语言学习之goroutine和 channel1.goroutine 看需求》需求:要求统计1-900000000的数字中,哪些是素数?》分析思路:1》传统的方法,就是使用一个循环,循环判断各个数是不是素数。2》使用并发或者并行的方式,将统计素数的任务分配给多个 goroutine 去完成,这时就会使用到 goroutine[速度提高4倍]2.goroutine 基本介绍2.1进...原创 2020-01-05 21:52:02 · 405 阅读 · 0 评论 -
GO语言学习之文件操作
GO语言学习之文件操作1.文件的基本介绍》文件的概念文件,对我们并不陌生,文件是数据源(保存数据的地方)的一种,文件最主要的作用就是保存数据,它既可以保存文字,图片,视频,声音》输入流和输出流文件在程序中是以流的形式来操作的流:数据在数据源(文件)和程序(内存)之间经历的路径输入流:数据从数据源(文件)到程序(内存)的路径输出流:数据从程序(内存)到数据源(文件)的路径》os....原创 2020-01-02 18:14:04 · 446 阅读 · 1 评论 -
GO语言学习之家庭收支记账软件项目
GO语言学习之家庭收支记账软件项目1.项目需求说明1》模拟实现基于文本界面的《家庭记账软件》2》该软件能够记录家庭的收入,支出,并能够打印收支明细表2.项目界面---------------家庭收支记账软件-------------- 1.收支明细 2.登记收入 3.登记支出 ...原创 2019-12-26 11:01:53 · 510 阅读 · 0 评论 -
GO语言学习之面向对象(5)之多态
GO语言学习之面向对象(5)之多态10面向对象编程之多态10.1基本介绍变量(实例)具有多种形态。面向对象的三大特征,在Go语言,多态特征是通过接口实现的。可以按照统一的接口来调用不同的实现。这时接口变量就呈现不同的形态10.2快速入门在前面的USB接口案例,Usb usb ,既可以接收手机变量,又可以接收相机变量,就体现了USB接口多态特性。//编写一个方法 working,接收...原创 2019-12-25 17:01:35 · 196 阅读 · 1 评论 -
GO语言学习之面向对象(4)之接口
GO语言学习之面向对象(4)接口9.接口9.1基本介绍按其他语言顺序,应该学多态。因为在go中,多态的特性主要通过接口来体现的9.2为什么有接口我们可以想想一下,生活中,接口的应用场景,手机接口,相机接口U盘接口,这些接口不管哪个厂家生产的都遵循这个接口开发中也一样9.3接口快速入门package mainimport "fmt"//定义一个接口type Usb int...原创 2019-12-24 19:52:58 · 172 阅读 · 0 评论 -
GO语言学习之面向对象(3)
GO语言学习之面向对象(3)6.面向对象编程思想-抽象6.1抽象的介绍我们在前面去定义一个结构体时候,实际上就是把一类事物共有的属性(字段)和行为(方法)提取出来,形成一个物理模型(结构体)。这种研究问题的方法称为抽象银行账户 属性/字段 账号结构体 1.账户.2.密码.3.余额 /行为/方法 1.存款2.取款.3.查询6.2代码实现...原创 2019-12-10 21:40:45 · 150 阅读 · 0 评论 -
GO语言学习之面向对象(2)方法
GO语言学习之面向对象(2)方法2.方法2.1基本介绍在某些情况下,我们需要声明(定义)方法,比如 :MM结构体,除了有姓名,年龄,老公,等属性外,还应该有自己的行为:吃饭,睡觉,吟诗,弹琴。。。这时就要用方法来完成GO中的方法是作用在指定的数据类型上的(即:和指定的数据类型绑定),因此自定义类型,都可以有方法,而不仅仅是struct2.2方法的声明和调用type A struct{...原创 2019-12-09 15:49:48 · 162 阅读 · 0 评论 -
Go语言学习之面向对象(1)结构体
Go语言学习之面向对象(1)结构体1.结构体1.1问题:乔老汉生了两个美艳绝伦的女儿,大乔和小乔,大乔:年龄 :20,老公:孙策,爱好:吃鱼小乔:年龄:18,老公:周瑜,爱好:吃鸡1.2使用现有技术解决:var name1 string="大乔"var age1 int =20var laoGong1 string="孙策"varlover1 string="吃鱼"var ...原创 2019-12-08 17:49:27 · 190 阅读 · 0 评论 -
Go语言学习之map
Go语言学习之map1.map的基本介绍map是 key-value数据结构,又称为字段或者关联数组,类似JAVA的集合在编程中经常使用到2.map的声明1.语法: var map 变量名 map[keytype]valuetype》key可以是什么类型Golang中的map的key可以是多种类型,比如:bool,数字,String,指针,Channel.还可以包含前面几个类型的:...原创 2019-12-07 21:05:13 · 173 阅读 · 0 评论 -
GO语言学习之排序和查找
GO语言学习之排序和查找1.排序的基本介绍排序是将一组数据,依照指定的顺序进行排列的过程排序分类:1》内部排序:指将需要处理的所有数据都加载到内部存储器中进行排序包括(交换式排序法,选择式排序法,插入式排序法)2》外部排序法:数据量过大,无法加载到内存中,需要借助外部村粗进行排序包括:(合并排序法和直接合并排序法)2.冒泡排序图解暂时省略: /* // 3,2,6,7...原创 2019-12-06 20:40:06 · 162 阅读 · 0 评论 -
GO语言学习之数组与切片
GO语言学习之数组与切片1.为什么需要数组一个养鸡场有六只鸡,他们的体重分别是3kg,5kg,1kg,3.4kg,2kg,50kg。请问这六只鸡的体重是多少?平均体重是多少?请你编一个程序package mainimport "fmt"func main() { ji1:=3.0 ji2:=4.0 ji3:=3.5 ji4:=7.8 ji5:=6.0 totalWeigh...原创 2019-12-05 20:47:45 · 279 阅读 · 0 评论 -
GO语言学习之函数,包和错误处理(2)
GO语言学习之函数,异常1.init函数1》基本介绍每一个源文件都可以包含一个init函数,该函数会在main函数执行前,被go运行框架调用,也就是说Init会在main函数执行前被调用2》.代码示例package mainfunc init() { println("我爱这世界,因为我爱你。。。")}func main() { println("hello world")...原创 2019-12-03 14:09:11 · 220 阅读 · 0 评论 -
GO语言学习之函数,包和错误处理
GO语言学习之函数,包和错误处理1.基本介绍为完成某一功能的程序指令(语句)的几何,成为函数在go中,函数分为:自定义函数,系统函数2.函数的语法func 函数名(形参列表)(返回值列表){ 函数体 return 返回值列表}1》形参列表:表示函数的输入2》函数体:表示为了实现某一功能代码块3》函数可以有返回值,也可以没有3.快速入门用函数写一个计算器:packag...原创 2019-12-02 12:16:11 · 152 阅读 · 0 评论 -
GO语言学习之流程控制
GO语言学习之流程控制1.流程控制类型是对代码执行过程,执行顺序进行控制1》顺序控制2》分支控制3》循环控制2.顺序控制程序从上到下按照顺序执行代码示例: var say string say="i love liuyifei" fmt.Printf("张三说:%v\n",say ) say="i love dogdog" fmt.Printf("李丽说:%v\n",sa...原创 2019-11-29 19:53:45 · 133 阅读 · 0 评论 -
GO语言学习之运算符
GO语言学习之运算符1.运算符的基本介绍运算符是一种特殊的符号,用以表示数据的运算,赋值和比较等主要分为:1》算术运算符2》赋值运算符3》比较运算符/关系运算符4》逻辑运算符5》位运算符6》其他运算符2.算术运算符算术运算符,对数值类型的变量进行运算,比如:加减乘除+,-,*,/,%,++,–,用法和Java以及其他编程语言一样,此处不做实例注意:1.j=i++//错...原创 2019-11-28 15:25:07 · 229 阅读 · 0 评论 -
go语言学习之数据类型
go语言学习之数据类型1.数据类型分为两大类:基本数据类型复杂/派生数据类型2.基本数据类型分为:数值型:整数型:(int ,int8,int16,int32,int64)(unit,unit8,unit16,unit32,unit64)浮点型:(float32,float64)字符型:没有专门的字符集,使用byte表示单个字母字符布尔型:bool(true,false...原创 2019-11-27 16:28:46 · 123 阅读 · 0 评论