
使用旧手机作为离线硬件钱包——AirGap Vault教学
导语尽管网路上已经有着成百上千形形色色的类似教程,但是他们普遍所使用的都是些无法信任的闭源钱包,无非是些ImToken、TokenPocket;尽管也有些方案所使用的产品是诸如MyEtherWallet、Parity Signer等深受社区所信任的开源钱包,但这些信息都已经过时,这些产品基本上都已经放弃对于以太坊离线签名的支持。前言使用AirGap Vault不仅可以摆脱上述问题,而且其原生兼容了KeyStone的以太坊二维码格式,这也就意味着我们可以在PC上将其导入类似于Rabby或是MetaMask这样的钱包插件,享受美好的Web3世界。 尽管有着上述优点,但是其产品还是存在一些不足之处。例如仅支持BTC、ETH、DOT这些常用网络,支持的币种远小于真正的硬件钱包;同时使用纯二维码的方案,相对于Ledger、Trezor可以基于USB或是蓝牙的方案来说,略微繁琐。创建首先可以准备一台过时或者淘一台旧手机,如果只需要运行AirGap,那么一两百的Z5Compact就可以胜任,而不用去花费例如 $119 去选择一台KeyStone Essential或是 €79 购置一只Ledg...
快速将小额USDC桥接到Base网络
目前具体Base Bridge正式上线还没有过去几天的时间,已经有大量的协议已经部署到的Base主网上,Coinbase也将自己的USDC代币加入了白名单。 然而小额的USDC跨链问题依然是一件令人头疼的事情。如果从主网进行跨链,不仅要支付交易所的提现费用和高昂的跨链Gas;但是如果使用Stargate又要支付大约0.2-0.3%的费用,对于稳定币跨链来说是相当高昂的费用。 Axelar是一个Cosmos/EVM跨链协议,借助于他们的axlUSDC(来自于ETH)我们可以在ARB/OP/MATIC/AVAX/BSC等常用的网络上直接将USDC转换为axlUSDC,同时在Base主网上铸造对应数量的axlUSDC。全程只需支付大约0.02-0.03%的滑点费用和很少的Gas费用即可完成。 SquidRouter是基于Axelar的跨链实现之一,借助于他们的Router功能,我们可以快速将原先的多步兑换操作直接简化为一步。 首先打开SquidRouter官网,选择需要跨链的网络和目标链,然后执行兑换即可。由于目前SquidRouter还未完成Balancer的接入,因此在Base上的...

IPFS被诟病存在各种问题,而且使用体验也不尽如人意,但它已经成为实际上的Web3基础设施。与Torrent类似,想要获取到网络上的文件就必须通过专用的程序来进行访问,而一些第三方提供的服务存在例如网络速率、使用流量等方面的种种限制;但他们却也提供了最快快捷的接入方式。
理论上只要将文件存放在本地并上传至IPFS网络,其他主机就可以直接获取到相关文件。然而由于P2P传输的限制,实际访问速度可能较为缓慢,同时如果本机出现单点故障,也会造成无法访问的问题。
为了实现从Github储存库进行自动化同步,我选取了4everland作为托管提供商。同样的,也可以选择使用fleek进行托管,或是直接将生成好的静态文件存放至任意提供PIN服务的地方,如web3.storage。
首先通过MetaMask或其他兼容钱包执行签名进行登录。

待登录完成后选择右上角的 "New Project" 创建新项目,并从Github进行同步,之后就可以看到已经部署好的项目。

