Go知识点复习

Go知识点复习

1.关于包的使用和GOPATH的配置

  • src:用于以代码包的形式组织并保存Go源码文件, 需要手动创建
  • pkg目录:用于存放经由go install命令构建安装后的代码包(包含Go库源码文件)的“.a”归档文件
  • bin目录:与pkg目录类似,在通过go install命令完成安装后,保存由Go命令源码文件生成的可执行文件

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

//Add.go
package mylibfunc Add(a, b int) (ret int)  {ret = a + breturn ret
}
//main.go
package mainimport ("mylib""fmt"
)
func main() {fmt.Println( mylib.Add(10, 10) )
}

环境变量配置

GOPATH=C:\Users\yqq\Desktop\QBlockChainNotes\Go语言\Go语言编写比特币\SimpleBlockChain
GOBIN=$GOPATH\bin

关于go run , go build , go install 命令

  • go run是直接编译执行, 不会生成exe文件
  • go build 用于编译测试, 检查是否有错误
  • go install第一步编译导入的包文件, 放到pkg目录下; 第二步编译主程序生成可执行文件.

go语言实现区块链

1.挖矿原理

package mainimport ("crypto/sha256""strconv""fmt""time"
)func main()  {startTime := time.Now()time.Sleep(3 * time.Second)for i := 0; i <100000000000000000; i++{data := sha256.Sum256([]byte(strconv.Itoa(i)))fmt.Printf("%10d, %x\n", i, data)if string(data[len(data) -  2 : ]) == "00"{   fmt.Printf("挖矿成功, 耗时%f 秒\n", time.Since(startTime).Seconds())break}}
}

2.PoW工作量证明实现

通过调整nonce是Hash值小于设定的某个值, 类似 000000xxxxxx…xxxx, 如下:

