自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_36838406的博客, 微信交流 yrn1840

致力于区块链开发,欢迎交流,微信 yrn1840

  • 博客(52)
  • 资源 (2)
  • 收藏
  • 关注

原创 Mongodb 多条件数组嵌套查询

我想以 “name”: “Daily Total”,和list中的id为条件,做查询语句,但是网上的一些写法总是不能够很好的过滤掉list中不符合的字段。这样的写法,查询的结果是list.id过滤条件完全不起作用,

2024-03-12 16:58:46 374

原创 解决mac输入法自动切换成ABC

做了如下配置,目前没有再出现自动切回ABC输入法的情况。自从换了新电脑之后,输入法总是时不时自动切换成ABC。

2024-03-12 14:29:25 486

原创 chrome 浏览器只有开启clash 才能上网请求

把DNS提供商改成系统默认,或者直接把对您访问的网站的名称进行加密这个设置关闭,就正常访问了。最近重装了chrome 浏览器,发现只有开着clash才能正常访问网络,关了就无法访问网站。原因在于浏览器的DNS配置出了问题。

2024-03-06 15:13:52 1100

原创 TheGraph 教程

The Graph 可以干什么,记录区块链上数据,以前都要有个后端服务和数据库,维护和开发成本大,使用The Graph,方便快捷节省成本。

2024-03-05 22:50:01 458

原创 探究与以太坊智能合约的交互

# 概述智能合约是部署在区块链上的一串代代码,通常我们与智能合约的打交道 可以通过前端的Dapp,etherscan,metamask 等方式。作为开发人员可以通过调用提供的相关包来与之交互,如web3.js,ether.js , web3.j(java 语言的包)。那么能否绕过这些东西直接与链发生交互呢?当然可以!首先来了解第一个概念,区块链节点任何一台计算机(能联网,且配置够),都可以启动以太坊的客户端来加入区块链,加入后这个节点会同步整个链上的状态,即通过这个节点就可以获取整个链的状态以及通过这

2024-03-05 22:47:21 982

原创 PDF提取 PDF截取

于是用python 搞了个小工具,分分钟解决问题。看到这篇文章的不管是不是程序员,只要有这个需求都可以联系我,免费帮大家解决有关PDF的问题。想截取一个pdf的前两页,TMD WPS还收费,这能难住一个程序员?

2023-09-03 10:09:14 794

原创 springboot 无法注入。Error creating bean with name ‘xxxxx‘: Injection of resource dependencies failed; ne

在@SpringBootApplication 启动类上加上 scanBasePackages 即可。

2023-06-06 15:23:24 1152

原创 Gnosis Safe 的使用

什么是Gnosis Safe?大多数以太坊用户习惯于使用单一密钥钱包,通常称为外部拥有账户(EOA)。这些帐户使用私钥保护,可以将其转换为用户的 12 个单词的“种子短语”,也就是助记词。如果该私钥以任何方式泄露,则资金可能会被盗。通常合约都是有一个作为onwer的EOA账户管理员,这个管理员的权限通常会很大,那么如果这个账户的私钥泄露,就很可能造成资产的丢失等其他风险。Gnosis Safe 提供了这个解决方案,它会通过创建一个代理合约,通过管理这个代理合约来做到权限的控制。此时只要将业务合约的权限

2022-05-11 10:48:29 1666

原创 node 服务重启shell 脚本

node 服务重启脚本restart.sh 脚本#!/bin/sh NAME=HttpServerPORT=$1echo "input port =" $PORTecho $NAMEID=`ps -ef | grep "$NAME" | grep -v "$0" | grep -v "grep" | awk '{print $2}'`echo $IDecho "restart---------------"for id in $IDdokill -9 $idecho "kille

2022-04-24 11:30:30 1894

原创 探究与以太坊智能合约的交互调用

以太坊智能合约调用交互

2022-04-02 15:35:47 8581

原创 web3 批量请求 BatchRequest batch.execute()

