Сначала вам нужно создать частную сеть в IPFS, это позволит вашим узлам ipfs подключаться к узлам ipfs с одинаковым ключом роя.
В ваших службах ipfs0 и ipfs1 вынеобходимо добавить две новые переменные окружения и новый том:
ipfs0:
container_name: ipfs0
image: ipfs/go-ipfs:release
# ports:
# - "4001:4001" # ipfs swarm - expose if needed/wanted
# - "5001:5001" # ipfs api - expose if needed/wanted
# - "8080:8080" # ipfs gateway - expose if needed/wanted
environment:
- LIBP2P_FORCE_PNET=1
- IPFS_SWARM_KEY_FILE=/data/ipfs/swarm.key
volumes:
- ./compose/ipfs0:/data/ipfs
- ./swarm.key:/data/ipfs/swarm.key
Чтобы сгенерировать swarm.key, проверьте эту ссылку . Ключ swarm.key должен находиться в корневом пути ipfs (по умолчанию ~ / .ipfs в пути контейнера ipfs есть: / data / ipfs ). Этот swarm.key должен быть одинаковым для всех узлов ipfs.
Для кластера IPFS у вас все хорошо, с помощью этой команды вы можете сгенерировать свой ключ кластера:
export CLUSTER_SECRET=$(od -vN 32 -An -tx1 /dev/urandom | tr -d ' \n')
Я рекомендую вамдобавить файлы с помощью кластера ipfs REST Api. Проверьте эту ссылку , чтобы настроить кластер ipfs и повысить безопасность загрузки файлов (используя секретный ключ api), или вы можете разрешить только localhost в качестве сети кластера ipfs:
ports:
- "127.0.0.1:9094:9094" # Only open the port 9094 in localhost