I’m getting `ERR_ENCRYPTION_FAILED` when trying to connect from my node app usin…g js-libp2p 1.2.1 to a go-ipfs node v0.4.18. Se below for details information, code and config settings.
My Node app code:
libp2p settings
```js
export const libp2pOptions = {
addresses: {
listen,
},
transports: [
webSockets({
filter: all,
}),
circuitRelayTransport({
discoverRelays: 1,
}),
tcp(),
],
connectionEncryption: [noise()],
streamMuxers: [yamux()],
connectionGater: {
denyDialMultiaddr: () => false,
},
services: {
identify: identify(),
pubsub: gossipsub({ allowPublishToZeroPeers: true }),
},
peerDiscovery: [
mdns({ interval: 1000 }),
bootstrap({
list,
timeout: 1000, // in ms,
tagName: 'bootstrap',
tagValue: 50,
tagTTL: 120000, // in ms
}),
],
};
```
connection routines:
```js
import { createLibp2p } from 'libp2p'; // import the libp2p module
import { LevelBlockstore } from 'blockstore-level’;
import { createHelia } from 'helia’;
import { libp2pOptions } from './libp2pConfig.js’;
const blockstore = new LevelBlockstore(blockstorePath);
const libp2p = await createLibp2p(libp2pOptions);
let ipfs = await createHelia({ libp2p, blockstore });
let node = ipfs.libp2p;
const remoteMultiaddr = `/ip4/${PEER_IP}/tcp/${PEER_PORT}/ws/p2p/${PEER_ID}`;
const multiAddr = multiaddr(remoteMultiaddr);
try {
const { status, remoteAddr, remotePeer, direction } = await node.dial(
multiAddr
);
console.log({ status, remoteAddr, remotePeer, direction });
} catch (error) {
console.log(error);
}
node.addEventListener('peer:discovery', (evt) => {
logger.info(`discovered peer ${evt.detail.id.toString()}`);
});
node.addEventListener('peer:connect', (evt) => {
logger.info(`connected to ${evt.detail.toString()}`);
});
```
go-ipfs config:
```json
{
"API": {
"HTTPHeaders": {
"Access-Control-Allow-Headers": [
"X-Requested-With",
"Access-Control-Expose-Headers",
"Range"
],
"Access-Control-Allow-Methods": [
"PUT",
"GET",
"POST"
],
"Access-Control-Allow-Origin": [
"*"
],
"Access-Control-Expose-Headers": [
"Location",
"Ipfs-Hash"
],
"X-Special-Header": [
"Access-Control-Expose-Headers: Ipfs-Hash"
]
}
},
"Addresses": {
"API": "/ip4/127.0.0.1/tcp/5001",
"Announce": [],
"Gateway": "/ip4/127.0.0.1/tcp/8080",
"NoAnnounce": [],
"Swarm": [
"/ip4/0.0.0.0/tcp/4001",
"/ip6/::/tcp/4001"
]
},
"Bootstrap": [
"/ip4/10.128.0.2/tcp/4001/ipfs/QmVKuLVFyBX2ZSyB2w7YLpH4AM7YCdaqdNRjwZa9cR335M"
],
"Datastore": {
"BloomFilterSize": 0,
"GCPeriod": "1h",
"HashOnRead": false,
"Spec": {
"mounts": [
{
"child": {
"path": "blocks",
"shardFunc": "/repo/flatfs/shard/v1/next-to-last/2",
"sync": true,
"type": "flatfs"
},
"mountpoint": "/blocks",
"prefix": "flatfs.datastore",
"type": "measure"
},
{
"child": {
"compression": "none",
"path": "datastore",
"type": "levelds"
},
"mountpoint": "/",
"prefix": "leveldb.datastore",
"type": "measure"
}
],
"type": "mount"
},
"StorageGCWatermark": 90,
"StorageMax": "5GB"
},
"Discovery": {
"MDNS": {
"Enabled": true,
"Interval": 10
}
},
"Experimental": {
"FilestoreEnabled": false,
"Libp2pStreamMounting": false,
"P2pHttpProxy": false,
"QUIC": false,
"ShardingEnabled": false,
"UrlstoreEnabled": false
},
"Gateway": {
"APICommands": [],
"HTTPHeaders": {
"Access-Control-Allow-Headers": [
"X-Requested-With",
"Range"
],
"Access-Control-Allow-Methods": [
"GET",
"POST"
],
"Access-Control-Allow-Origin": [
"*"
]
},
"PathPrefixes": [],
"RootRedirect": "",
"Writable": true
},
"Identity": {
"PeerID": "QmVKuLVFyBX2ZSyB2w7YLpH4AM7YCdaqdNRjwZa9cR335M"
},
"Ipns": {
"RecordLifetime": "",
"RepublishPeriod": "",
"ResolveCacheSize": 128
},
"Mounts": {
"FuseAllowOther": false,
"IPFS": "/ipfs",
"IPNS": "/ipns"
},
"Pubsub": {
"DisableSigning": false,
"Router": "",
"StrictSignatureVerification": false
},
"Reprovider": {
"Interval": "12h",
"Strategy": "all"
},
"Routing": {
"Type": "dht"
},
"Swarm": {
"AddrFilters": null,
"ConnMgr": {
"GracePeriod": "20s",
"HighWater": 900,
"LowWater": 600,
"Type": "basic"
},
"DisableBandwidthMetrics": false,
"DisableNatPortMap": false,
"DisableRelay": false,
"EnableRelayHop": false
}
}
```