自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 问答 (2)
  • 收藏
  • 关注

转载 zk-SNARKs 在 Solidity 中的使用以及一些概念的解释

关于 zk-SNARKs 的简短描述为,我们需要在 zk 电路中编写一段代码,这段代码的输入是一些公开的数据,输出是一些私有的数据。zk-SNARKs 的验证算法可以验证这段代码的输出是否正确,但是验证算法不会泄露任何私有数据。而 Solidity 合约的主要目的是验证 zk-SNARKs 的验证算法的结果,如果验证算法的结果正确,那么合约会执行一些操作。也就是说,在 EVM 上,只是进行了结果的验证,并没有进行一些复杂的计算,这些计算都是在 zk 电路中进行的。

2023-09-28 16:21:48 257

原创 Solidity进阶必知问题

这些是 Solidity 汇编中的一些常用操作和函数,但需要注意的是,使用汇编需要对 EVM 有一定的了解,以及对底层操作的风险和影响有清晰的认识。存储中的数据是持久化的,意味着它们将一直保存在区块链上,即使合约的代码被更新。以上只是一些常见的安全漏洞和问题,在开发智能合约时,最好遵循最佳实践和安全指南,并考虑使用已经经过审查和测试的库来避免这些问题。合约中的存储布局会根据变量的声明顺序决定槽位的分配。这样的设计可以有效地利用存储槽位,避免了不必要的嵌套,并将相似的数据存储在数组和映射中。

2023-08-30 17:34:36 186

原创 golang进阶必知问题

总之,GMP 模型是 Go 语言并发编程的核心,通过轻量级的 Goroutines 和通信机制 Channels,以及调度器的协调管理,使得并发编程在 Go 中变得更加简单和高效。在 Go 语言中,"本地队列"和"全局队列"通常指的是调度器(Scheduler)中的工作队列,用于管理待执行的 Goroutine。这可以在短时间内减少锁的竞争,提高性能。使用普通的 map 数据结构时,如果需要在多个 Goroutine 中进行并发访问,通常需要使用 mutex 来保护 map 的读写操作,以避免并发问题。

2023-08-26 16:32:46 274

原创 Java进阶必知问题

java八股文

2023-08-26 16:23:32 149

原创 智能合约模拟调用的具体应用:在golang中查询uniswap v3智能合约上某代币的价格

合约的方法如果是public view的,那么通过golang代码可以直接调用,步骤大致为:1、使用合约的ABI生成.go文件接口2、使用以太坊节点链接初始化以太坊客户端;3、以以太坊客户端和uniswap合约地址为参数,实例化uniswap合约4、直接调用uniswap的“查询价格”的方法,传入代币地址和数量等参数,获取价格。

2023-03-16 17:55:26 1745 3

原创 go和java的使用心得(一)

缘起:知道这个Option是在filecoin-lotus项目代码中,当时感觉不太好懂,但不影响对大局的理解,后来有时间了去深入研究了一下。从代码中可以看到,option模式的作用主要是在实例化对象的时候,可以更灵活的传参,可以以任意的顺序传任意部分字段的参数,比如有八个参数,我可以只传0或1或2或……8个参数,且顺序可以是乱序的。很多项目的源码中都有用到option模式,理解他的作用和用法对于阅读项目源码有好处。

2023-03-03 17:41:12 100

原创 Solidity随笔

"内置函数"的更严谨的说法应该是“全局变量”abi.encodeWithSelector是将4字节函数选择器和参数进行编码。参考:Solidity极简入门: 29. 函数选择器Selector4字节函数选择器就是把函数签名(函数名+参数名)编码为4个字节的字节码可用于选择调用的函数参考:简书-Solidity Call函数这里的token.call是底层的合约调用方法,不建议用。推荐的方法是通过接口实例化后调用。

2023-02-15 13:59:04 647

原创 利用fastJSON存list入redis,从redis取出Object后转成原list

把list存入redis,会自动转为String;从redis取出的value类型是Object。怎么把Object转化为原list的类型?

2022-08-03 18:35:12 1222

原创 rust基础