000000aece8f5d530b8b3c24e80dc7d8c55db4fc131e315f73e14699000c9373
//挖矿核心代码
func (pow *ProofOfWork)Run() (int, []byte ){var hashInt big.Intvar hash [32]bytenonce := 0//通过调整变化 nonce是 当前区块的hash值小于设定的一个值for nonce < maxNonce{data := pow.prepareData(nonce) //准备数据(由各种信息拼接在一起, nonce是可变的)hash = sha256.Sum256(data) //计算出hashfmt.Printf("\r%x", hash)hashInt.SetBytes(hash[:]) //获取要对比的数据//找一个数(data的hash值) : 小于  1 << (256-targetBits)if hashInt.Cmp(pow.target) == -1{break}else{nonce ++}}fmt.Println("\n\n")return  nonce, hash[:]   
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14697.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tomcat三级指导

版本 ./catalina.sh linux version.bat win 1.确认是否使用了tomcat管理后台 我们先找到配置文件&#xff1a;tomcat主目录下/conf/server.xml 可以查看到连接端口&#xff0c;默认为8080 然后查看manager-gui管理页面配置文件&#xff0c;是否设置了用户登录 配置文件…

如何创建 Gala Games 账户:解决 Cloudflare 验证指南 2024

Gala Games 站在数字娱乐新时代的前沿&#xff0c;将区块链技术与游戏相结合&#xff0c;重新定义了所有权和奖励。本文将引导您创建 Gala Games 账户并使用 CapSolver 解决 Cloudflare 验证难题&#xff0c;确保您顺利进入这一创新的生态系统。 什么是 Gala Games&#xff1f…

CRMEB开源商城标准版系统前端技术架构与实践探索

摘要&#xff1a; 随着电子商务的蓬勃发展&#xff0c;开源商城系统因其灵活性、可扩展性和成本效益受到了广泛关注。本文以CRMEB开源商城系统为例&#xff0c;探讨了其前端技术架构、开发实践及未来展望。通过对CRMEB系统前端技术的深入分析&#xff0c;旨在为开发者提供有价值…

vmware - 主机向虚拟机拷贝文件的临时方法

文章目录 vmware - 主机向虚拟机拷贝文件的临时方法概述笔记确认主机/虚拟机之间网络是通的在虚拟机中新建一个文件夹(e.g. c:\test), 将这个文件夹设为共享文件夹。查看虚拟机中的当前用户(远程登录要用)远程登录备注 - win8.1只能用mstscEND vmware - 主机向虚拟机拷贝文件的…

游戏行业 2024 Q1报告 | 国内同比上升7.6%,海外收入同比环比双增长,码住!

作为中国音像与数字出版协会主管的中国游戏产业研究院的战略合作伙伴&#xff0c;伽马数据发布了《2024年1—3月中国游戏产业季度报告》。 数据显示&#xff0c; 2024年1—3月&#xff0c;中国游戏市场实际销售收入726.38亿元&#xff0c;同比增长7.60%&#xff0c;主要受移动游…

【Linux】详解线程控制之线程创建线程终止线程等待线程分离

一、线程创建 thread&#xff1a;这是一个指向pthread_t类型的指针&#xff0c;用于获取新创建线程的线程ID。在调用pthread_create后&#xff0c;这个指针会被设置为新线程的ID。 attr&#xff1a;这是一个指向pthread_attr_t类型的指针&#xff0c;用于设置线程的属性&#x…

【OpenGL纹理】纹理贴图基础知识(01/4)

文章目录 一、说明二、贴图的初始化处理2.1 贴图中的几种纹理2.2 原始数据处理 - 贴图的规格化 三、纹理对象生成和绑定&#xff08;选中&#xff09;3.1 生成纹理矩阵3.2 glGenTextures 函数明细3.2 glBindTexture函数明细 四、glTexParameteri函数4.1 贴放放法参数确定4.2 放…

科研——ICONIP论文修改和提交

文章目录 Springer Nature Code of Conduct and Book Publishing Policies行为准则和出版的道德规范文章的准备Structing Your paperLengths of Paper文章长度FontsPage Numbering and Running HeadsFigures and TablesFormulaeFootnotesCitation by Number Additional Informa…

使用Flask Swagger自动生成API文档

文章目录 安装Flask Swagger使用Flask Swagger生成API文档总结1. 自动化文档生成2. 交互式文档展示3. 规范化API设计4. 提升协作效率5. 支持多种格式 Flask Swagger是一种用于管理Flask API文档的工具。它基于OpenAPI规范&#xff0c;可以自动生成API的交互式文档。使用Flask S…

【前端】从手动部署到自动部署:前端项目进化之路

从手动部署到自动部署&#xff1a;前端项目进化之路 在前端开发的领域内&#xff0c;部署是一个不可忽视的环节。随着项目复杂度的增加和线上更新频率的提升&#xff0c;手动部署逐渐暴露出它的弊端。本文将带你从手动部署过渡到自动部署&#xff0c;完成前端项目进化的重要一…

【笔记】软件架构师要点记录(1)

【笔记】软件架构师要点记录 20240517 20240517 连续性&#xff1a;恢复能力&#xff1b;可用性&#xff1a;保持稳定态的时长 增量开发模式&#xff1a;在增量开发中&#xff0c;每个增量都有明确的范围和功能&#xff0c;并按照特定的功能顺序完成。增量之间的范围划分在开发…

【C++】牛客——OR64 求和

✨题目链接&#xff1a; OR64 求和 ✨题目描述 输入两个整数 n 和 m&#xff0c;从数列1&#xff0c;2&#xff0c;3.......n 中随意取几个数,使其和等于 m ,要求将其中所有的可能组合列出来 ✨输入描述: 每个测试输入包含2个整数,n和m ✨输出描述: 按每个组合的字典序排列…

作业-day-240523

思维导图 知识点问答 1、IO多路复用的原理 1、创建一个检测文件描述符的容器 fd_set fds; 2、将需要检测的文件描述符放入容器中 FD_SET(文件描述符&#xff0c;&fds); 3、通过一个阻塞函数阻塞等待容器中是否有事件产生&#xff0c;如果有一个或多个事件产生&#xff0c…

由于找不到mfc140u.dll怎么办,介绍5种靠谱有效的解决方法

当您的电脑显示“mfc140u.dll丢失”的错误时&#xff0c;通常是因为系统中缺少了某个必要的动态链接库文件。这个问题可能会导致某些应用程序无法正常运行&#xff0c;给用户带来困扰。下面我将详细介绍解决该问题的五种方法。 一&#xff0c;关于mfc140u.dll文件的概述 mfc14…

OneAPI接入本地大模型+FastGPT调用本地大模型

将Ollama下载的本地大模型配置到OneAPI中&#xff0c;并通过FastGPT调用本地大模型完成对话。 OneAPI配置 新建令牌 新建渠道 FastGPT配置 配置docker-compose 配置令牌和OneAPI部署地址 配置config.json 配置调用的渠道名称和大模型名称 {"systemEnv": {&qu…

一文带你了解所有常用排序算法

目录 快速排序 堆排序 桶排序 归并排序 拓扑排序 本文主要介绍那些我在刷题过程中常用到的排序算法: 快速排序,堆排序,桶排序,归并排序,拓扑排序 其余算法例如冒泡,插入这种效率特别低的算法就不介绍了,用的可能性极小 每一个算法都将采用例题加解释的方式进行介绍 快速…

行业首发 | MS08067-SecGPT(送邀请码)

一、简介 MS08067-SecGPT基于LLM大模型技术专门为网络安全领域设计的智能助手&#xff0c;集问答、分析、工具为一体的对话式安全专家&#xff0c;支持可以创建多会话问答。目的是辅助用户完成网络安全相关的工作&#xff0c;学员通过问答方式体验到SecGPT所具备的威胁情报分…

flume使用实例

1、监听端口a1.sources.r1.type netcat 配置文件nc-flume-console.conf # Name the components on this agent a1 表示jvm进程名 a1.sources r1 a1.sinks k1 a1.channels c1 # Describe/configure the source a1.sources.r1.type netcat a1.sources.r1.bind node…

VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION--论文笔记

论文笔记 论文来源 Very Deep Convolutional Networks for Large-Scale Image Recognition 代码来源 还没上传 数据集 这里采用的是猫狗数据集 还没上传 1论文摘要的翻译 在这项工作中&#xff0c;我们研究了卷积网络深度对其在大规模图像识别设置中的准确性的影响。我…

防火墙技术基础篇:解析入侵检测与预防系统(IDPS)功能

防火墙技术基础篇&#xff1a;解析入侵检测与预防系统&#xff08;IDPS&#xff09;功能 入侵检测与预防系统&#xff08;Intrusion Detection and Prevention Systems, IDPS&#xff09;作为防火墙技术的核心组成部分&#xff0c;扮演着保护网络安全的关键角色。本文将全面讲…