- 博客(1216)
- 收藏
- 关注
原创 231-关于anchor账户更新
现在我想要更新StudentAccount的格式,更新为 #[account] pub struct PublicNumberAccount { pub class: u64, pub age: u64, pub color: u64, pub number: u64, }anchor合约,我的StudentAccount的格式为 #[account] pub struct PublicNumberAccount { pub class: u64, pub age: u64, }),那么之前已经创建的。
2025-03-31 21:21:37
303
原创 230-简易Kafka应用
一个简单的的示例。这个示例会包括:一个接口,用于接收评论数据。Producer 会将评论数据发送到 Kafka。Consumer 会自动监听 Kafka 中的评论数据,并将数据存入数据库(假设我们使用MongoDB来存储数据)。
2025-03-28 11:23:12
872
原创 229-Kafka
Kafka 作为一个高性能、分布式的消息队列系统,适用于大规模数据流处理。熟练掌握 Kafka 的架构、操作、优化及安全策略,可以大幅提升业务系统的可靠性和性能。
2025-03-28 11:08:46
595
原创 228-mqtt通信
MQTT 是一款轻量级、灵活的消息传输协议,适用于 IoT 和消息推送场景。通过本攻略,你可以从入门到精通,掌握 MQTT 的安装、配置、开发、调试与优化。
2025-03-28 11:04:50
767
原创 227-消息队列MQ
消息队列(Message Queue, MQ)是一种跨进程通信(IPC)或分布式系统的异步消息传递机制。它通过先进先出(FIFO)的方式存储和传输消息,使系统中的不同组件可以解耦并高效地进行通信。
2025-03-28 11:01:29
732
原创 226-关于Rust的Arc
Arc<T>是 Rust 标准库中的一个智能指针,提供了原子性引用计数(Atomic Reference Counting),允许多个线程安全地共享数据。作用:在多线程环境中提供安全的引用计数,实现共享所有权。原理:采用原子操作进行引用计数,确保在并发访问时不会发生数据竞争。主要特点适用于多线程环境(线程安全)。不能修改内部值(除非配合Mutex<T>RwLock<T>Atomic*等)。使用原子操作来管理引用计数,性能比Rc<T>低,但能保证线程安全。
2025-03-27 15:01:56
822
原创 225-SPMD模型
SPMD(Single Program, Multiple Data,单指令多数据)是一种并行计算编程模型,指。在 CUDA 中,每个 GPU 线程执行相同的代码,但使用不同的索引计算。(SIMD + SPMD 可提升 CPU 并行性能)(确保所有线程/进程有相等的计算任务)(MPI 进程间通信开销大)(如 CUDA 需要最小化。来演示 SPMD 编程。(如创建进程或线程)
2025-03-25 17:26:11
718
原创 224-什么是rpc编程
RPC(Remote Procedure Call,远程过程调用)是一种允许程序调用远程服务器上的函数,就像调用本地函数一样的技术。RPC 是分布式系统的核心技术,可以让远程调用像本地调用一样。选择合适的序列化协议(Protobuf/JSON)提高性能。(高性能 RPC,如 gRPC、Thrift、Dubbo)(RESTful 风格的 RPC,如 gRPC-Web)关注安全性(TLS、身份认证)和高可用(负载均衡)。(异步 RPC,如 RabbitMQ)(gRPC 常用,二进制格式,性能高)
2025-03-25 17:21:02
683
原创 223-关于nodejs事件循环(Event Loop)
Node.js 事件循环(Event Loop)是 Node.js 运行时的核心机制之一,它负责管理异步操作,使得 JavaScript 能够在单线程环境中执行非阻塞的 I/O 操作。事件循环(Event Loop)是 Node.js 处理异步任务的机制。由于 Node.js 是单线程的,它依赖事件循环来调度 I/O 任务、计时器和微任务等,从而实现高效的非阻塞执行。每个阶段都有一个回调队列,事件循环会按照顺序执行每个阶段的回调,并在合适的时机进入下一个阶段。Node.js 的事件循环由。
2025-03-22 13:14:35
892
原创 222-关于python的eval
expr = input("请输入表达式: ") # 比如 "x + y"try:print("非法表达式:", e)这种方式可以限制eval()只能访问特定变量。eval()
2025-03-21 17:29:42
357
原创 221-git不小心提交大文件怎么办
如果git不小心提交了一个巨大的文件怎么办呢如果是commit,当然是没关系了但是如果是push了,那该怎么办如果你已经push。
2025-03-20 20:00:14
235
原创 219-关于rust的tokio和static生命周期
我们来看2段代码这个代码没问题但是这样就有问题了为什么呢因为要求传入'static生命周期的数据,而stu的生命周期不满足'static要求。
2025-03-19 14:37:26
205
原创 218-关于tinyproxy
TinyProxy 是一个轻量级的 HTTP 代理服务器,适用于资源有限的环境,如嵌入式系统或小型 VPS。以下是一个详细的 TinyProxy 教程,包括安装、配置、优化和故障排查。TinyProxy 是一个小型、快速的 HTTP/HTTPS 代理服务器,支持基本的访问控制,适用于低内存和低 CPU 设备。TinyProxy 只能代理 HTTP,而不能直接解密 HTTPS,但可以通过。默认情况下,TinyProxy 仅允许本机访问。这样,TinyProxy 只会转发 HTTPS 连接,但不会解密流量。
2025-03-14 22:09:28
714
原创 217-讲讲rust的clone
Rust 的Clone该 trait 允许实现它的类型提供clone方法,从而显式地创建一个该类型的副本。Clone是一个 trait,需要显式调用clone()进行深拷贝。Copy适用于栈上的简单数据类型,而Clone适用于堆分配的数据。可以自动实现Clone,但也可以手动实现。clone()可能有性能开销,应尽量使用引用代替。Rust 通过Clone和Copy机制,确保了安全和高效的数据管理,同时避免了手动管理内存的复杂性。
2025-03-14 15:44:59
404
原创 215-node连接Sequelize
Sequelize 是 Node.js 里强大的 ORM,你可以用它轻松操作数据库!根据你的数据库选择安装对应的驱动。使用事务确保多个数据库操作要么。你现在掌握了: ✅ 连接数据库。首先,确保你已经安装了。✅ 数据操作(增删改查)如果连接成功,会显示。然后在项目根目录创建。
2025-03-14 11:35:37
388
原创 214-关于rust的async作用域
当我们想要开启一个异步任务去执行一个异步函数的时候。而如果是先clone()需要 'static。这样写的话就有问题了。
2025-03-12 11:52:56
128
原创 212-关于blockhash
getRecentBlockhash会直接返回一个string。getLatestBlockhash会返回一个object。其实这里的歧义是因为2个function产生的。有些人会说recentBlockhash。有些人会说latestBlockhash。当我们要发送一个tx的时候。要给一个blockhash。关于blockhash。也就是产生歧义的原因了。
2025-03-10 21:42:23
138
原创 209-使用rust来自定义一个nodejs使用的bs58
rust的bs58确实比nodejs的bs58要快哦。或者我们觉得我们的nodejs的bs58速度太慢了。现在我们的nodejs的bs58不能使用了。所以我们想搞用rust来写一个bs58。然后打包成nodejs可以使用的包。也可以举一反三做一些特殊的lib。但是一些特殊场景可能可以使用到。今天这个事情比较有意思了。但是可能不是特别实用。
2025-03-07 19:37:02
208
原创 208-学习tiny-proxy
改一下BasicAuth的username和password。现在我们的tiny-proxy代理服务器就搞好了。然后安装一下tiny-proxy。然后我们用nodejs来连接一下。今天又学习了一个非常有趣的东西。连接服务器,比如ubuntu的。首先我们来搞一个代理服务器。
2025-03-06 21:28:48
159
原创 207-关于anchor和solpg
我发一下这样:帮我写一个solana program 有2个函数可以调用,一个是可以保存integer,一个是保存string。我们来一点一点来看一下这个简单的hello world代码。这么一个简单的hello world都这么麻烦。居然自动配置好了账户,而且里面是有sol的。但是dev网络的体验是比evm好太多了。咱们来用chatgpt来帮助一下好了。就是solpg,就是一个在线ide。总之今天发现一个特别牛逼的东西。虽然sol的开发体验不怎么样。不知道是什么时候上线的。使用solpg的时候。
2025-01-05 11:08:58
277
原创 206-关于python中对象的变量名
age和name是这个student对象的2个成员变量。比如我们在js中可以直接定义这样的一个对象。但实际上,在python中,这不是一个对象。我们的两个键变成了100和"Alice"age和name是键,也就是key。我在函数外部定义了age和name。导致我在函数中去定义这个字典的时候。这也是反应出了不同语言之间的差别。那么此时student是一个对象。这是一个字典,也就是一个键值对。我一直会认为这是一个对象。刚刚出现了一个严重的纰漏。这时我们发现了严重的错误。这是一个非常重要的事情。
2024-12-16 11:52:36
200
原创 205-用python和angular来搞一个简单的角色扮演gpt
我们来用python和angular来搞一个简单的角色扮演gpt。然后pip install fastapi装一下fastapi。我们用fastapi来搞一个很简单的python服务器。这边很简单,就一个简单的接口接收一下用户发来的消息。这里的系统角色prompt可以自己编一点角色信息。把系统角色prompt和用户消息一起发给gpt。然后再把回复消息发送到angular前端。然后用angular写个简单前端吧。然后npm install安装一下。一个system系统角色消息。一个user用户角色消息。
2024-12-10 16:05:46
318
原创 202-利用gpt来学习一下dex
GMX 是一个去中心化的交易平台,支持现货交易和杠杆交易,结合了 AMM 和 订单簿 的特点。通常情况下,AMM(自动做市商) 形式的去中心化交易所(DEX)本身 不直接支持杠杆交易,因为它们的交易方式和传统的订单簿机制不同。虽然订单簿型 DEX 的匹配过程与中心化交易所相似,但它利用去中心化的智能合约来实现无信任交易,确保交易的透明性和安全性。GMX 采用的是 AMM(自动做市商) 和 订单簿 结合的模式,允许用户进行现货交易和杠杆交易,因此可以被视为一个 去中心化的衍生品交易所(DEX)。
2024-12-08 22:24:15
967
原创 200-重拾Solana和Anchor
然后我们来搞个rust的helloworld来试试看。我有点忘记之前是rust失败还是solana失败了。2.启用windows功能的虚拟机平台和linux。先打开windows功能的虚拟机平台和linux。之前是要在系统设置里面打开和虚拟机相关的东西的。现在我们来用一下solana/web3.js。之前我也写过装rust和solana的步骤。适用于linux的windows子系统。然后我们现在来用一下solana的东西。我们来装一下rust和solana。估计搞个半天还是得在wsl里面搞。
2024-03-24 16:49:14
1011
原创 199-关于新版Angular的module和routing
不仅是自带routing和app.module。当我们用旧版本去创建angular项目的时候。但是呢,当一个框架,他的配置发生改变的时候。然后我们用新版本来创建angular项目。routing和app-module。这种问题只是关于一个框架的配置问题。还有自带的environments。那用旧版和新版开发就会有一些不同。此外官方的docs也应该随之更新。也要做好开发者的开发友好度。和代码和技术都没什么关系。当框架配置发生改变的时候。是创建项目的配置不一样了。这其实是框架团队的错误。不然就会出现这种问题。
2023-12-25 15:06:52
653
原创 198-关于Angular部署子路径或二级路径
这样就打包出来了所有的网页文件和资源文件。然后对应的是多个angular项目。咱们如果要部署angular项目。我们就把所有东西都放在根目录下面。那么假设我们现在要搞多个网址。那么我们打包的时候就要注意了。要用二级目录的地址来打包。然后比如我们的域名是。把这2个项目打包之后。
2023-11-22 15:15:11
365
原创 197-Babylon入门(二)
然后在babylon里面新建一个index.html。然后我们来修改public.js的babylon代码。我们在assets文件夹里面新建个文件夹。然后我们在页面里创建一个iframe。然后我们把babylon放到项目里。这样我们就看到babylon页面了。然后我们修改一下babylon代码。我们来创建一个angular项目。然后把babylon页面显示出来。这一篇我们来创建一个web项目。然后我们调整一下iframe。我们来试着导入一下这个glb。然后引入babylon。然后把这个组件放到主页。
2023-09-21 17:10:49
184
原创 196-Babylon入门(一)
如果再往下到0,0,-10,摄像头就看不见ground平面了,因为处在同一个水平线。diameter是直径,segments是这个球体的分割度,越高就越光滑。那么如果改成0,1,-10,那么摄像头就往下平移了4个单位。我们把摄像头的位置从0,5,-10改成0,10,-10。其实也就是0,0,0,那么就是默认对准了0,0,0位置。那么如果我们改成0,5,0那么就是对准了0,5,0位置。我们发现,摄像头往上,也就是y轴上平移了5个单位。现在光源是0,1,0,比如调整到5,5,0。
2023-09-21 14:56:19
242
原创 195-EVM中的签名与RSV
我记得我还对比如"hello world"这样的普通字符串签名过。那么我们可以在合约中把order变成hash。那么我们要把这个order变成一个hash。那么比如说我们要对某个order进行签名。但是只能对0x开头的一个hash来签名。然后前端调用这个函数就拿到了hash。也签名过其他的一些乱七八糟的字符串。我们用钱包对某个字符串进行签名。然后前端对这个hash进行签名。后来好像钱包对签名进行了限制。只能对一个hash做签名了。签名出来也是一个hash。然后对hash进行签名。就拿到了这个sign。
2023-09-13 13:52:46
385
原创 194-Truffle深入浅出(三)
然后我们尝试调用一下我们部署的合约的函数。当我们装了web3的4.x版本的时候。我反复用了很多种办法都不能调用成功。但是4.x和1.x都是依然在更新的。getValue和setValue。然后我们在前端用abi来进行调用。但是我用了1.x版本才能调用成功。并不是4.x版本比1.x版本更新。部署一个Storage合约。是在build文件夹里面的。这里有一个比较恶心的事情是。所以我还是用了1.x版本。然后连接metamask。然后我们拿到abi文件。
2023-09-13 13:41:25
92
原创 193-Truffle深入浅出(二)
然后我们用web3连接一下metamask。我们创建一个angular项目。那么我们创建一个前端项目。然后我们安装一下web3。刚刚成功编译部署了合约。来调用一下合约的函数。
2023-09-08 19:07:37
95
原创 192-Truffle深入浅出(一)
然后我们来看一下migration代码。我们来看一下示例的MetaCoin。然后我们来尝试部署到本地试试看。所以回顾一下truffle吧。好久没搞solidity了。本地跑一个ganache。现在又要重回这条路线了。然后创建一个示例项目。然后我们看看项目结构。
2023-09-08 18:43:54
95
原创 191-MUD引擎深入浅出(三)
那么我们首先要在data model里面加一下。然后我们就自动生成了Balance表的合约。上一篇我们学习了一下MUD world。这样我们就把balances展示出来了。假设我们要开发一个Balance功能。然后我们来写一个MintSystem。现在我们来试试看加一个新的功能。然后改了一下counter。然后我们就要在页面上调用了。然后我们要在前端创建。
2023-09-03 17:55:34
140
原创 190-MUD引擎深入浅出(二)
那么这里的increment方法实际上就是在Counter表中记录的数值。这里的increment是来自useMUD()的systemcalls。那么我们实际上调用了worldContract的increment方法。那么我们再返回去看一下worldContract中的increment。那么存储的结构也就是我们通过data model生成的表结构。那么我们看一下通过data model生成的table合约。那么world合约本质上是来记录我们现在所有的游戏状态的。
2023-09-01 14:27:14
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人