qfdk

qfdk

喜欢碎碎念的小 🐭, 对开源情有独钟, 会说 🇫🇷, 喜欢折腾 “黑科技”, 徒步是日常
github

IPFS自動ピンサービスの作成を試してみてください。

紹介#

IPFS を約 2 週間使用した後、IPFS の動作原理を徐々に理解しました。最初に Planet を使用したときは、この概念について全く理解がありませんでした。そのため、ブログが頻繁に反応しないことがあり、パブリックゲートウェイにアクセスするとタイムアウトすることさえありました。このサービスはあまり安定していないと考えていました。

解決策 - filebase#

まず、もっと多くの友達にピンをしてもらう必要があります。ピンの操作は、現在の CID に対してのみ行われることを理解していますが、コンテンツが変更された場合はピンをする必要があります。 Planet は更新されましたので、filebase を使用してタスクを完了することができます。Planet が記事を公開した後は、少し待っておく必要があります。これにより、filebase があなたの記事をインターネット上でピン留めします。 IPFS には GC の機能があり、頻繁にアクセスされないリソースは無効になるため、このピンの操作は非常に重要です。

プライベートな解決策#

アイデアは次のとおりです。IPFS をダウンロードしてインストールし、IPFS をシステムサービスに設定し、起動時に自動的に起動できるようにします。また、IPFS ピンをスケジュールタスクに追加し、IPFS にピンの操作を自動的に行わせます。
現在、自分のサーバーに IPFS をインストールし、qfdka.eth に操作を行いました。今では、いくつかのサーバーに IPFS がインストールされています。これらを自動化したいので、ワンクリックスクリプトを作成しました:

image

見た目はまだかなり良いですが、まだ変更の余地があります。一部を掲載します。助けになった友達はいいねを押してください。

#!/bin/bash
FILE_NAME="kubo_v0.16.0_linux-amd64.tar.gz"
DOMAIN="qfdka.eth"
ls /usr/local/bin/ipfs >/dev/null

# IPFSがインストールされているかどうかを確認する
if [ $? -ne 0 ]; then
    echo -e "💡 IPFSをダウンロード中 ${FILE_NAME}"
    cd /tmp
    wget https://dist.ipfs.tech/kubo/v0.16.0/$FILE_NAME
    tar -xvzf $FILE_NAME
    cd kubo

    echo -e "💡 公式のインストールスクリプトを実行中"
    sudo bash install.sh >/dev/null
    echo -e "✅ 公式のインストールスクリプトの実行が完了しました"

    # システムサービスのインストール
    echo -e "📪 システムサービスのインストール中"
    cat >/lib/systemd/system/ipfs.service <<EOF
[Unit]
Description=IPFS
[Service]
ExecStart=/usr/local/bin/ipfs daemon
Restart=always
User=root
Group=root
[Install]
WantedBy=multi-user.target
EOF
    systemctl daemon-reload
    echo -e "📪 IPFSの初期化中"
    ipfs init >/dev/null
    systemctl enable ipfs
    echo -e "✅ IPFSサービスのインストールが完了しました"
else
    echo -e "✅ IPFSは既にインストールされています"
fi

echo -e "💭 IPFSの設定を最適化中"
systemctl stop ipfs >/dev/null
sysctl -w net.core.rmem_max=2500000
ipfs config Addresses.Gateway /ip4/127.0.0.1/tcp/8088
# 低消費電力モードに切り替える
# ipfs config profile apply server >/dev/null
ipfs config profile apply lowpower >/dev/null
systemctl start ipfs
echo -e "✅ IPFSの最適化が完了しました"

# ピンの操作
echo -e "💡 ピンの操作を実行中、5秒後に開始します..."
sleep 5
ipfs pin add /ipns/$DOMAIN
echo -e "✅ ピンの操作が成功しました"

echo -e "📪 定期的なピンのタスクをチェック中"
if [ -f /var/spool/cron/crontabs/root ]; then
    CRONTABLE=$(cat /var/spool/cron/crontabs/root | grep $DOMAIN | wc -l)
    if [ $CRONTABLE -eq 1 ]; then
        echo -e "✅ タスクは既に存在しています"
    else
        echo "*/2 * * * * ipfs pin add /ipns/$DOMAIN" >>/var/spool/cron/crontabs/root
        service cron reload
        echo -e "✅ 定期的なピンのタスクが正常に設定されました"
    fi
else
    echo "*/2 * * * * ipfs pin add /ipns/$DOMAIN" >>/var/spool/cron/crontabs/root
    service cron reload
    echo -e "✅ 定期的なピンのタスクが正常に設定されました"
fi

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。