- 博客(17)
- 收藏
- 关注
原创 了解区块链技术(Patrick Collins)(七)
单元测试是一种软件测试方法,用于测试源代码的各个单元,测试代码的最小部分,确保所有代码在本地都可以工作,之后在实际的测试网上进行Staging测试,确保我们的代码能和其他的合约正常工作。// 记录每个地址资金发送的数量。对于动态数组或者mapping,内部的元素是以哈希函数来存储的,对象本身会占一个槽位,如果执行push操作,我们将在Storage的位置上存储值。切换链的时候会发生什么?是一个空白的区块链,每次脚本执行完成之后都会被销毁,在本地节点上工作,喂价合约是不存在的,其中的某些代码无法更新数据。
2024-01-29 19:43:43
963
原创 了解区块链技术(Patrick Collins)(六)
/ const {ethers} = require("ethers") hardhat无法知道不同的代码中有不同的合约工厂,还没动,等我多用几次。是一个关键字,hardhat的Mocha框架会识别,有两个参数,第一个接收的是字符串,第二个接收的是函数(通用的是匿名函数)在这个例子中,它的值为 30000000。hardhat的最大优点是非常适用于运行测试,我们所有的代码都将对所有人开源供其交互,并有可能被利用。//告诉我们在每一个each之前要做什么,一个,每个测试之前,都会部署beforeEach。
2024-01-25 01:43:43
1359
2
原创 了解区块链技术(Patrick Collins)(五)
/ 要在这里厅下载,等待合约部署完成。https://blog.csdn.net/weixin_44786530/article/details/134263497 ===> 很方便。
2024-01-22 10:36:21
922
原创 了解区块链技术(Patrick Collins)(四)
/加1的时候bigNumber会被重置为零,无符号整型和整型试运行在unchecked这个概念下的,意味着如何一个数超过了它的上限,就会从最低的数字重新开始。使用时间最长,最常见的一个库是safeMath.sol,新建一个safeMathTester.sol,使用0.8之前的任意版本。// call 实际使用的较为底层的命令,可以调用几乎所有solidity的命令,不依赖ABI 最推荐。//部署合约后立刻调用,通过构造函数设置合约的拥有者,修改withdraw函数使得只有合约拥有者可以调用。
2024-01-19 12:58:13
534
1
原创 了解区块链技术(Patrick Collins)(三)
data feed(喂价):Chainlink节点通过去中心化网络从不同的交易所或者数据提供商获取数据,Chainlink节点使用中位数来计算资产的价格,然后在单个交易中将其传递给参考合约、喂价合约或者链上数据合约,这些合约上的数据能被其他只能合约使用。功能二:VRF,区块链是确定性系统,不具备随机性,我们需要通过区块链外部获取可验证的随机数,Chainlink可验证随机性函数是一种能将可证明的随机数放入智能合约中的方法,以保证公平性和应用程序的随机性。//使用Chainlink喂价获取定价信息。
2024-01-17 23:04:10
2343
1
原创 密码学期末
9}中与10互素的有 1,3,7,9 四个 Z10可表示为 则生成元为 1^1, 1^3,1^7,1^9(加法群),即1,3,7,9四个。(1)PoW的原理是,节点通过解决数学难题来竞争获得记账权,谁先解决问题,谁就获得记账权,这个过程也就是挖矿的过程。若为群,如果G中存在一个元素a,使得G中的任意元素都是a的幂,那么称该群为循环群,而元素a被称为该循环群的生成元。(验证阶段)验证者打开这个人选择的盒子,确认球是红色的,并询问你确认红球是在这个盒子里面吗,证明者回答是,就说明不是色盲。
2024-01-15 09:41:42
893
1
原创 计算机网络学习笔记
网络协议是为网络中的数据交换而建立的规则标准或约定,规定交换信息的格式、意义 、顺序以及收到特定信息所采取的动作。仅有硬件(路由器、主机、链路)连接,Internet不能保证顺畅运行和数据的有序交付,还需要协议。:协议双方发送信息的过程中还要发送哪些控制信息,收到这些控制信息要做哪些响应。硬件是计算机网络的基础,计算机网络中的数据交换必须遵守事先约定好的规则。协议规定了网络中所有信息的发送和接收过程。从组成上看,全球最大的互连网络,ISP,互联网服务提供商网络。:协议之间交换信息的格式,否则无法解析。
2023-10-05 21:19:14
50
原创 密码学学习笔记
验证:dk(ek(x)) = dk(7x+3) = 15(7x+3)-19=x+45-19=x (mod26)解密函数为:dk(y)= 7^(-1) (y-3) = 15(y-3) = 15y - 9 (mod26)P(明文空间)、C(密文空间)、K(密钥空间)、E(加密函数)、D(解密函数)加密:将明文字符按照一定的规则移动位置,得到排列错乱的密文,字符本身不变。将原始的第三个字符放在第一个位置,将原始的第二个字符放在第五个位置。:将明文字符按照对应关系代换成另外的密文字符。
2023-10-04 17:12:08
290
1
原创 MybatisPlus学习笔记
type-aliases-package:类型别名的扫描包,指定实体类所在的包,作用是在你定义的mapper.xml里面,如果要指定实体类的类型,不用写全路径名,直接写简化名就可以了。1、引入mysql依赖,lombok依赖,单元测试spring-boot-starter-test依赖,mybatis-plus-boot-starter依赖。2、定义Mapper,自定义的Mapper集成mybatis-plus提供的BaseMapper,其中定义了大量的增删改查的方法。核心功能 ---- 条件构造器。
2023-09-29 12:26:42
60
1
原创 Git的基本使用方式
mkdir democd demolsgit initgit init 默认的分支是master分支,可以指定其他的分支,通过参数 -- initial-branch初始化的其他的分支。--bare 创建一个裸仓库(纯git目录,没有工作目录)(裸仓库是实现git服务器的),不允许添加文件的操作,一般存储在服务器上的仓库通过--bare的方式创建出来。--template通过模板来创建预先定义好的git目录。通过tree .git 查看目录文件HEAD:表示当前指向的分支。
2023-08-02 22:46:55
87
1
原创 消息队列--kafka
kafka提供的一个自动装配的方式,high-level,在broker集群中,对于不同的consumer group来讲,都会选举一个broker去当coordinator(协调者),帮助consumer group进行自动分配,使用这种方式,如果出现了consume3宕机,coordinator就会感知到,将consumer3踢掉,将其持有的分片均匀的分配到consumer1和consumer2上。在之前老版本中,是通过offset的差距来判断,现在通过时间的差距。
2023-07-31 19:28:52
110
原创 Database/sql及gorm相关解读
database/sql采用极简接口设计原则,为上层的应用程序提供了一个标准的API操作的一个接口,为下层的数据库暴露驱动的接口,在database/sql中实现连接池的管理,连接池使用池化技术优化性能。昂贵、耗时的资源会放到一个特定的池子里 ,做一些维持最小连接,最大连接数、阻塞队列,更好的管理池子。database/sql包只是实现统一的接口,不用管具体怎么连接数据库,解析数据库,不同数据库实现自己的driver(连接数据库,解析数据库等),使用driver + DSN初始化DB连接。
2023-07-31 10:53:16
128
原创 RPC框架设计与分析
首先在sockets编程的时候必须要知道两个信息,IP和端口,sockets创建一个套接字,首先会有一个bind操作,将套接字绑定到IP+端口上,再去监听进来的连接,放到一个队列里面,队列可能由于满了发生阻塞,需要等到队列清空再放进去,队列有一个长度规定backlog,linux默认的长度规定是128,之后是accept,在客户端发起connect请求的时候,接收连接的请求,没有请求的时候就会一直阻塞等待连接进来,调用read,write读写进行通信。JSON编解码的实现采用反射的机制,性能差。
2023-07-30 21:22:41
156
1
原创 Spring注解驱动学习(雷丰阳源码级讲解)
一、spring容器相关组件添加、赋值、注入、AOP、声明式事务二、扩展原理ApplicationListener spring容器的创建过程三、web(spring MVC部分)异步请求(1)@Filter(FilterType.ASSIGNABLE_TYPE,classes = "bookService"),只要是bookService类型的组件都会被加载到容器中,按照给定的类型进行过滤。(2)使用正则表达式指定。
2023-07-23 15:57:33
151
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人