web3.js BatchRequest batch.execute() 批量请求示例这个是官方示例,用的时候一直有问题,不能正常调用。原因是,我的方法原来使用的是异步函数,但是batch.execute(),只能同步调用。Talk is cheap ,show me codeconst abi = [{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","output

2021-11-13 16:49:23 14710 1

原创 truffle verify Failed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/api

在使用 truffle-plugin-verify 插件进行代码验证的时候,报错:~> truffle run verify BTCContract --network rinkeby Verifying BTCContractFailed to connect to Etherscan API at url https://api-rinkeby.etherscan.io/apiFailed to verify 1 contract(s): BTCContract根据提示来看:是连接不上

2021-11-08 15:47:23 1246 7

原创 uniswapv3 path编码 代码

main() .then(() => process.exit(0)) .catch(error => { console.error(error); process.exit(1); });// 0x76b06a2f6df6f0514e7bec52a9afb3f603b477cd000bb8d0a1e359811322d97991e03f863a0c30c2cf029c000bb8c011a73ee8576fb46f5e1c5751ca3b9fe0af2a6f.

2021-11-03 18:55:39 390

原创 Node js 10进制转16进制 固定4个字节大小的转换

需求:要求把10进制转换成固定4个字节大小的16进制数。例子:1000 =>0x000003e811223344 =>0x00ab4130function toHex(num){ var charArray = ['a','b','c','d','e','f'] var strArr = ['0','x','0','0','0','0','0','0','0','0'] var i = 9; while(num > 15){ var...

2021-09-22 11:45:03 1462

原创 0x protocol分析之挂单以及take Limit Order

0x protocol分析之take Limit Order关于0x是什么的问题这里就不再啰嗦,基本的概念有很多解释的文档,这里主要展示了limit order 的挂单和吃单流程。0xprotocol的流程概述0x中一些问题的解释0x 限价单挂单吃单流程0x的市价单的交互官方文档写的比较清楚,操作起来也比较简单 。这里主要记录一下限价单的挂单和吃单。挂单按格式准备一个订单OX中限价的订单的数据结构 struct LimitOrder { IERC20TokenV06

2021-08-01 13:32:07 622 4

原创 Hardhat Error: Transaction reverted: function call to a non-contract account

Please check you hardhat.config.js。出现这个错误是因为节点环境问题,hardhat默认是本地环境,那么需要启动本地节点。如果是相应的测试网,需要启动的之后指定网络环境。 --network xxxx或者在hardhat.config.js 中指定默认的网络环境例如:defaultNetwork: "rinkeby",networks: {hardhat: {},rinkeby: {url: "https://rinkeby.infura.io/v3

2021-07-30 13:58:10 769

原创 期权交易平台Hegic项目合约分析

概述加密货币的期权交易平台,目前中心化的如Deribit, 去中心化的则是Opyn和Hegic比较靠前。这里我们仅对Hegic的V1版本做简要的分析,如果有分析不到位,或者错误的地方还请评论留言一起交流和讨论。Hegic 的主要理念是提供了一个流动性池(Liquidity Pool),使得流通性的提供者形成收益共享,风险共担的关系。期权的卖方流动性的提供者,称为writer,添加完流动性后自动成为卖方。卖方对期权没有任何选择,只是添加完流动性,等待买方购买,收益就是买方的权利金。卖方的行为卖方

2021-07-11 20:12:37 795 1

原创 解决使用web3j时出现 Error: only replay-protected (EIP-155) transactions allowed over RPC

使用 以太坊自建网关节点进行调用时出现 only replay-protected (EIP-155) transactions allowed over RPC 的错误,如果使用的是infura的则不会。解决方案:在代码中原来使用的是TransactionEncoder.signMessage(rawTransaction, credentials) 这个方法。指明当前节点所在的chainId即可正常调用,替换为下面这个方法TransactionEncoder.signMessage(rawTr

2021-07-02 15:20:36 21339 6

原创 以太坊智能合约交互调用,web3.js,web3j两种方式实现

导语接上篇文章 《使用hardhat部署solidity智能合约到测试网》部署完合约之后,那么如何区块链进行交互呢?这节的主要内容就是使用web3.js和web3j来与区块链以及链上的合约进行交互。其中web3.js是属于javascript的版本的,web3j是java版本的。合约交互的类型以太坊可以看做一个公共数据库,这个数据库提供了读、写功能,但是不能删除。发起交易其实就是将交易写库,写库不能白写,其他节点帮你记录了数据,你要支付一些费用给帮你记录的节点,这个费用就是我们经常看到的gas。

2021-07-01 17:13:02 7069

原创 阿里云maven仓库 settings.xml 配置文件

无废话,立马好使<?xml version="1.0" encoding="UTF-8"?><settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/

2021-06-30 10:26:54 372

原创 使用hardhat 部署 solidity智能合约到测试网

概述在刚开始学solidity 智能合约的时候,我们大多数都是通过Remix 在线编辑器完成合约编辑部署和测试等流程的工作。毫无疑问,remix在调试的时候是十分的方便的。但是随着编写的合约越来越多,仅仅通过remix来部署就会有些吃力了,各种的参数传递,合约之间的部署的先后关系,以及合约文件的管理,都需要能够工程化的处理这些流程。目前以及有一些比较成熟的开发,调试,部署等全流程的框架了,其中用的比较多是truffle和hardhat。 hardhat 相对truffle 更新功能也更完善,使用起来也很

2021-06-23 10:13:30 13744 1

原创 Java学习之路--总结

Java 基础说一说常见集合集合可以分为Collection和Map.   - Collection又分为List和Set      - List 中常见的有ArrayList,LinkedList等        首先谈一下ArrayList        ArrayList 作为最常用的集合,首先它的底层数据结构是一个连续

2021-01-24 13:41:32 177 2

原创 ubuntu下 设置开机自启脚本,启动java程序,并且作为守护进程检测java程序的运行状态,如果应用进程被杀掉,自动重启

ubuntu下 设置开机自启脚本,启动java程序,并且作为守护进程检测java程序的运行状态,如果应用进程被杀掉,自动重启java程序是jar包启动,读取jar包外部配置文件,需要先写一个外部的配置文件,然后再写一个java 程序启动脚本外部配置文件 application.propertiesserver.port=8001spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterE

2020-09-22 10:26:40 1447

原创 win10 下9001 端口被System ntoskrnl.exe PID 4的进程占用

查找9001被哪个进程占用netstart -ano | findstr “9001”得到PID 为4 的进程号进入任务管理器,找到PID为4的进程名称,右键打开文件所在位置,发现是ntoskrnl.exe这个程序运行的,系统进程使用taskkill是杀不死的。google一下,原来是英特尔的图形命令中心服务占用了https://github.com/cretueusebiu/valet-windows/issues/131按照上面的指导将 Service for Intel® Graph

2020-09-07 10:20:15 2188 6

原创 RedisTemplate 实现通用限流器

问题一个安全的接口限流肯定少不了,登录尤其如此。比如验证码发送,验证码验证试错,密码登录试错,这些虽然是不同的业务,但是目的都是一个就是,对于某些用户的某种行为在一段时间内的的允许次数进行限制对于此我们抽象出来四个东西用户的身份标识 userId行为标识 actionKey时间周期 period允许最大次数 maxCount接下来我们借助Redis来实现这功能Redis中有一种数据类型 zset ,简单来说一种set,值唯一,除此之外还多了一个特性,zset结构还有一个score字段,可

2020-08-28 01:20:03 784

原创 策略模式简单使用

策略模式简单使用总结一下在设计账户系统的过程中遇到这样一个问题,就是当第三方账户需要根据第三方账户的类型来当前的用户id和第三方的unionId进行一个绑定操作。如果一般的做法呢就是写很多的if else通过判断不同的账户类型,来决定进行哪种第三方绑定的操作。下面是使用策略模式的做法,下面代码演示,只需关注策略模式的流程和实现,语法上不必深究首先定义一个 策略接口package com.third;public interface ThirdInfoInterfaceStrategy {

2020-08-28 00:32:12 172

原创 Command failed with error 10107: ‘not master‘ on server 10.2.2.139:27017. Closed connection

springboot 连接mogodb,报错Command failed with error 10107: 'not master' on serverClosed connection [connectionId{localValue:2, serverValue:389122}] to 10.2.2.139:27017 because there was a socket exception raised on another connection from this pool.原因:..

2020-08-17 13:28:04 8184

原创 springboot 读取resources下的 properties配置文件

主要用到了spring框架的ClassPathResource,可以直接获取resources目录下的文件,而不用费半天劲写绝对路径了。import org.springframework.core.io.ClassPathResource;import java.io.*;import java.util.Properties;public class PropertitesUtil ...

2019-12-18 10:06:21 3783 2

原创 大量数据分批处理,大List拆分分割为多个小List

在生产中经常会遇到大批量数据操作,如果直接大批量的数据对数据直接操作,则可能造成数据库执行时间过长,造成数据库压力过大。这里采用大批量数据分割成一块块小的数据,再对数据操作的方式来解决这种问题,也是我们常见的一种方式。虽然比较简单,但是网上给出的解决方案,不尽如人意。下面上我的代码import java.util.ArrayList;import java.util.List;/** *...

2019-10-30 15:34:18 8267 2

原创 java.lang.IllegalArgumentException: Request header is too large的解决

java.lang.IllegalArgumentException: Request header is too large的解决刚开始的用@Getmapping+@RequestParam实现的接口,但是当传输的参数数据量过大时,就会出现标题所出现的错误。为了避免上述错误,我把@RequestParam注解改成了@RequestBody,将参数放到请求体里,就可以传输的数据量可能会大一些。但...

2019-10-24 17:56:38 583

原创 解决chrome控制台查不到请求头的cookie

在做一个小项目的时候需要需要将token写如cookie中,然鹅,写完之后却没有在chrome浏览器的Response Headers中看到cookie,以为是代码写错,尝试其他的浏览器,发现可以查看到,于是断定是浏览器的某些设置问题。最终查到原来是Chrome67引入了一个新特性:site-isolation (站点隔离),也就是请求第三方站点数据时,如cookie等敏感信息会被隐藏显示为”Pr...

2019-10-02 22:22:36 11980 1

原创 Idea 实用查找,编辑,配置快捷键

查找类型ctrl+shif+R 全局搜索关键字ctrl+F 在打开的文件中搜索shift+shift 根据类名搜索ctrl+E 搜索最近打开的文件ctrl+alt+h 查看方法在哪里被调用F2快速定位错误代码ctrl + alt +B 查找接口的实现类CTRL+ALT+鼠标左键进入接口的实现方法Ctrl+shift+Backspace 返回最近修改的位置C...

2019-09-22 18:57:14 1281

原创 @RestController,@Controller, @ResponseBody以及thymeleaf页面的搭配使用

在最开始接触@RestController时,知道了它相当于@Controller+ @ResponseBody两者的结合。@Controller 的使用一般是加在控制层,加上之后就是可以被spring管理,也没其他的作用。@ResponseBody作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据...

2019-09-15 23:08:20 2902 5

原创 springboot+mybatis+druid+mysql+thymeleaf项目结构配置

1.在IDEA创建springboot项目,有两种方式,一种是先创建maven项目,自己在加入sringboot启动注解和resources目录。另外是直接创建springboot的demo。这里因为网络不好的原因,总是连不上spring的官网,就使用第一种通过maven的方式来创建。第一种:先打开IDEA,选择quickstart模板修改启动类添加resources目录和配置文件,以及...

2019-09-15 15:45:08 627

原创 关于Required String parameter 'XXX' is not present和RequestParam.value() was empty on parameter的矛盾

这个是我的被请求的方法String japaneseToChinese(@RequestParam(“text”) String text)在postman发起请求后就出现这个错误。意思是@RequestParam(“text”)中的“text”是多余的,这样的话就把里面的text去掉。org.springframework.web.bind.MissingServletRequestPar...

2019-09-07 17:20:55 2108

原创 解决谷歌翻译TranslateException: Error getting access token for service account: Connection reset

最近一直在调试谷歌翻译的api,根据前两篇的相关文章,在本地的windows系统和Linux系统都配置好了环境变量和代理。剩下的就是运行代码实现翻译。windows下的很顺利直接拿谷歌提供的demo就能够编译运行。但是linux的下,同样的代码就是一直不通,运行后一直报下面的错误。TranslateException: Error getting access token for service...

2019-09-07 17:03:40 4277 6

原创 解决IDEA每次创建新项目都是1.5版本

每次使用idea创建新的Maven项目都是提示1.5版本,过期什么的很烦。可以通过pom文件的方式指定,不过指定之后只对当前的项目有用,再创建仍然会提示。这里提供一个特别好的方法 修改maven的conf目录下的settings.xml文件。在setting.xml文件中找到profiles标签,加入下面这段,以后每次创建的新项目都是1.8版本的了。<profile> ...

2019-09-04 10:53:17 1955 1

原创 windows下的谷歌翻译(Google Translate SDK)使用

windows下google翻译调试步骤1.获取json秘钥文件。2.获取google- Cloud SDK https://cloud.google.com/sdk/docs/#windows3.设置环境变量,将json文件的路径设置进环境变量中设置环境变量https://cloud.google.com/translate/docs/reference/librariesGOOGLE...

2019-09-03 11:43:31 3334

原创 Tried to assign property name

解决json转成java对象是出现的Tried to assign property name问题。JSONObject jsonData1=JSONObject.fromObject(data1)jsonData1对象,由JSONObject.fromObject(data1)将传入的json字符串生成。data1是外部传入的字符串Frate frate=(Frate)J...

2019-07-08 16:09:48 4443

转载 postman使用教程

这篇文章很好的介绍了postman的使用https://www.cnblogs.com/Skyyj/p/6856728.html另外也可以选用apiposthttps://www.apipost.cn/

2019-07-02 10:31:27 118

mcp42010驱动程序

本程序为stm32f407下的双路数字电位器MCP42010的驱动程序,欢迎下载

2018-03-22

串口调试助手

串口调试助手

2017-09-10

空空如也

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

TA关注的人

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