将IPFS内容设置为ENS解析有三种形式。直接作为IPFS内容引入,或通过IPNS通过HASH或DNSLINK形式进行引入。由于每次同步都会生成全新的CID,因此如果使用IPFS方式进行解析,每次都需要重新上链,成本较为高昂,因此着重介绍使用IPNS进行解析的方案。
使用DNSLINK需要准备一个外部域名,通过设置_dnslink的TXT解析,使得例如"dnslink=/ipfs/QmbkR54w3RGgvQrSXeoan6E8ABzVV9g851Krd6JwL9Z8j6"的IPFS能被域名所反向解析。但是由于ContentHash和IPFS对于CID的离谱转码,无法直接在ENS.domains进行设置,因此可以直接前往Etherscan进行合约交互。选择写入,使用setContenthash方法,这时需要我们输入node和hash值。
由于ENS内部会将注册好的域名转换为派生散列,因此我们需要先获取转换后的node值,此处我们使用Node.js实现进行。
首先安装依赖库npm install @ensdomains/eth-ens-namehash -S,然后使用如下实现查询生成值:
var namehash = require('@ensdomains/eth-ens-namehash')
var hash = namehash.hash('sakuradream.eth') //转换ENS地址
console.log(hash)
同样地,我们也需要获取转换后的hash值,该值采用了多重转换,可以使用以下实现:
安装依赖:npm install -g content-hash multihashes bs58
const contentHash = require('content-hash')
const multihashes = require('multihashes')
const bs58 = require('bs58')
const content = multihashes.encode(Buffer.from('sakuradata.com'), 'identity') //转换DNSLink地址
const address = bs58.encode(content)
const racontent = contentHash.encode('ipns-ns', address);
console.log("UTF8: ",content)
console.log("BASE58: "+address)
console.log("ContentHash: 0x"+racontent)
然后在Etherscan链接上钱包,并将生成好的的值对应填写入,发送交易与合约进行交互即可,待交易被打包后就可以访问例如sakuradream.eth.link的地址来进行访问。后续的IPFS CID可以直接通过修改DNSLink的TXT记录进行。
相对于DNSLink而言,IPNS无疑简单许多。你可以通过本地的IPFS客户端生成全新的IPNS地址,并在客户端内为其绑定指定的IPFS地址。或者之前复制前述4everland项目中提供的IPNS地址来进行设置,当然你甚至可以直接在项目页面直接用你的钱包发出设置交易。
如果你使用了一个支持ENS的浏览器,例如Brave或是Opera,或是浏览器上安装了MetaMask插件,可以直接通过你的ENS地址进行访问。或者在你的ENS域名后面添加.link或者.limo来使用公开的网关进行访问。
如果一切顺利,那你只需要稍等片刻,就能够看到你刚刚所搭建好的博客啦~

IPFS被诟病存在各种问题,而且使用体验也不尽如人意,但它已经成为实际上的Web3基础设施。与Torrent类似,想要获取到网络上的文件就必须通过专用的程序来进行访问,而一些第三方提供的服务存在例如网络速率、使用流量等方面的种种限制;但他们却也提供了最快快捷的接入方式。
理论上只要将文件存放在本地并上传至IPFS网络,其他主机就可以直接获取到相关文件。然而由于P2P传输的限制,实际访问速度可能较为缓慢,同时如果本机出现单点故障,也会造成无法访问的问题。
为了实现从Github储存库进行自动化同步,我选取了4everland作为托管提供商。同样的,也可以选择使用fleek进行托管,或是直接将生成好的静态文件存放至任意提供PIN服务的地方,如web3.storage。
首先通过MetaMask或其他兼容钱包执行签名进行登录。

待登录完成后选择右上角的 "New Project" 创建新项目,并从Github进行同步,之后就可以看到已经部署好的项目。

