数字周游记-01:GPT4与WEB3畅想
这是第一篇数字周游记,感谢所有即友的关注。
这篇分为两个部分:
关于GPT4与WEB3的畅想
数字生活简报
GPT4与WEB3 的畅想开始前这个畅想前,我需要先定义一下我所认为的WEB3: 数据所有权归个人
引用即友顾三小姐的即刻:
WEB1 :所见即所得WEB2:所推即所得WEB3:所建即所得
在WEB1时代,所有数据开始联网,我们能够在互联网上搜索并查看我们所有的数据。这一代产生的产品包括雅虎、Google、淘宝和亚马逊等。随着WEB2的到来,我们浏览互联网时产生的数据被算法用来推荐更匹配的数据。例如,抖音会让你上瘾,当你聊天中提到笔记本时,打开网页就会发现笔记本的广告等。我们的数据被各大互联网公司收集,大部分数据通过智能算法推断出我们的喜好,再反向将数据流推送到我们的时间线。我们对自己的数据几乎没有任何所有权或者挖掘我们自己数据的能力。因为如果你不同意,就不能使用该款互联网产品。
而在WEB3时代,我们希望数据的所有权归属于个人。我们建设这个互联网生态,我们产生数据,我们自己消费训练自己的数据,数据归我所有。王建硕老师的文章《为什么我现在就敢断言,区块链技术是和互联网技术至 ...
ChatGPT Plus的申请和使用
ChatGPT是是什么?最近大火的chatgpt大家肯定知道是什么了,输入一段文字,让他给你干活。
比如:让他用python给你写一个择时策略,你只管输入文字,他帮你写剩下的代码。
这是他给我写的代码:
123456789101112131415161718192021222324252627import pandas as pdimport numpy as npdef moving_average_strategy(data, short_window, long_window): # 计算短期移动平均线 short_rolling_mean = data['Close'].rolling(window=short_window).mean() # 计算长期移动平均线 long_rolling_mean = data['Close'].rolling(window=long_window).mean() # 创建一个新的DataFrame,存储每天的买卖决策 signals = pd.Da ...
使用ethersjs监听网络|监听交易所USDT流入流出
前言之前web3js监听过网络,发现其实还是挺复杂的,这次使用ethersjs来监听网络,应该会简单很多,也容易理解很多。本案例使用ethers发现和监听USDT合约。
目标
学会查看合约事件
编写ethersjs监听网络
监听USDT的转账事件
ethersethers入门的话可以看 GitHub - WTFAcademy/WTFEthers官方文档:Documentation如何通过ethers实现监听呢?在ethersjs中,我们可以通过合约对象来实现监听。合约对象有一个contract.on的监听方法。
Contract 合约对象合约是已部署到区块链上的代码的抽象。一个合约可以被发送交易,这将触发其代码在交易数据的输入下运行。
创建合约对象创建合约对象需要三个参数
address :合约的地址
abi:合约的abi
provider:ethers的provider1new ethers.Contract( address , abi , signerOrProvider )
合约类的事件合约类有很多事件,具体的可以自己直接看文档:Contract - event ...
solidity本地开发环境搭建 --- ganache 介绍
前言有的时候想要实现合约的测试,或者一些合约开发,你需要去测试网领取eth,有时候faucet又没有eth可以领取,这个时候,其实你可以选择自己在本地fork一个网络,想要多少eth都可以直接生成。原理是fork一个主网的网络,并跑在你的本地。
fork主网还有一个好处,你可以直接mock现在主网上的所有环境,比如dex交易所的代币余额等,你知道合约地址,可以直接进行测试和交换使用等。
目标
安装 ganache
本地启动 ganache
web3js/ethersjs 链接 ganache
remix链接本地ganache
安装 ganacheganache 有2中模式
一种是客户端界面
一种是命令行模式
方法一:命令行安装(推荐)安装命令行ganache完整包的说明ganache - npm
1npm install ganache --global
启动GANACHE1ganache
fork主网启动以下命令会自动生成10个eth账号,每个账号带有100eth的数量。
1ganache -f https://eth-mainnet.alchemyapi.io/ ...
用代码实现取消eth主网pending状态的交易
前言最近在主网测试一些交易的时候,想用更低的gas去打包交易,但是会发现如果你gas过于低,会导致你的交易迟迟不能上链,并且一直处于pending的状态。这种状态会导致你下一笔交易无法实现。
有的pending可以长达一天甚至2天。所以要么就去加速,要么就去取消
目标
使用代码取消链上交易
实现取消链上交易取消操作比较简单,就是找到原有的交易,然后将其转账金额设置为0,然后转账的数据设置为“0x”即可
先根据你的交易hash,从etherscan获得整个交易信息
获得 from 和 to
获得noce,因为需要你是需要去覆盖他的noce,所以下面的noce是需要填一样的数据的。
然后获取对应的Gas fees, 转账一般需要最低gas是 21000
然后gasPrice去下面的网站查找,找到之后可以给高一点
Ethereum Gas Tracker
去查看当前的GAS是多少
根据上面的数据组装一下参数
12345678910let tx = { from: "0xd6cc8a078ef9081ad86210cca052923437f260c5" ...
使用hardhat发行一个NFT
前言熟悉hardhat,并发行一个NFT
目标
了解hardhat
了解solidity
使用harhat发行nft
使用ipfs存储你的nft
hardhat是什么Hardhat是一个便于在以太坊上进行构建的开发环境。它帮助开发人员管理和自动化构建智能合约和dApp的过程中固有的重复任务,以及轻松地围绕此工作流程引入更多功能,并且内置了开发专用以太坊网络,这意味着从根本上进行编译和测试。
前期准备初始化工程12345678910mkdir nft-publiccd nft-publicnpm initnpm install --save-dev hardhatnpx hardhat
运行成功之后会生成如下的文件夹
1234567891011.├── README.md├── contracts //存放职能合约的目录│ └── Greeter.sol├── hardhat.config.js // hardhar的配置目录,例如solidity的版本等├── package.json├── scripts ...
web3js与ethers的区别
前言使用 truffle部署合约,并练习ethers库。之前一直是使用web3js,今天看到一个源码使用了ethers,看了之后感觉比web3js方便很多。
web3js 与 ethers对比连接到以太坊1234// web3 var Web3 = require('web3'); var web3 = new Web3('http://localhost:8545'); // ethers var ethers = require('ethers'); const url = "http://127.0.0.1:8545"; const provider = new ethers.providers.JsonRpcProvider(url);
签名对象在ethers中,签名者是以太坊账户的抽象。它可用于对消息和交易进行签名,并将签名的交易发送到以太坊网络。在 web3 中,可以使用一个帐户来签署消息和交易。
123456// web3 const account = web3.eth.accounts. ...
vue3 setup和pinia的使用总结
前言最近使用vue3重新写了项目,发现人家都配置好了,使用setup语句可以非常方便的运行各种组件和状态的管理,跟react越来越像了。最开始参考 Vue3 setup语法糖使用简易教程(上) - 掘金 的使用说明,结合setup的语法糖,熟悉之后各种组件之间的状态同步等,都变得非常的丝滑。以下文章都是以setup语法糖来做说明
123<script setup>....</script>
数据相关refstring、array、num等对象的情况下可以直接使用ref如果不使用 ref会导致UI模板的template不能渲染
1234567<template> <div>{{num}}</div></template><script setup>import { ref } from "vue";let num=ref(1)</script>
ref赋值ref 赋值需要复制给他的 data.value
12 ...
【01-backtrader学习笔记】-初识Backtrader|了解基本概念|实现最简单的回测
Backtrader是一款纯Python的回测+实盘框架。从软件工程的角度,这个项目非常值得学习。这个框架的代码风格非常Pythonic,也值得借鉴和学习。作者是一个很严谨的德国人,从他的代码审查和社区管理可见一斑。
backtrader允许您专注于编写可重复使用的交易策略,指标和分析器,而不必花时间构建基础架构。
backtrader的思路是通过历史回顾每个bar来进行回测追溯,可能会更简单理解一点。
论坛有采生之前写过的帖子,大家也可以去学习一波,我是学习完之后,总结了一下这篇笔记。
最终会生成图表,有助于我们进行分析,可以清晰的看到开关仓点位,以及盈利情况等。
基本概念在学习backtrader之前需要大概先了解他的几个核心组件,如果你不想了解也没事,直接看代码就好啦。看到不懂的回来参考一下即可。
Cerebro:BackTrader的基石,所有的操作都是基于Cerebro的。
Feed:将运行策略所需的基础数据加载到Cerebro中,一般为K线数据。
Indicator:BackTader自带的指标,并集成了talib中的指标。我们也可以选择继承一个Indicator ...
【智能合约笔记-01】入门智能合约|使用智能合约实现发币、转账、查询等功能
01-入门智能合约前言之前使用web3js调用了很多合约进行交互,那么如果想深入了解的话,还是需要学习一下合约相关的知识,这是一篇入门笔记,能让我们对合约有个大概的认知。
通过这篇文章你能了解到:
如何存储数据上以太坊链
如何发行一个自己的Token(币)
实现代币的增发
实现代币余额的查询
实现代币的转账
准备工作可以使用remix编辑器和solidity文档
remix
solidity智能合约文档
solidity英文版本(建议看此版本,比较新)
简单的智能合约存储链上数据目标:
能在EVM(以太坊虚拟机)存储一个数据
能查询该数据
12345678910111213pragma solidity ^0.4.0;contract SimpleStorage { uint storedData; function set(uint x) public { storedData = x; } function get() public view returns (uint) { r ...