Linux环境下在ipfs上部署维基百科镜像

环境依赖,需要你有git、node、yarn,因为有几百个小文件需要操作,推荐使用 固态硬盘。 在window环境下会有问题,好像是文件名路径的原因。 1.先安装ipfs 最新版下载链接:https://dist.ipfs.tech/#kubo wget https://dist.ipfs.tech/kubo/v0.29.0/kubo_v0.29.0_linux-amd64.tar.gz tar zxvf kubo_v0.29.0_linux-amd64.tar.gz cd kubo ./install.sh2.初始化和配置ipfs 因为整个维基百科数据库比较大,我们需要使用 ipfs 的一个 filestore 特性,filestore 特性需要 ipfs 目录和添加的文件挂载在一个设备下面。 先修改环境变量/etc/profile ,加入 export IPFS_PATH=/data2/ipfs ,source /etc/profile screen -S ipfs ipfs init ipfs config --json Experimental.FilestoreEnabled true ipfs config --json Experimental.StrategicProviding true ipfs daemon注意这里用了一个 screen 运行ipfs,避免网络掉线。 3.拉取数据和生成页面并添加到ipfs git clone https://github.com/chenjia404/distributed-wikipedia-mirror cd distributed-wikipedia-mirror screen -S wikipedia-mirror yarn ulimit -n 65536 ./mirrorzim.sh -l=zh -w=wikipedia 如果你需要英文版本,可以把 zh 替换成 en。注意这里用了一个 screen 运行生成程序,避免网络掉线。 最后一个通宵后输出结果为:bafybeichypzjch6uuo5pe6btkctcusdwvp77xidgbh5kc2ipowvuaexhiq 现在我们就可以使用各种 ipfs 网关打开这个 ipfs 版本的维基百科了,但是因为才上传,可能速度会比较慢,用的人多了速度就会更快

Docker-Compose环境下mysql二进制日志文件体积过大优化

查看一个服务器的时候,发现一个目录使用了很大的空间,但是这个目录没有多少数据,进入查看发现原来是大量的mysql二进制日志,简单的处理了一下,增加了 binlog_expire_logs_seconds 参数。 我设置的是保存一个小时,你可以根据你自己的业务情况调整。 services: db: image: mysql:8.4 restart: always container_name: 'mysql' environment: MYSQL_DATABASE: 'db1' MYSQL_ROOT_PASSWORD: '123456' volumes: - ./mysql-data/:/var/lib/mysql command: --binlog_expire_logs_seconds 3600

Window环境搭建维基百科本地离线版本kiwix-Serve

1.下载 Kiwix Server 来源网站:https://kiwix.org/en/applications/ 下载链接:https://download.kiwix.org/release/kiwix-tools/kiwix-tools_win-i686.zip 解压到你的安装目录 2.下载 zim 文件 打开 https://download.kiwix.org/zim/wikipedia/ ,搜索ctrl+f ,搜索 wikipedia_zh_all_maxi ,选择日期最大的一个文件,可以使用迅雷等软件下载。 我下载的是 wikipedia_zh_all_maxi_2024-04.zim (磁力链接:magnet:?xt=urn:btih:637c26235880d470495ade60863ade57fe30230f),中文全集2024年4月版本,你也可以下载其它语言的。 下载的文件放在第1步的安装目录里面。 3.创建索引文件 .\kiwix-manage.exe library.xml add wikipedia_zh_all_maxi_2024-04.zim 4.启动 .\kiwix-serve.exe --library library.xml -p 8888 浏览器打开 localhost:8888 也可以省略第3步,直接指定文件启动 .\kiwix-serve.exe wikipedia_zh_all_maxi_2024-04.zim -p 8888 参数文档:https://kiwix-tools.readthedocs.io/en/latest/kiwix-serve.html

Docker-Compose 一键安装部署维基百科本地离线版本kiwix-Serve