本篇文章是[《Rust程序设计语言》](https://kaisery.github.io/trpl-zh-cn/title-page.html)第一~六章笔记

2022-01-07 17:15:39 995

原创 gorm插入自增主键,查询到是0值问题的解决

问题描述:插入表格中的数据,uid字段设置为自增主键,实例化对象时uid可任意赋值,到表中一定是自动自增+1的值,但查询到的uid一直是0.问题解决:写了两个结构体,分别用于插入和查询,插入的结构体字段后面有主键自增标签,查询的结构体后面没有该标签。代码如下:type Catcoin struct { Uid int Addr string InvCode int InvCount int Puid int Puids string Ct

2021-08-03 13:42:28 4465 3

原创 go语言字符串转大整数

i := new(big.Int)i.SetString("123456789123456789123456789", 8) // 第一个参数传字符串,第二个是进制,8就是8进制fmt.Println(i)

2021-07-30 16:50:36 668

原创 go语言Lotus项目开发实战(Lotus设计、命令行、节点API、源码,urfave/cli、jaeger、mux路由……)

go语言项目开发实战一、命令行urfave/cli二、Jaeger一、命令行urfave/cli打开goland把下面的代码复制到testCli.go文件中,运行go mod init和go mod tidy拉取依赖。package mainimport ( "fmt" "github.com/urfave/cli" "log" "os")func main() { //实例化一个命令行程序 oApp := cli.NewApp() //程序名称 oApp.Name = "G

2021-05-10 13:00:09 6557 2

原创 后端学Linux

后端学Linux前言一、需要掌握的常识1、什么是Shell和Bash2、Linux目录结构3、提示符的含义4、命令加载的顺序5、用户和权限管理6、常用配置文件7、防火墙二、常用命令1、常用的Linux内部命令和Linux自带应用程序命令2、常用的第三方应用程序命令三、工作场景1、SSH远程连接到服务器2、切换用户为root3、如何多窗口显示4、安装项目依赖5、配置环境变量6、测试网速7、抢饭技术前言后端工程师,而非专业的运维工程师,学习Linux不需要掌握非常深的内容,看这篇就够了。一、需要掌握的常识

2021-05-10 09:05:31 658

原创 go语言实战(goModules/API/gorm/gin)

go语言实战一、GoModules项目管理二、go持久层框架gorm一、GoModules项目管理新建一个项目,如果想把它交给GoModules管理,需要在项目目录下运行命令行并输入:go mod initgo语言依赖管理:go.mod文件,go mod相关命令。golang自动下载所有依赖(包括goland怎么设置)golang自动下载所有依赖最好用的一个命令go get -d -v ./… (下载全部依赖,经测试好用。)二、go持久层框架gorm简介:gorm是中国的gol

2021-04-26 10:14:29 894 1

原创 go、区块链笔记目录

go语言基础入门go语言指针速通go语言基础进阶go语言面向对象go语言并发编程与原理待续:go语言实战区块链快速入门

2021-04-25 10:51:47 1573

原创 go语言并发编程与原理

go语言并发编程与原理一、前置知识1、计算机硬件架构2、操作系统二、具体操作与现象1、并发编程关键字2、简单示例与结果3、三、并发原理图解一、前置知识1、计算机硬件架构2、操作系统二、具体操作与现象1、并发编程关键字2、简单示例与结果3、三、并发原理图解...

2021-04-18 12:26:00 227

原创 go语言基础进阶

go语言进阶前言一、import与init二、defer关键字三、匿名函数与闭包四、数组、切片详解五、map六、空接口的妙用七、GoModules项目管理前言一个好的学习者,一定要建立自己的节奏,看别人的教程,别人的视频,是别人的知识体系,不是自己的,最好的学习方式是:提出问题,自己主动寻找解答。在提出问题之前,可能连如何提问都不知道,这时可以先看别人的视频,但看懂不是最重要的,速通一遍,知道视频的体系,哪个视频讲了什么知识点,很重要。这样才能在主动寻找解答的时候迅速定位答案。一、import与in

2021-04-14 16:53:15 579

原创 go语言面向对象

go语言面向对象结构体实例化构造方法成员方法结构体实例化构造方法成员方法

2021-04-07 16:07:16 374

原创 go语言基础入门

go语言基础入门基础语法与代码风格编译运行变量与常量函数流程控制基础语法与代码风格编译运行变量与常量函数流程控制

2021-04-07 09:55:42 800

原创 go语言指针速通

go语言指针速通1、go语言指针概述2、go语言指针入门3、函数中的指针4、复杂类型对象如何取地址?5、指针与面向对象6、项目中的指针示例1、go语言指针概述go语言指针,其实就是Java中引用类型(区别于基本类型)的底层原理,涉及到内存结构,Java中的内存有堆栈方法区,而go语言中因为逃逸分析的存在,所以值类型和引用类型存放于堆栈是不一定的,编译器会自动优化,有利于减少垃圾产生,减少GC,同时减少程序员的负担。2、go语言指针入门理解go语言指针,只需要记住两个符号:*和&。&

2021-04-06 15:00:15 176

原创 HashMap底层红黑树与MySQL索引

HashMap底层红黑树与MySQL索引什么是时间复杂度?如何计算时间复杂度?常见的查找算法有哪些?哈希索引B+树红黑树二叉搜索树HashMap底层JDK中常见的集合容器包括哪些?List Set Map在概念上的差别?HashMap数据结构什么是时间复杂度?如何计算时间复杂度?常见的查找算法有哪些?遍历:暴力 for二分:能做二分查找必须是有序的哈希:最高效。JDK1.8里面HashMap:链表+红黑树索引:搜索引擎bfs&dfs:图论里面的遍历平衡树B+树B-Tree红黑树

2021-03-13 09:46:42 182

原创 JVM调优实战

JVM调优实例垃圾回收核心思想JVM调优案例垃圾回收核心思想公理:当一个对象不再被引用时则可以被回收。判断一个对象是否被引用的算法:1、引用计数法;2、可达性分析;引用计数法无法解决循环引用问题,所以目前主流垃圾回收器不采用。可达性分析需要先找到gc roots ,一般存在栈和方法区中。JDK1.2之后,对引用的概念进行了扩充:强软弱虚强引用永远不被回收,软引用在内存溢出时被回收,弱引用是在发生垃圾回收时都会被回收,虚引用是在被回收时发出一个通知。垃圾收集算法分类(从低级到高级):标记-清

2021-03-07 11:58:17 100

原创 对Java多线程、线程池以及在spring中的具体实现的一些浅见

对Java多线程、线程池以及在spring中的具体实现的一些浅见一、理解多线程及并发问题需要的前置知识★什么是线程,与进程的区别是什么★JVM内存结构JVM内存结构可分为三大块:运行时数据区可分为五部分:上述各部分的作用分别为:★什么是线程安全,什么是并发问题二、线程的具体实现★多线程的基本使用线程的生命周期:五种状态--线程的创建方法★线程池的概念及在spring中的实现三、深入理解spring框架中的多线程与bean的关系一、理解多线程及并发问题需要的前置知识★什么是线程,与进程的区别是什么一个操

2021-03-06 21:12:06 216

原创 区块链快速入门

2020年技术总结——区块链区块链基础大纲哈希算法椭圆曲线加密CAP BASE区块链数据结构共识协议区块链进阶大纲如何使用JAVA开发一款比特币(或其他币种的)钱包?区块链基础大纲学习区块链,要解决的问题:哈希算法非对称加密算法,例如RSA,ECC椭圆曲线加密数据结构 例如mercle tree分布式架构,分布式架构中经典的CAP理论。分布式账本。P2P网络通信比特币的一个区块中,包含了什么信息?一个区块是怎样产生,怎样加到链上的?P2P系统的共识算法有哪些?比特币采用的Pow算法是怎

2021-01-16 17:17:11 3086 4

原创 non-resolvable parent POM for项目,'parent.relativePath' points at no local POM问题的解决方法

把maven项目pom文件中2.2.6.RELEASE改成2.2.5.RELEASE即可。

2020-03-29 13:53:11 2972

空空如也

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

TA关注的人

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