自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 Cannot resolve org.pentaho:mondrian:4.5.0.7-258

Cannot resolve org.pentaho:mondrian

2024-03-13 16:11:38 368

原创 javacc 教程7 LOOKAHEAD

在输入流中进一步探索令牌的过程被称为“向前看”输入流——因此使用了“LOOKAHEAD”这个词。我们可以通过命令行选项或语法文件开头中的选项部分设置全局的LOOKAHEAD值。 这个值是一个整数,表示在做出选择决策时要提前查看的token数。LOOKAHEAD选项的默认值为1,也就是上面描述的默认的前瞻算法。

2024-03-01 18:21:24 899 1

原创 javacc 教程6 jjtree

我们知道JavaCC是一种编译器开发工具,主要用于解析输入文本并生成与其语法结构相对应的语法树。JavaCC生成的语法树是一种较低级别的抽象,需要开发人员自行定义和实现对其的处理和操作。而JJTree是JavaCC的一个扩展,提供了一种更高级别的抽象,允许开发人员更方便地处理和操作语法树。JJTree生成的语法树节点包含属性和方法,可以更方便地遍历和操作语法树。因此,相对于JavaCC,JJTree可以更方便地构建和处理语法树,尤其是对于复杂的语法结构和语法树节点操作需求。

2024-01-02 16:41:31 941

原创 nodejs 服务linux上启动出现Port 3000 is already in use

今天把一直以来开发的nodejs项目部署到linux服务器上出现了Port 3000 is already in use的错误,接着程序就退出了,紧接着运行netstat -anop |grep 3000,发现并没有任何进程占用3000端口,这让人很疑惑,因为一直以来在windows上开发从来没有出现过这样的问题。事实确实如此,在Linux系统上,内核对端口的监听是独占的,即同一个端口只能被一个进程监听。而我们的应用程序中使用了。用于我改动了启动文件的监听端口于是整个服务变成了监听两个不同的端口。

2023-12-25 17:48:33 468

原创 nodejs 日志框架 winston 详细配置 1

最近要把手上项目的日志打印规范一下,需要引入一个日志框架,经过多方调研,最终选择了winston。由于本人主要的开发语言是java,springboot那一套,日志打印的规范也力求按照之前使用log4j的格式靠拢,然而在真正使用对比下来,发现此框架虽然号称nodejs上功能最强大的日志框架,对比java任有一些基本的要求实现起来非常麻烦。经过多方尝试,算是基本实现了所需的功能,这里做一个记录。这些功能在java中属于非常基础的功能,而换到nodejs则需要费一些周折。

2023-11-27 22:14:31 658 1

原创 TypeError: Do not know how to serialize a BigInt

这种对于直接序列化BigInt固然是可以的,但是当我们需要进行json序列化的情况往往是相对复杂的结构,比如一个object里面嵌套了一个BigInt类型的字段,使用上述方法进行序列化依旧会报出同样的错误。JSON.stringify(arg)这个方法可以传递一个自定义的replacer函数,用以定义json序列化的过程。JavaScript 不允许修改内置类型的原型方法,因此,不能在 BigInt 上直接定义。遇到其他类型的序列化问题,也可以按如上方式解决!如果有同学完成了此方法的定义,希望可以留言!

2023-11-22 22:02:38 1212

原创 javacc 教程5 词法状态的示例