1.先手动下载 zim 文件 打开 https://download.kiwix.org/zim/wikipedia/ ,搜索ctrl+f ,搜索 wikipedia_zh_all_maxi ,选择日期最大的一个文件,使用迅雷等软件下载,如果是服务器可以用wget -c 断点续签下载,建议开启 screen 防止长时间下载中断。 我下载的是 wikipedia_zh_all_maxi_2024-04.zim (磁力链接:magnet:?xt=urn:btih:637c26235880d470495ade60863ade57fe30230f),中文全集2024年4月版本,你也可以下载其它语言的。 下载的文件放在第二步的 kiwix-database 目录里面。 2.启动容器 在你需要的目录创建 docker-compose.yml 文件 version: '3.9' services: kiwix-serve: command: '"*.zim"' image: ghcr.io/kiwix/kiwix-serve restart: unless-stopped ports: - '15080:8080' volumes: - './kiwix-database:/data' container_name: kiwix数据调用的当前目录下的 kiwix-database 目录,需要把第一步下载的 zim 文件放在这个里面。 然后一键启动 docker-compose up -d,然后浏览器打开 localhost:15080 即可,打开后会有出现一本,点击进去就是你下载的维基百科离线镜像,你也可以下载多本,这里就出现多个。 搜索功能很弱,如果需要跳转词条,直接修改浏览器地址栏。

使用 Cloudflare 的 Web3网关 + Ipfs 免费托管网站、博客

刚才看到 it-tools 这个项目,官方文档推荐的是用一个 docker 镜像来运行,实际这个项目就一点静态文件,找一个静态文件托管的地方就行了。 下载 it-tools 的 release 文件,解压后把目录传到 ipfs ,获取文件目录的cid,然后在 cloudflare 网站管理里面,web3->创建网关,在主机名里面输入完整的子域名,网关描述是备注,可以不输入,网关类型只有 IPFS DNSLink 可选,DNSLink 填写你上一步获得的cid,这里要拼装成 ipfs 格式,例如 /ipfs/QmaNkv4P1dudTGZJqyqhPuFU2JmxQRJ4BeqMuqR3WNfBwZ。 注意第一次添加会比较慢,可以通过多个 ipfs 网关打开一次,加速缓存。使用其它 ipfs 网关打开的时候,只会加载请求的文件,有一些没有请求的文件不会加载,可以在根路径下打包下载整个文件 ,例如打开路径 /ipfs/QmaNkv4P1dudTGZJqyqhPuFU2JmxQRJ4BeqMuqR3WNfBwZ/?format=tar&filename=it-tool.tar 。 如果你用你的子域名绑定 web3网关 的时候,也填写 /ipfs/QmaNkv4P1dudTGZJqyqhPuFU2JmxQRJ4BeqMuqR3WNfBwZ ,将也会是打开同样的网站。

Hugo 中添加图片

本地保存 在 content 创建一个 img 目录,把图片保存在这个目录里面,然后在文字里面用路径 /img/1.png 进行引用。 引用样例 ![Cache Rules](/img/2024/08/cache.png)使用图床 打开 ipfs图床 ,然后粘贴图片或者拖动图片进去,获得地址,切换成md格式,直接粘贴过来。

使用go-P2ptunnel搭建一个socks5的代理

首先在服务器上下载 https://github.com/chenjia404/go-p2ptunnel/releases 创建单独的目录 mkdir go-p2ptunnel 下载最新版并解压 curl -L $( curl -L https://api.github.com/repos/chenjia404/go-p2ptunnel/releases/latest |grep browser_ |grep "go-p2ptunnel" |grep -i $(uname -s)|grep -v asc |sed 's/amd/x86_/' |grep $(uname -m) | sed 's/x86_/amd/' |cut -d\" -f4) -o go-p2ptunnel.tar.gz tar -xvzf go-p2ptunnel.tar.gz签名验证(可选) curl -L $( curl -L https://api.github.com/repos/chenjia404/go-p2ptunnel/releases/latest |grep browser_ |grep "go-p2ptunnel" |grep -i $(uname -s)|grep asc |sed 's/amd/x86_/' |grep $(uname -m) | sed 's/x86_/amd/' |cut -d\" -f4) -o go-p2ptunnel.tar.gz.asc gpg --verify go-p2ptunnel.tar.gz.asc go-p2ptunnel.tar.gz如果出现using RSA key E1346252ED662364CA37F716189BE79683369DA3就是验证成功

