I have 4 peers running ipfs-cluster available on Internet. I would like to be able to add other peers by bootstrapping them to the leader. Those peers are going to stand behind a firewall (I can not tweak anything), for sure inbound port will be filtered, outbound should be opened. I can not guarantee that the multiaddress of those peers would be accessible from Internet.
Currently, the cluster is able so see the peer asking for connection, but I get quickly those message : Failed to heartbeat to Qmc****: dial backoff logging.go:105 and the service shutdown on the peer
Is there any configuration on this peer to make ipfs-cluster working ?
Are you bootstrapping to the same peer that shows the Failed to heartbeat messages? If not, can you try that?
If NAT hole-punching works, and you bootstrap directly to the cluster Raft leader, I think that the firewalled peer should then manage to punch holes to the rest of peers. But if bootstrapping to someone that is not the leader, that makes the leader not be able to heartbeat the firewalled peer.
If you are indeed already bootstrapping to the leader, then libp2p’s NAT hole-punching may not work in your environment. We might explore other options like QUIC or libp2p circuits then, but I haven’t tried them myself.
Indeed, peers from the cluster does not complain anymore, logs keep quiet on the firewalled peer. Do you know why I need to peer ls before doing any things ?
When pinning a file (42MB) from one of the member of the cluster I had a timeout issue :
Dec 07 10:25:40 ipfs-tutu ipfs-cluster-service[1015]: 10:25:40.088 ERROR adder: error adding to cluster: read tcp4 127.0.0.1:9094->127.0.0.1:37032: i/o timeout adder.go:146
It looks like the file is too big to synchronise on all members of the cluster.
I tried with a smaller file (1.2MB) and it worked ! I was able to download the file from the firewalled peer gateway.
My plan is to synchronize large amount of files from a cluster to firewalled peers. I’m wondering how I’m gonna synchronize file over 1GB, is there any tweak to be made ?
It is a work around. This forces the firewalled peer to open connections to every other peer. Once those connections are established, they can be used to contact that peer. What operating system are you using though?
Yes, I think so (or better, the defaults from ipfs-cluster-service init). Thanks for catching that. I am manually overwriting those everywhere so I didn’t notice.
I wish to build ipfs-cluster topology with mixed arch (leader public amd64) and firewalled nodes (arm, arm64).
I saw your project https://github.com/hsanjuan/ansible-ipfs-cluster. But I am not yet familiar with ansible…
Preparing a workshop to teach how to build the New Internet during a resilience learning festival.
I am willing to experiment IPFS with CJDNS and write a detailed step by step guide.
I wonder if I could rely on your help?