首先我们需要抓取这几封往来邮件的摘要,也就是“MESSAGE SUMMARY”部分,这里我们选择抓取邮件的“Subject”部分作为SUMMARY,我们观察到每封邮件都是以“*** EOOH ***”字符串作为起始位置,而tokenManager的初始状态为DEFAULT,在此状态下tokenManager只是简单的吃掉扫描的字符,于是我们在DEFAULT状态下定义,当遇到“*** EOOH ***”时进行状态切换,然后在切换后的状态,再继续抓取我们需要匹配的字段。} else {

2023-11-06 18:24:45 77

原创 javacc 教程4 Token Manager

从上图可以看出javacc在解析数据流的核心是token manager,它涵盖了词法状态(Lexical States)和词法动作(Lexical Actions)。

2023-09-26 17:45:58 117

原创 javacc 教程3 TOKEN和SKIP

上节的实例用的了TOKEN和SKIP,本节写一个较为详细的用法。

2023-09-22 18:08:43 95

原创 javacc教程2 入门示例

第一个例子,我们做一个花括号的匹配,控制台输入一组左大括号,后面跟着相同数量的右大括号,最后是零个或多个行结束符(回车),最后是文件结束符(ctrl+d)。

2023-09-13 17:43:04 153

原创 javacc教程1 环境准备

由于引用了JAVACC_HOME和JAVACC_TUTORIAL_HOME的环境变量,所以务必保持前面环境变量的生效。获取javacc-tutorial的源码,本教程中的所有示例均维护在此项目中,将源码所在路径维护到环境变量 JAVACC_TUTORIAL_HOME。idea导入javacc-tutorial项目后需得开启ant工具窗口。将javacc的路径添加到环境变量JAVACC_HOME。:运行javacc命令,生成的java代码到指定的位置.:删除生成的java代码所在的路径。

2023-09-11 17:59:23 340

原创 on prisma.updateManytickInfo. Provided Json, expected DateTimeNullableFilter or DateTime or Null.

Argument updatedAt: Got invalid value{ lt: '2023-06-10 19:04:18'}on prisma.updateManytickInfo. Provided Json, expected DateTimeNullableFilter or DateTime or Null.

2023-06-11 11:09:00 145

原创 suiswap空投教程

据SuiSwap团队的说法,1个zealy XP相当于0.25个SuiSwap点,对于11级以上的玩家,1个zealy XP相当于0.5个SuiSwap点。目前获取suiswap-points的途径主要有两个,一个是在zealy上组任务,还有一个就是参与discord上的讨论。这里面有很多的任务,大部分都比较简单,关注,转发twitter浏览网页之类的。,注册成功后可以在其中找到获取suiswap-points的活动。,这是一个web3的任务平台,以前叫作Crew3。接下来点击quests。

2023-04-21 12:11:05 716

原创 运行flutter项目时出现D:..\android.dart_tool\package_config.json does not exist.

android.dart_tool\package_config.json does not exist. Did you run this command from the same directory as your pubspec.yaml file?

2023-03-22 20:22:32 1303

原创 uniswap前端项目构建schema.graphql失败

看样子是https://api.uniswap.org/v1/graphql这个地址无法访问。当时uniswap的前端项目有人搭建过,并没有出现这样的问题,经过多方确认,最后发现是科学上网工具的问题。代码很简单,就是通过get-graphql-schema的命令分别在THE_GRAPH_SCHEMA_ENDPOINT,和REACT_APP_AWS_API_ENDPOINT地址中下载the graph的配置文件。观察到是在执行node fetch-schema.js时出现的错误,我们看一下里面的代码。

2023-03-09 17:18:01 2790 1

原创 vscode中的js文件提示 找不到名称 “require“

找不到名称 "require"。是否需要为节点安装类型定义?请尝试使用 `npm i --save-dev @types/node`。由于我的文件是js文件,所以通过在根目录下添加jsconfig.json的方法解决。尝试过npm i --save-dev @types/node命令,未能解决问题。网上还有很多通过修改tsconfig.json的方法,尝试过,也不曾解决问题。

2023-03-07 12:47:07 1988

原创 uniswap v3 中的tick管理

int16(tick >> 8)代表取高16位,uint8(tick % 256)代表取低8位,在tickBitmap中高16位作为key,那么为什么用uint256作为value呢?剩下的低8位是2的8次方一共256个数。例如Q8.8表示的数字格式意味着这种格式中的定点数字整数部分有8位,小数数部分有8位。这就意味着v3版本的智能合约需要管理887272*2个tick,达到了百万级,这个数量是不小的。而实际上这么多的tick其中绝大部分是没有必要初始化的。,并且使用Q64.94精度的定点数来保存。

2023-02-17 20:12:58 706 1

原创 Polygon 1 架构概述

阅读本文之前推荐读者先去了解一下pos共识机制的相关文章的相关概念,有助于快速理解本文。Polygon是Layer 2的扩容方案,它通过侧链进行链下计算以及去中心化的权益证明(PoS)的验证器组成的网络来达到扩容的目的。利用现有的开发者社区和生态系统,在不牺牲去中心化的情况下,解决公链的可伸缩性和可用性问题。在更快的交易速度和更便宜的手续费的情况下支持以太坊上现有的所有应用。

2023-02-12 21:50:49 255

原创 The Graph 6 subgraph的发布并在dapp中查询

当subgraph被发布到去中心化的网络中,策展人就可以对其进行策展,索引人可以开始对其进行索引。目前有几个比较流行的几个客户端来访问subgraph,Graph client,Apollo client和URQL,三种客户端都可以适应各类应用环境,如nodejs,react,vue,但是,如果你选择使用其他客户端将无法使用跨链subgraph处理或自动分页,这是the graph查询的核心功能。官方建议使用10,000 GRT来策展自己的subgraph,以确保它被索引,并可尽快用于查询。

2023-02-08 20:37:29 190

原创 The Graph 5 Indexer,Delegator和Curators 简介

索引人投入机器设备和质押金,吸引委托人投资,从而索引更多的subgraph,以获取更多的查询收益。委托人通过投资靠谱的索引人,获取subgraph的查询收益。策展人通过投资靠谱的subgraph,获取subgraph的查询收益。个角色对比如下:技术要求时间投入资金投入风险等级索引人高高高高委托人低低低->中低策展人中低->高无高实际上每个角色所包含的操作细节还有很多,官方也提供了一系列工具,从而协助我们做出正确的决策。

2023-02-06 16:15:12 195

原创 The Graph 4 Data Source Templates

以太坊智能合约的常见模式是使用注册表或工厂合约,其中一个合约创建、管理或引用任意数量的其他合约,每个合约都有自己的状态和事件。这些下级合约的地址可能事先就知道,也可能不知道,其中许多合约可能会随着时间的推移而创建或添加。这就是为什么在这种情况下,不可能定义单个数据源或固定数量的数据源,而需要一种更动态的方法:数据源模板。

2023-01-31 17:04:22 236

原创 The Graph 3 subGraph的callHandler,blockhandler,实体关系和全文索引

上一节我们基于官方示例构建了一个具有基本功能的subgraph,这一节我们介绍其他的一些特性。

2023-01-29 23:22:23 202

原创 The Graph 2 构建一个基本的subgraph

这一节我们按照官方示例构建一个简单的subGraph。

2023-01-14 19:30:04 479

原创 entities of type `XXX` can not be updated since they are immutable. Entity ids are [1] 问题排查

Error: Failed to transact block operations: internal constraint violated: entities of type `Gravatar` can not be updated since they are immutable. Entity ids are [1]

2023-01-14 18:50:11 85

原创 The Graph 1 概述

The Graph 是一个去中心化的协议,用于索引和查询区块链的数据,首先是从以太坊开始的。 它使查询那些难以直接查询的数据成为可能。

2023-01-13 13:05:47 255

原创 关于cannot estimate gas; transaction may fail or may require manual gas limit错误的排查

今天在hardhat环境中使用etherjs调用智能合约出现了cannot estimate gas;transaction may fail or may require manual gas limit这样的错误排查了一天,这里记录一下排查的步骤。网络环境是georli测试网在网上搜索关键字很多人说是手续费的设置问题。于是增加了gasLimit和gasPrices的配置。没有报错,看似问题是解决了!但是通过返回的交易hash,在etherscan上找不到这笔交易!好像这笔交易丢失了一样!

2023-01-11 12:59:59 3960

原创 通过修改mateMask的nonce值修复replacement transaction underpriced的问题

mateMask钱包设置

2023-01-11 12:43:54 1632 2

空空如也

空空如也

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

TA关注的人

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