Anonymous 发布于 收录于 教程 环境依赖,需要你有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 版本的维基百科了,但是因为才上传,可能速度会比较慢,用的人多了速度就会更快
Anonymous 发布于
查看一个服务器的时候,发现一个目录使用了很大的空间,但是这个目录没有多少数据,进入查看发现原来是大量的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
Anonymous 发布于 收录于 教程 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
Anonymous 发布于 收录于 教程 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 即可,打开后会有出现一本,点击进去就是你下载的维基百科离线镜像,你也可以下载多本,这里就出现多个。
搜索功能很弱,如果需要跳转词条,直接修改浏览器地址栏。
Anonymous 发布于
刚才看到 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 ,将也会是打开同样的网站。
Anonymous 发布于
本地保存 在 content 创建一个 img 目录,把图片保存在这个目录里面,然后在文字里面用路径 /img/1.png 进行引用。
引用样例
![Cache Rules](/img/2024/08/cache.png)使用图床 打开 ipfs图床 ,然后粘贴图片或者拖动图片进去,获得地址,切换成md格式,直接粘贴过来。
Anonymous 发布于
首先在服务器上下载 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就是验证成功
Anonymous 发布于
以太坊目前主要有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
Anonymous 发布于 收录于 教程 查看当前磁盘
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 验证一下
Anonymous 发布于
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服务即可。