2024-08-23 14:44:00
最近 SEO 又火起来了特别是在出海圈,很多朋友私底下在频繁咨询我。故放出 17 年在微脉内部做的一次 SEO 分享 PPT 和相关文档。内容比较古早,但基本涵盖 SEO 的核心,在如今用于实战依旧有效,希望能帮助到有需要的朋友。
(地榆是我的花名,别笑…)
SEO 基础规范文档:https://shimo.im/doc/aLMG4FtoLZ8JRoKC
SEO 相关的尬聊:https://shimo.im/doc/7GVFl8rwU2snuY6X·
2024-07-21 05:00:00
JUP 是 Solana 上的头部 DEX 聚合器,为用户提供快速、高效的代币交易体验。它的主要功能是为用户提供最佳的代币兑换路径,同时支持多种流动性池和 AMM(自动化做市商)协议。
本文将详细介绍 JUP 协议的核心功能、潜在的套利策略,以及如何利用 JUP 和其流动性池(JLP)来获利。
Jupiter Protocol 是 Solana 上的去中心化交易协议的聚合器。其核心特点包括:
例如,当用户在不同 DEX 上发现价格差异时,JUP 可以快速整合这些交易路径,实现最佳套利。此外,如果用户需要将大额资金兑换为小币种,JUP 会通过拆分路径来降低滑点,保障交易效率。
JLP 是 JUP 协议提供的流动性池,用于为协议提供额外的流动性支持,同时为流动性提供者(LP)创造收益来源。流动性提供者可以通过存入资产到 JLP 池中赚取以下收益:
交易手续费分成。
流动性挖矿奖励(通常以 JUP 代币形式发放)。
JLP 的设计使得它能够高效处理大量交易,同时为流动性提供者带来稳定回报。
以下是几种常见的赚钱方式:
利用 JUP 协议的聚合功能,可以寻找不同 DEX 之间的价格差异。例如:
假设在 Raydium 上 1 SOL 的价格是 25 USDC,而在 Orca 上 1 SOL 的价格是 26 USDC。使用 JUP,您可以在 Raydium 上买入 SOL,然后在 Orca 上卖出,赚取差价。
另一个例子是,当 Orca 的 USDT/USDC 兑换率高于 Serum 时,通过 JUP 可以快速完成两边的套利操作,提升利润率。
在 Raydium 上发现 SOL/USDC 的价格低于 Orca。
使用 JUP 找到最佳兑换路径,快速完成套利交易。
提供流动性较强的代币(如 SOL、USDC)以降低交易成本。
通过向 JLP 提供流动性,赚取以下收益:
例如,根据最近的数据显示,参与 JLP 的流动性提供者年化收益率通常在 15%-25% 之间。以 SOL/USDC 池为例,一些流动性提供者在市场波动期间能够获得更高的回报,同时还能享受协议奖励分发的 JUP 代币。
每笔交易的手续费。
JUP 协议分发的奖励代币。
如果市场波动较大,还可以通过做市获取额外利润。
利用 JUP 的快速结算和低滑点特性,结合 Solana 上的闪电贷功能,实现无抵押的套利:
借入大量资产,利用价格差完成交易。
在偿还贷款后,保留利润。
购买 JUP 代币本身是一种潜在的投机策略。如果您看好 JUP 协议的长期发展,可以在价格低位时购入并持有,等待增值。
在利用 JUP 和 JLP 获利时,需注意以下几点:
网络费用:尽管 Solana 的费用极低,但频繁交易仍可能累计较高成本。
滑点风险:在大额交易中,滑点可能导致额外损失。
市场波动:加密市场价格波动剧烈,需及时调整策略。
智能合约风险:尽管 JUP 已通过多方审计,但仍需警惕潜在漏洞。
JUP 协议为 Solana 生态中的用户提供了一个功能强大的工具,可以实现高效的代币交易和跨平台套利。相比其他协议,JUP 拥有更低的交易成本和更高的执行速度,特别是在复杂的跨链操作中表现尤为出色。无论是通过提供流动性赚取收益,还是利用闪电贷套利,JUP 都为投资者和交易者提供了多样化的盈利途径。
随着 Solana 生态的持续扩展,JUP 和 JLP 的潜力也将进一步释放。无论您是新手还是资深套利者,JUP 都值得您深入研究并尝试使用。
2024-05-15 05:00:00
Bento.me 是一个零代码创建个人主页的平台,以优雅美观的界面和使用简单而闻名。
但它唯一的缺点是:不支持自定义域名
但别担心,本文将用最简单、零成本的方式,帮助你为 Bento.me 绑定自定义域名。
在终端中输入以下命令,创建一个基础的 Cloudflare Worker:
npm create cloudflare@latest
然后按照终端内说明进行操作:
In which directory do you want to create your application? 你现在哪个目录创建应用
What type of application do you want to create? 你想创建什么类型的应用?
Do you want to use TypeScript? 你想使用 TypeScript 吗?
Do you want to use git for version control? 你想使用 Git 进行版本控制吗?
Do you want to deploy your application? 你想部署应用么?
完成后对应目录会出现一个文件夹,使用 Visual Studio Code 等代码编辑工具打开这个文件夹。
wrangler.toml
文件,在末尾添加下列内容:[vars]BENTO_USERNAME = "len" # 替换为你的 Bento 页面 ID,我的是 bento.me/lenBASE_URL = "https://bento.imzl.com" # 替换为你的自定义域名
.dev.vars
文件,黏贴下列内容:BENTO_USERNAME="len" # 替换为你的 Bento 页面 IDBASE_URL="http://127.0.0.1:8787"
/src/index.js
文件,替换为下列内容:/* * 为 Bento.me 设置自定义域名 * 作者:len * 详情:https://imzl.com/bento-add-domain.html * 源代码来源:https://jayfranco.hashnode.dev/ */// 事件监听addEventListener('fetch', event => { // 发生 fetch 事件时,用 handleRequest 函数结果做出响应 event.respondWith(handleRequest(event.request));});// 根据内容类型解析响应async function parseResponseByContentType(response, contentType) { // 如果没有内容类型,响应以文本形式返回 if (!contentType) return await response.text(); // 根据内容类型不同,采取不同的操作 switch (true) { case contentType.includes('application/json'): // 如果是 JSON,以 JSON 字符串形式返回 return JSON.stringify(await response.json()); case contentType.includes('text/html'): // 如果是 HTML,则使用 HTMLRewriter 对 response 进行转换 const transformedResponse = new HTMLRewriter() .on('body', { element(element) { // 自定义 CSS 和 JS 可添加到 HTML 页面中 element.append( ` <style> // 在这里输入你需要的自定义 CSS </style> `, { html: true }, ); element.append( ` <script> // 在这里输入你需要的自定义 JS </script> `, { html: true }, ); }, }) .transform(response); // 转换后的 response 以文本形式返回 return await transformedResponse.text(); case contentType.includes('font'): // 如果内容类型是字体,响应将以 ArrayBuffer 形式返回 return await response.arrayBuffer(); case contentType.includes('image'): // 如果内容类型是图片,响应将以 ArrayBuffer 形式返回 return await response.arrayBuffer() default: // 如果内容类型是其他类型,响应将以文本形式返回 return await response.text(); }}// 处理所有请求的函数async function handleRequest(request) { // 从请求 URL 中提取路径 const path = new URL(request.url).pathname; // 默认情况下,URL 设置为 "https://bento.me" + 路径 let url = 'https://bento.me' + path; // 如果路径包含'v1',URL 将更改为 'https://api.bento.me' + 路径 if (path.includes('v1')) { url = 'https://api.bento.me' + path; } // 如果 URL 为 "https://bento.me/",URL 将更改为 https://bento.me/' 后加上 BENTO User ID if (url === 'https://bento.me/') { url = 'https://bento.me/' + BENTO_USERNAME; } // 为 fetch 请求定义基本的 headers let headers = { 'Access-Control-Allow-Origin': '*', 'Access-Control-Allow-Methods': 'GET,HEAD,POST,OPTIONS', }; // 使用定义的 headers 获取 URL const response = await fetch(url, { headers }); // 从响应 headers 中提取内容类型 const contentType = response.headers.get('content-type'); // 根据内容类型解析响应 let results = await parseResponseByContentType(response, contentType); // 如果结果不是 ArrayBuffer // 将所有对 bento API 的调用替换为我们的 BASE_URL // 这是解决 CORS 错误的临时方案 if (!(results instanceof ArrayBuffer)) { results = results.replaceAll('https://api.bento.me', BASE_URL); } // 将内容类型添加到 headers headers['content-type'] = contentType; // 返回带有结果和 headers 的新响应 return new Response(results, { headers });}
npm run dev
npm run deploy
2024-02-07 07:00:00
以下是一部分推荐阅读的 Crypto 相关文章列表,从 Dan Romero Blog 复制过来的,以英文为主我已经把标题翻译为中文,建议按时间顺序阅读:
2023-12-27 01:13:00
git clone https://github.com/atomicals/atomicals-js.git
cd atomicals-JavaScript
npm install -g typescript
npm run build
npm install -g yarn
yarn install
yarn cli wallet-init
//这是创建钱包命令最后一步是创建钱包,命令运行后,会在文件夹内生成一个 wallet.json 文件,保存着助记词和私钥,请务必保存好该文件。
创建钱包后,会自动生成两个地址,Primary Address 及 Funding Address:
Primary:用于接收Atomicals生态资产
Funding:用于铸造(挖矿)过程的中转钱包,通常是往 Funding 地址中存入相应数量的 BTC,用于铸造相应资产。
yarn cli mint-dft dmint --satsbyte 30
yarn cli mint-dft quark --satsbyte=100
dmint 和 quark 是 token 名称,请修改成相对应 FT 资产名称。
satsbyte 是矿工费设置,设置 100 即为 100聪/KB 的费用 Mint 对应资产。
yarn cli mint-nft "\punk0000.png" --satsbyte 30 --satsoutput 1000 --bitworkc 233
npm run cli balances
2023-11-01 21:00:00
Starknet,这个在ETH L2 中迅速崛起的名字,如今正通过其新推出的早期社区成员计划(ECMP)为其社区成员提供前所未有的机遇。这个计划不仅仅是关于技术贡献,更是关于每一个助力 Starknet 生态系统前进的个人。
作为一个坚定的 Starknet 支持者,我认为这是一个独一无二的机会,可以让社区成员,无论是开发者、内容创作者、会议组织者还是技术讨论的积极参与者,都得到认可和奖励。
申请开始于 2023 年 10 月 30 日,截止到 11 月 23 日。评审委员会将在 12 月 29 日做出决定。感兴趣的个人和项目都应当在此期间提交申请。
ECMP 面向那些积极贡献于 Starknet 生态系统的个人。无论是通过技术讨论、组织活动、发布品牌内容,还是以其他方式,所有为生态系统增添活力和资源的个人都应当考虑申请。
评估标准包括影响力、重要性、努力程度和原创性。这意味着不仅仅是代码行数,还包括你对社区的影响、你的工作对项目的重要性、你付出的努力,以及你的工作的独创性。
项目和个人都需要通过提供的链接提交申请,包括 Telegram ID、电子邮件和 Starknet 钱包地址。每个项目和个人都将由委员会进行评估。
申请地址:https://ecmp.starknet.io/form-individual
Starknet 官方公告:https://community.starknet.io/t/announcing-the-early-community-member-program/102092
重要的是,受制裁的人员或居住在受制裁国家的人员,以及与美国相关的人士,都不符合参与条件。
这个计划是 Starknet 社区成长和发展的重要一步。它不仅奖励那些默默无闻的英雄们,也鼓励更多的人加入并为这个生态系统贡献力量。如果你是 Starknet 的忠实支持者,请不要错过这个机会。