以太坊的几种签名类型的区别和使用场景

以太坊目前主要有3种签名类型,分别是:eth_sign, personal_sign, eth_signTypedData eth_sign 这个是所有链上交易的签名方式,他的实现逻辑是把一个交易信息 rlp 编码后,然后再进行一次keccak256哈希,最后对这个哈希进行签名。 这个签名类型有个特点,签名的内容是哈希,无法确定内容,有一种攻击方法就是让用户使用这个方法签名内容,达到攻击的效果。由于这个安全问题,小狐狸 metamask 默认禁用了这个方法,需要开启才可以,而且会有很明确的安全风险提醒。 在打开eth_sign后(方法我这里不就说,避免大家开启),我们提交一个签名测试看看效果 这个签名我想大家都看不出来是什么内容吧,攻击场景就是利用的这个。 personal_sign 因为第一种签名的不安全,就诞生了eip-191,实现了第二种签名personal_sign。personal_sign很多时候使用的场景是身份确认,例如我持有这个钱包,我拿什么给别人证明我持有,签名第一种方法也是的,但是第二种就可以直接签名一段文本,签名的时候明确的知道签名的内容是什么。 这里就能很安全的看得出来签名内容,做一些消息验证场景就很实用,尤其是很多钱包登录场景。另外就是这里的签名格式是:"\x19Ethereum Signed Message:\n32" + message,前面加了一些字符串,保证personal_sign的签名绝对不和 eth_sign 冲突。 eth_signTypedData 有了第二种签名后,社区又有新的脑洞,personal_sign签名文本,文本不好解析,没有办法做一些类似授权、转账这种签名,签名可不可以支持更多功能,于是eip-712出现了。 eip-712的签名,实际上是一个格式化的数据,这种签名的消息格式为: “\x19\x01” + domainSeparator + structHash domainSeprator可以指定链、合约地址、协议版本等参数,这样我在eth链签名的数据,在bsc就不能用,解决重放攻击。 这里可以清晰的看清楚授权数量这些,使用门槛很低。 看了签名的科普,就知道那些签名不安全,那些相对安全了,在日常使用避免不安全的签名,以免被攻击。当然签名信息看懂了,也不能保证绝对安全,因为背后的代码逻辑是否正确,已经网站是否被攻击钓鱼等,可能今天是安全了,明天就会变化,实际使用中,一定要确认自己交互的合约地址内容。 code is law

Hetzner的独立服务器挂载第二块硬盘

查看当前磁盘 fdisk -l新建分区 fdisk /dev/nvme0n1 格式化分区 mkfs -t ext4 /dev/nvme0n1挂载分区 mount /dev/nvme0n1 /data2/然后编辑 /etc/fstab 保存挂载记录,重启后配置依然在,增加下列内容 /dev/nvme0n1 /data2/ ext4 defaults 0 0也可以使用命令 echo "/dev/nvme0n1 /data2/ ext4 defaults 0 0" >> /etc/fstab 最后 reboot 验证一下

Windows使用ed25519格式的ssh证书登录centos

window本地操作 创建ed25519证书 ​​​​​​​ssh-keygen -t ed25519会提示输入证书保存位置,直接回车默认即可,还有就是密码,可以不输入。 资源管理器打开 %homepath%/.ssh 就能看到了,id_ed25519 是私钥,id_ed25519.pub 是公钥。 如果使用cmd,就可以直接 cd %homepath%/.ssh ,如果使用 powershell 就 cd $HOME/.ssh,然后 cat .\id_ed25519.pub。 centos服务器操作 设置ssh配置文件目录权限(必须) chown -R 0700 ~/.ssh chown -R 0644 ~/.ssh/authorized_keys chown -R root:root /home/root修改配置ssh文件,开启ssh证书登录,支持root登录 修改 /etc/ssh/sshd_config 文件里面的相关行 RSAAuthentication yes StrictModes no PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys重启ssh systemctl restart sshd.service如果需要禁止密码登录,修改配置文件中的 PasswordAuthentication no,然后重启ssh服务即可。
0%