Tenga en cuenta que lo siento si esta pregunta se basa en ipfs
, donde estoy usando integrado a Ethereum pero de una manera muy básica.
En este siguiente ejemplo: un cliente almacena un valor hash ipfs dentro de un contrato en ethereum. El servidor accedería al valor hash de ipfs ya almacenado utilizando el mismo contrato. Cuando se obtiene el valor hash de ipfs en el servidor, el nodo del servidor podría obtener el archivo ipfs utilizando ipfs {ls||cat||get} < hash_value >
. Pero cuando lo uso ipfs {ls||cat||get} < hash_value >
puede ocurrir una parada. Como estoy haciendo todo este proceso dentro de un problema de detención de secuencia de comandos, bloquea mi secuencia de comandos.
Por el contrario, podría obtener los archivos de ipfs.gateway
(que usa puertas de enlace públicas) usando wget
(este proceso obliga a las puertas de enlace a almacenar en caché el contenido hasta que su recolector de basura despeje el espacio en disco).
[P] ¿Debería tratar de recuperar archivos usando wget -r "https://ipfs.io/ipfs/< some_hash >"
ya que su conexión parece más confiable que usando ipfs {cat||ls||get} < my_hash >
? No estoy cuestionando ipfs
, solo quiero saber cuál es la causa de este problema o dónde cometí un error y encontrar una solución. Hasta ahora, el uso wget
de through ipfs.gateway
resolvió el problema de detención al que me enfrento.
Tenga en cuenta que mi servidor se ejecuta detrás de un cortafuegos (en un dominio universitario, por lo que tiene que haber un cortafuegos). En mi caso, si mi cliente está en la misma LAN detrás del mismo firewall, no hay problema de detención entre mi cliente y el servidor. Pero si el cliente está fuera de la LAN, se detiene como expliqué. El problema puede surgir debido al firewall, pero las puertas de enlace públicas aún podrían recuperar los datos agregados a través de ipfs, desde mi servidor.
Explicación de esta pregunta de la siguiente manera:
Tengo un nodo de cliente y servidor. En ambas máquinas, en segundo plano, estoy ejecutando el siguiente comando como se indica en los ipfs
tutoriales:
ipfs daemon &
En mi máquina cliente, agregué un archivo en ipfs:
[~]$ ipfs add hello.c
added < my_hash > hello.c
Después de eso en mi servidor, intento recuperar el archivo:
[~]$ ipfs {cat||ls||get} < my_hash >
//HALTS.
El siguiente mensaje de error apareció varias veces.
14:18:59.986 ERROR dht: no addresses on peer being sent!
[local:<peer.ID UjQJqD>]
[sending:<peer.ID aYb9MJ>]
[remote:<peer.ID Z86ow1>] handlers.go:75
ipfs {cat||get||ls} < my_hash >
se detiene y espero mucho tiempo pero no pasa nada, tal vez después de unas horas funcione (el sistema actúa de manera poco confiable en mi caso). Esta situación es extraña porque el mismo proceso funcionaba antes sin ningún problema y de repente puede dejar de funcionar como debería.
Por otro lado, puedo ver el archivo de inmediato en mi navegador después de ipfs add
que termine: url: https://gateway.ipfs.io/ipfs/< some_hash >
o podría descargar el archivo usando wget -r "https://ipfs.io/ipfs/< my_hash >"
".
Tenga en cuenta que si se agrega una carpeta, ipfs add -r folder_name
se puede recuperar del hash de la carpeta con el siguiente comando:
wget -nH --cut-dirs=2 --no-parent -r -l 0 -nc "https://ipfs.io/ipfs/< folders_hash >"
Gracias por su valioso tiempo y ayuda.
Puedes correr ipfs diag net
para ver si hay compañeros conectados. Si dice que hay pares conectados pero aún no puede recuperar los datos, es posible que la información del par haya caducado y que el nodo tenga problemas para conectarse con otros pares debido al firewall.
q9f
alper
q9f
alper
niksmac
Richard Horrocks
cat
,ls
,get
- comandos? es decir ,ipfs cat <hash>
noipfs {cat||ls||get} <hash>
?niksmac
alper
ipfs cat <hash>
oipfs ls <hash>
oipfs get <hash>
. Perdón por la confusion.Richard Horrocks