将IPFS内容设置为ENS解析有三种形式。直接作为IPFS内容引入,或通过IPNS通过HASH或DNSLINK形式进行引入。由于每次同步都会生成全新的CID,因此如果使用IPFS方式进行解析,每次都需要重新上链,成本较为高昂,因此着重介绍使用IPNS进行解析的方案。
使用DNSLINK需要准备一个外部域名,通过设置_dnslink的TXT解析,使得例如"dnslink=/ipfs/QmbkR54w3RGgvQrSXeoan6E8ABzVV9g851Krd6JwL9Z8j6"的IPFS能被域名所反向解析。但是由于ContentHash和IPFS对于CID的离谱转码,无法直接在ENS.domains进行设置,因此可以直接前往Etherscan进行合约交互。选择写入,使用setContenthash方法,这时需要我们输入node和hash值。
由于ENS内部会将注册好的域名转换为派生散列,因此我们需要先获取转换后的node值,此处我们使用Node.js实现进行。
首先安装依赖库npm install @ensdomains/eth-ens-namehash -S,然后使用如下实现查询生成值:
var namehash = require('@ensdomains/eth-ens-namehash')
var hash = namehash.hash('sakuradream.eth') //转换ENS地址
console.log(hash)
同样地,我们也需要获取转换后的hash值,该值采用了多重转换,可以使用以下实现:
安装依赖:npm install -g content-hash multihashes bs58
const contentHash = require('content-hash')
const multihashes = require('multihashes')
const bs58 = require('bs58')
const content = multihashes.encode(Buffer.from('sakuradata.com'), 'identity') //转换DNSLink地址
const address = bs58.encode(content)
const racontent = contentHash.encode('ipns-ns', address);
console.log("UTF8: ",content)
console.log("BASE58: "+address)
console.log("ContentHash: 0x"+racontent)
然后在Etherscan链接上钱包,并将生成好的的值对应填写入,发送交易与合约进行交互即可,待交易被打包后就可以访问例如sakuradream.eth.link的地址来进行访问。后续的IPFS CID可以直接通过修改DNSLink的TXT记录进行。
相对于DNSLink而言,IPNS无疑简单许多。你可以通过本地的IPFS客户端生成全新的IPNS地址,并在客户端内为其绑定指定的IPFS地址。或者之前复制前述4everland项目中提供的IPNS地址来进行设置,当然你甚至可以直接在项目页面直接用你的钱包发出设置交易。
如果你使用了一个支持ENS的浏览器,例如Brave或是Opera,或是浏览器上安装了MetaMask插件,可以直接通过你的ENS地址进行访问。或者在你的ENS域名后面添加.link或者.limo来使用公开的网关进行访问。
如果一切顺利,那你只需要稍等片刻,就能够看到你刚刚所搭建好的博客啦~

使用旧手机作为离线硬件钱包——AirGap Vault教学
导语尽管网路上已经有着成百上千形形色色的类似教程,但是他们普遍所使用的都是些无法信任的闭源钱包,无非是些ImToken、TokenPocket;尽管也有些方案所使用的产品是诸如MyEtherWallet、Parity Signer等深受社区所信任的开源钱包,但这些信息都已经过时,这些产品基本上都已经放弃对于以太坊离线签名的支持。前言使用AirGap Vault不仅可以摆脱上述问题,而且其原生兼容了KeyStone的以太坊二维码格式,这也就意味着我们可以在PC上将其导入类似于Rabby或是MetaMask这样的钱包插件,享受美好的Web3世界。 尽管有着上述优点,但是其产品还是存在一些不足之处。例如仅支持BTC、ETH、DOT这些常用网络,支持的币种远小于真正的硬件钱包;同时使用纯二维码的方案,相对于Ledger、Trezor可以基于USB或是蓝牙的方案来说,略微繁琐。创建首先可以准备一台过时或者淘一台旧手机,如果只需要运行AirGap,那么一两百的Z5Compact就可以胜任,而不用去花费例如 $119 去选择一台KeyStone Essential或是 €79 购置一只Ledg...
快速将小额USDC桥接到Base网络
目前具体Base Bridge正式上线还没有过去几天的时间,已经有大量的协议已经部署到的Base主网上,Coinbase也将自己的USDC代币加入了白名单。 然而小额的USDC跨链问题依然是一件令人头疼的事情。如果从主网进行跨链,不仅要支付交易所的提现费用和高昂的跨链Gas;但是如果使用Stargate又要支付大约0.2-0.3%的费用,对于稳定币跨链来说是相当高昂的费用。 Axelar是一个Cosmos/EVM跨链协议,借助于他们的axlUSDC(来自于ETH)我们可以在ARB/OP/MATIC/AVAX/BSC等常用的网络上直接将USDC转换为axlUSDC,同时在Base主网上铸造对应数量的axlUSDC。全程只需支付大约0.02-0.03%的滑点费用和很少的Gas费用即可完成。 SquidRouter是基于Axelar的跨链实现之一,借助于他们的Router功能,我们可以快速将原先的多步兑换操作直接简化为一步。 首先打开SquidRouter官网,选择需要跨链的网络和目标链,然后执行兑换即可。由于目前SquidRouter还未完成Balancer的接入,因此在Base上的...
Share Dialog
Share Dialog

Subscribe to Leter.io

Subscribe to Leter.io
<100 subscribers
<100 subscribers
No activity yet