- 博客(48)
- 收藏
- 关注
原创 Web3 前端与合约交互
Web3 前端与合约交互 = 用 ethers/js 把用户操作编码成 calldata → 让钱包签名 → 通过 RPC 广播 → 链上执行后读回 events / storage → 刷新 UI。掌握这一条链路,就能完成 90% 的 DApp 功能。祝你编码顺利,早日上链!
2025-10-24 16:25:21
705
原创 成为一名全栈DApp开发者
立刻停止漫无目的地看教程。选定一个目标(例如:全栈DApp开发者)。选择一个实战项目(强烈推荐从NFT Minting网站开始)。在项目中学习:遇到不会的(比如Hardhat怎么用),再去找具体的教程看。完善你的GitHub:把你做的项目代码、部署地址、功能介绍都清晰地写在README里,这就是你未来的简历。考虑申请一个实习或参与一个黑客松:极限压力下成长最快。您已经打下了很好的基础,现在需要的不是更多的“输入”,而是高质量的“输出”和“实践”。
2025-09-25 18:08:27
659
原创 《用 uni-app 撸一个“可拖拽吸附”的浮动按钮 + 展开菜单》——一次搞定多端兼容
做 H5、小程序、App 三端同码时,产品常常提这样的需求:“右下角放个悬浮按钮,能拖着跑,松手自动贴边,再点一下展开菜单,继续点操作手册跳外链。听起来简单,真动手才发现:鼠标端要加document事件,否则一滑出按钮就“掉线”;展开后宽度变化,贴边逻辑要重新计算;还得考虑反向时菜单在左边、× 号在右边;多端打开外链写法不一样……今天把踩过的坑打包成一份“拿来即用”组件,并逐行讲清思路,顺便送上一份“如何写博客”的模板,直接复制就能发技术公众号。10 年前做悬浮按钮还得自己写。
2025-09-16 17:18:59
501
原创 遇到 Git 提示大文件无法上传确实让人头疼
处理 Git 中的大文件问题,关键在于彻底将其从历史记录中移除,而不仅仅是删除最新版本的文件。或BFG工具是完成这项工作的利器。之后,通过配置.gitignore和Git LFS,可以有效地预防此类问题再次发生。希望这些详细的步骤能帮助你顺利解决问题。如果还有其他疑问,欢迎随时提出。
2025-09-05 17:52:31
1170
原创 webpack 相关配置
根据环境变量 `NODE_ENV` 的值设置 Webpack 的模式为 `production` 或 `development`。- 在生产模式下使用 `source-map`,在开发模式下使用 `eval-cheap-module-source-map`,方便调试。- **`alias`**: 设置路径别名,方便在项目中快速引用特定的目录,例如 `@src` 指向 `src` 目录。- **`publicPath`**: 设置资源的公共路径,生产模式下为 `./`,开发模式下为 `/`。
2025-09-04 15:25:29
601
原创 删除超过100Mb的文件 全部从历史里抹掉,再瘦身、推送即可
动作命令删除所有大文件/目录瘦身仓库强制推送执行完上述三步,仓库会瞬间瘦身到 < 1 GB,Gitee 就能正常接收推送。
2025-08-29 02:46:40
243
原创 git 大文件上传不了的 问题
目的命令把从所有历史中删除强制推送到 Gitee按以上步骤执行,Gitee 就不会再报 100 MB 限制了。这是因为你本地重写()了历史,而远程仓库的历史没有同步,导致拒绝。场景命令历史重写后第一次推送仍被拒执行完即可成功推送到 Gitee。
2025-08-29 02:37:57
393
原创 electron + react +react-router-dom 打包桌面应用白屏
现象原因解决hash为空没有#/→ 路由匹配失败1. 地址栏手动加#/2. 路由加path="*"3. 主进程加载时主动带hash: '/'先试第 1 步手动加#/,确认页面能出来,再按第 3 步修改主进程,让最终打包版自动跳到正确路径。
2025-08-29 01:25:26
368
原创 开发electron时候Chromium 报 Not allowed to load local resource → 空白页。
确保 electron-builder 配置把。,路径拼错,于是 Chromium 报。electron-builder 把。打开 DevTools,若不再出现。主进程(main.js)里。但打包后真正的文件位于。正确写法(生产环境)删除旧产物再重新打包。,页面即可正常渲染。
2025-08-26 23:16:47
569
原创 区块链密码学简介
然而,一旦加密文件被泄露,用户应立即将资产转移至新的私钥对应的账户地址,并重新安全保存新的加密文件。Layer 1 负责确保安全和去中心化,做到全球共识,并作为“加密法院”,通过智能合约设计的规则进行仲裁,以经济激励的形式将信任传递到 Layer 2 上。在节点通信时,每个节点根据本地的 CA 列表验证对方节点发来的证书,同时发送自己的证书给对方进行验证。一个有效的方法是将大量的工作放到链下处理,只将最重要的数据提交到区块链主链上,让所有节点都能够验证这些链下工作的准确性和可靠性。
2025-08-09 23:39:47
1158
原创 共识算法介绍
在分布式系统中,对缺陷和故障的定义有助于明确系统的设计和运行标准。拜占庭缺陷:这种缺陷的特点是其表现形式因观察者的不同角度而异,显示出不同的症状。这种缺陷的多变性和不可预测性使得它们特别难以处理。拜占庭故障:当拜占庭缺陷在需要共识的系统中出现,并导致系统服务丧失时,这种情况被称为拜占庭故障。拜占庭故障可能包括数据损坏、恶意软件的干扰,或是恶意节点的任意行为。宕机缺陷:这种缺陷导致系统中的进程停止运行,但不对系统产生其他副作用。宕机缺陷通常与系统的部分功能失效相关,但不涉及数据损坏或恶意行为。
2025-08-07 22:15:58
1109
原创 区块链简介
区块链是一种链式数据结构,通过按时间顺序将数据块逐一连接形成。这种结构通过密码学确保了数据的不可篡改性和不可伪造性,形成了一种分布式账本技术。区块链技术不仅仅是一种数据存储方式,它结合了块链式数据结构、分布式节点共识机制、密码学安全措施以及智能合约等多种技术。通过这些技术,区块链确保了数据的安全传输和访问,同时利用智能合约对数据进行自动化的编程和操作。这种技术合集为我们提供了一个全新的、分布式的基础架构和计算平台。在区块链中,每个区块的生成都伴随着严格的密码学验证。
2025-08-07 15:25:24
1041
原创 uniapp中的$vm
vm是的引用,在 uni-app(基于 Vue2)里,通过取到的页面对象并不是 Vue 实例本身,而是一个$vm,这个$vm。
2025-07-30 11:45:58
373
原创 Go 语言面试题
一句话:数字、字符串、bool、派生类型(array、slice、map、struct、pointer、func、chan、interface)。• 问“goroutine 泄露”,答“忘记接收导致 channel 阻塞”或“没有 cancel context”。• 问“slice 和数组区别”,先答“长度固定 vs 动态”,再补“底层结构 len/cap”。一句话:类型相同时可比较;• 问“map 是否并发安全”,答“不安全,需加锁或用 sync.Map”。(len==0,cap>=0,已分配)。
2025-07-28 23:06:28
423
原创 pathRewrite和rewrite区别
是一个函数,拿到原始 path 后想怎么改就怎么改,比 pathRewrite 更灵活(能做复杂逻辑)。key 可以是字符串,也可以是计算出来的变量;value 可以是空串、新路径,甚至正则替换字符串。在 Vue CLI / webpack-dev-server 的老版本(v3)里只能用。那一段,以免以后版本移除 pathRewrite 时出现警告。• 如果 Vue CLI ≥ 4.5,建议保留。• 当前项目两种写法二选一即可,不要同时写。标记为“兼容写法”,更推荐用。,都是在把浏览器发出的。
2025-07-26 14:05:14
330
原创 在 Solidity 中,abi是啥
对外:ABI 是合约的「API 说明书对内:Solidity 的abi.*工具箱让你编码、解码、计算选择器一气呵成。
2025-07-19 23:43:41
499
原创 在 Solidity 中,require、assert 和 revert区别
require:检查外部条件(用户输入、权限)revert:手动回滚,更灵活(推荐配合自定义错误)assert:检查内部逻辑错误消耗全部 gas(极少用)
2025-07-19 17:21:40
327
原创 mapping映射
用 struct 来“描述对象”,用 mapping 来“快速查找对象”。struct 定义数据结构,mapping 做索引存储。
2025-07-19 15:49:39
431
原创 Solidity 与 EVM 的关系
Solidity 只是「高级草稿」,EVM 只认字节码。部署时先跑→ 把状态变量写进存储 → 把返回并上链。每次函数调用就是 EVM 按顺序执行opcode(如PUSH1 0x01SSTORE),同时操作「栈-内存-存储」三层空间。
2025-07-17 23:51:29
322
原创 memory 和 calldata 是两种数据位置(data location)关键字
特性memorycalldata存储位置内存(临时)调用数据(只读)是否可修改✅ 可改❌ 不可改使用场景函数内部变量external函数参数gas 成本较高更低示例。
2025-07-17 23:38:28
297
原创 solidty unit256 啥意思
它是 Solidity 编程语言中最常用的整数类型,取值范围是。,常用于智能合约中表示金额、数量等数值。的简写形式,两者在功能上完全等价。的拼写错误,正确写法是。在 Solidity 中,
2025-07-17 23:30:08
272
原创 keccack256 啥意思
以太坊(Ethereum)使用 Keccak-256 来计算地址和交易哈希;智能合约中的函数签名也使用 Keccak-256 进行编码。所以你看到的“keccack256”大概率是想写。算法胜出后被 NIST 标准化。“keccack256” 是。是一种加密哈希算法,属于。
2025-07-17 23:28:59
211
原创 前端项目开发经验总结
在 2024 年的前端项目开发中,我们遇到了许多技术细节和难点,也积累了不少宝贵的经验。以下是我们在项目开发过程中遇到的一些常见问题及解决方案,希望能为其他开发者提供参考。定义:将多维数组转化为一维数组。实现方法使用toString()和split()方法:const flatten = arr => arr.toString().split(',');
2025-06-25 09:35:05
718
1
原创 前端面试题
16、find:用于查找某个元素,如果找不到undefined,findIndex:用于查找某个元素的索引,如果找不到就返回-1 对象:(面试直接问道对象的比较少,对于经常使用比如create,assign,freeze,is,keys要知道)5、splice() arr.splice(参数1,参数2,参数3,参数4,参数5, 参数n),参数1表示要删除的开始位置, 参数2表示删除的。15、some()作用: 只要数组中的某一个元素符合指定的条件,就返回真,否则返回假,可以和逻辑运算符或(||)类比。
2025-06-25 09:04:44
496
原创 app封装通用echarts
通过以上代码和注释,你可以更清楚地理解如何在 uni-app 中使用 ECharts,并实现点击事件的监听和处理。方法用于安全地初始化 ECharts,避免因容器未找到导致的初始化失败。方法用于初始化 ECharts 实例,并设置默认配置和动画。方法用于监听点击事件,并将点击的数据传递到父组件。方法用于监听窗口大小变化,并重新调整图表大小。方法用于处理点击事件,并将数据传递到父组件。方法用于处理初始化错误,并尝试重新初始化。方法用于更新 ECharts 的配置。方法会被触发,并接收点击的数据。
2025-06-20 11:40:31
341
原创 app开发中manifest.json
这个文件是uni-app项目的配置文件,定义了应用的基本信息、平台特定配置、SDK配置、模块配置等。**confusion**字段的作用是用于指定需要混淆的资源文件,以保护代码逻辑。混淆是一种常见的代码保护手段,通过将代码转换为难以阅读的形式,防止代码被轻易篡改或逆向工程。
2025-06-12 11:46:19
1257
原创 “2025-05-15T09:58:38.957Z“ 把这个数据转换为 2025-05-15
如果你只需要简单的格式化,推荐使用方法 1或方法 3。如果你需要更复杂的国际化支持,推荐使用方法 2。如果你已经在项目中使用了moment.js或dayjs,可以使用方法 4或方法 5。
2025-05-14 18:07:31
361
原创 Cesium 中的多边形中添加图片
替换为您要使用的实际图片的 URL。根据您的要求调整其他属性,如多边形坐标、填充颜色、轮廓等。:使用 Cesium 的材质系统为多边形创建材质。您可以将图片 URL 指定为材质属性。:使用适当的坐标在 Cesium 中创建或定义多边形。:首先确保您有要添加到多边形中的图片的 URL。:将创建的材质分配给多边形的外观。
2024-05-14 17:45:58
784
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