Por favor, note que esta questão está relacionada ao IPFS ( link ).
É possível montar a pasta ~/.ipfs
em um dispositivo externo (como: disco rígido, unidade de rede, WD My book etc.)? Isso ajudará a compartilhar a pasta ~/.ipfs
entre nós diferentes. Eu não tinha certeza se o IPFS foi projetado para ter esse sistema de arquivos compartilhado entre nós (simultaneamente?).
Por favor, note que eu estou montando em meu disco rígido externo WD My book ( link , Sistema de arquivos NTFS). Por favor, veja minha linha de código de montagem:
$ mkdir /mnt/cifs
$ sudo mount -t cifs //server-name/share-name /mnt/cifs -o \
username=admin,password=my_password,uid=1000
$ mount | grep 'cifs’
//server-name/share-name on /mnt/cifs type cifs (rw)
Depois de montar a pasta ~/.ipfs
, quando tento executar ipfs init
ou ipfs add <filename>
, enfrentei o seguinte erro:
Error: fsync: invalid argument
Quando: ipfs add <filename>
é executado, ele cria arquivos de bloco dentro de pastas criadas da seguinte maneira:
%código%.
~/.ipfs/blocks$ ls
CIQA2 CIQBE CIQCP CIQDV CIQF7 CIQGF CIQHL CIQIY CIQK5 CIQLB CIQMG CIQNM CIQOR
CIQA3 CIQBF CIQCQ CIQDW CIQFA CIQGG CIQHM CIQIZ CIQK6 CIQLC CIQMH CIQNN CIQOS
CIQA4 CIQBG CIQCR CIQDX CIQFB CIQGH CIQHN CIQJ2 CIQK7 CIQLD CIQMI CIQNO CIQOU
Ex: Depois que ~/.ipfs/blocks/<created_folder_name>
é executado, apenas um arquivo é criado em cada pasta criada.
$ ~/.ipfs/blocks$ ls */
/home/.ipfs/blocks/CIQMJ:
CIQMJCAMEI4UXBQ35CUDVVJOGU3DNWNHI7O7JCWHWNMUWPGKPOTLFYY.data //coming from mounted device.
/home/.ipfs/blocks/CIQMK:
CIQMKGZXBKZV262ZN6ABE4SUO5BNGKVSPTGAQXSOC35UUK7FUPIIAIY.data //coming from mounted device.
Além disso, depois de executar ipfs init
, uma nova pasta é criada com um arquivo interno. Eu montei essa pasta para o meu dispositivo externo, ele corrige o erro que eu estava enfrentando.
Mas se ipfs add <filename>
adicionar um novo arquivo de bloco a uma pasta já criada em ~ / .ipfs / blocks = > dá o mesmo erro: ipfs add <filename>
.
/home/.ipfs/blocks/CIQMI:
CIQMI5TLEXEWEYC3G3WELU6ONMKNLAF6CZUXU5BTWEU453LHPTUNNEI.data //coming from mounted device.
CIQMIRQGFPT23SZ6XYFFU45GLZENEWRYI7PR3YJ7EP7ZC6I4ME7GPFQ.data //newly added file
O script que escrevi para teste:
Depois de executar Error: fsync: invalid argument
apenas uma vez, o script seguinte é executado.
$ sudo mount -t cifs //server-name/share-name /mnt/cifs -o username=admin,password=my_password,uid=1000
$ ipfs init
$ cd ~/.ipfs/blocks/
for d in */ ; do
if [ ! -d /mnt/cifs/$d ]; then
mkdir /mnt/cifs/$d
cp $d/* /mnt/cifs/$d/
fi
done
Para reverter os arquivos do dispositivo externo antes de executar: ipfs init
: Agora todas as pastas dentro de ~ / .ipfs / blocks / foram montadas no meu dispositivo externo.
sudo mount -t cifs //<ip_address>/mybloc/ ~/.ipfs/blocks/ -o username=admin,password=my_password,uid=1000
Obrigado pela sua valiosa ajuda e tempo.