@@ -30,14 +30,17 @@ const chromeDefaultOpts = {
30
30
but Web UI needs API (can't use window.ipfs due to sandboxing)
31
31
*/
32
32
Swarm : [
33
- // optional ws-star signaling provides a backup for non-LAN peer discovery
33
+ // additional signaling service provides a backup for non-LAN peer discovery
34
34
// (this will be removed when autorelay and DHT are stable in js-ipfs)
35
- '/dns4/wrtc-star.discovery.libp2p.io/tcp/443/wss/p2p-webrtc-star'
35
+ '/dns4/wrtc-star1.par.dwebops.pub/tcp/443/wss/p2p-webrtc-star' ,
36
+ '/dns4/wrtc-star2.sjc.dwebops.pub/tcp/443/wss/p2p-webrtc-star'
36
37
] ,
37
38
// Delegated Content and Peer Routing: https://github.com/ipfs/js-ipfs/pull/2195
38
39
Delegates : [
40
+ '/dns4/node0.delegate.ipfs.io/tcp/443/https' ,
39
41
'/dns4/node1.delegate.ipfs.io/tcp/443/https' ,
40
- '/dns4/node0.delegate.ipfs.io/tcp/443/https'
42
+ '/dns4/node2.delegate.ipfs.io/tcp/443/https' ,
43
+ '/dns4/node3.delegate.ipfs.io/tcp/443/https'
41
44
]
42
45
} ,
43
46
Discovery : {
@@ -49,47 +52,51 @@ const chromeDefaultOpts = {
49
52
Swarm : {
50
53
ConnMgr : {
51
54
LowWater : 50 ,
52
- HighWater : 150
55
+ HighWater : 200
53
56
}
54
57
} ,
55
58
Bootstrap : [
56
- // Prioritize TCP Bootstrappers from https://github.com/ipfs/js-ipfs/blob/v0.37.1/ src/core/runtime/config-nodejs.js#L22
57
- '/ip4/104.236.176.52/tcp/4001/ipfs /QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z' ,
58
- '/ip4/104.131.131.82/tcp/4001/ipfs /QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ' ,
59
- '/ip4/104.236.179.241/tcp/4001/ipfs /QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM' ,
60
- '/ip4/162.243.248.213/tcp/4001/ipfs /QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm' ,
61
- '/ip4/128.199.219.111/tcp/4001/ipfs /QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu' ,
62
- '/ip4/104.236.76.40/tcp/4001/ipfs /QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64' ,
63
- '/ip4/178.62.158.247/tcp/4001/ipfs /QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd' ,
64
- '/ip4/178.62.61.185/tcp/4001/ipfs /QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3' ,
65
- '/ip4/104.236.151.122/tcp/4001/ipfs /QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx' ,
66
- '/ip6/2604:a880:1:20::1f9:9001/tcp/4001/ipfs /QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z' ,
67
- '/ip6/2604:a880:1:20::203:d001/tcp/4001/ipfs /QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM' ,
68
- '/ip6/2604:a880:0:1010::23:d001/tcp/4001/ipfs /QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm' ,
69
- '/ip6/2400:6180:0:d0::151:6001/tcp/4001/ipfs /QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu' ,
70
- '/ip6/2604:a880:800:10::4a:5001/tcp/4001/ipfs /QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64' ,
71
- '/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/ipfs /QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd' ,
72
- '/ip6/2a03:b0c0:1:d0::e7:1/tcp/4001/ipfs /QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3' ,
73
- '/ip6/2604:a880:1:20::1d9:6001/tcp/4001/ipfs /QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx' ,
59
+ // Prioritize TCP Bootstrappers from https://github.com/ipfs/js-ipfs/blob/ipfs%400.49.0/packages/ipfs/ src/core/runtime/config-nodejs.js
60
+ '/ip4/104.236.176.52/tcp/4001/p2p /QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z' ,
61
+ '/ip4/104.131.131.82/tcp/4001/p2p /QmaCpDMGvV2BGHeYERUEnRQAwe3N8SzbUtfsmvsqQLuvuJ' ,
62
+ '/ip4/104.236.179.241/tcp/4001/p2p /QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM' ,
63
+ '/ip4/162.243.248.213/tcp/4001/p2p /QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm' ,
64
+ '/ip4/128.199.219.111/tcp/4001/p2p /QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu' ,
65
+ '/ip4/104.236.76.40/tcp/4001/p2p /QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64' ,
66
+ '/ip4/178.62.158.247/tcp/4001/p2p /QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd' ,
67
+ '/ip4/178.62.61.185/tcp/4001/p2p /QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3' ,
68
+ '/ip4/104.236.151.122/tcp/4001/p2p /QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx' ,
69
+ '/ip6/2604:a880:1:20::1f9:9001/tcp/4001/p2p /QmSoLnSGccFuZQJzRadHn95W2CrSFmZuTdDWP8HXaHca9z' ,
70
+ '/ip6/2604:a880:1:20::203:d001/tcp/4001/p2p /QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM' ,
71
+ '/ip6/2604:a880:0:1010::23:d001/tcp/4001/p2p /QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm' ,
72
+ '/ip6/2400:6180:0:d0::151:6001/tcp/4001/p2p /QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu' ,
73
+ '/ip6/2604:a880:800:10::4a:5001/tcp/4001/p2p /QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64' ,
74
+ '/ip6/2a03:b0c0:0:1010::23:1001/tcp/4001/p2p /QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd' ,
75
+ '/ip6/2a03:b0c0:1:d0::e7:1/tcp/4001/p2p /QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3' ,
76
+ '/ip6/2604:a880:1:20::1d9:6001/tcp/4001/p2p /QmSoLju6m7xTh3DuokvT3886QRYqxAzb1kShaanJgW36yx' ,
74
77
// Twist: connect to preload nodes, but over tcp :)
75
- '/dns4/node0.preload.ipfs.io/tcp/4001/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic' ,
76
- '/dns4/node1.preload.ipfs.io/tcp/4001/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6' ,
77
- // WebSockets versions from https://github.com/ipfs/js-ipfs/blob/v0.37.1/src/core/runtime/config-browser.js#L20
78
+ '/dns4/node0.preload.ipfs.io/tcp/443/wss/p2p/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic' ,
79
+ '/dns4/node1.preload.ipfs.io/tcp/443/wss/p2p/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6' ,
80
+ '/dns4/node2.preload.ipfs.io/tcp/443/wss/p2p/QmV7gnbW5VTcJ3oyM2Xk1rdFBJ3kTkvxc87UFGsun29STS' ,
81
+ '/dns4/node3.preload.ipfs.io/tcp/443/wss/p2p/QmY7JB6MQXhxHvq7dBDh4HpbH29v4yE9JRadAVpndvzySN' ,
82
+ // WebSockets versions from https://github.com/ipfs/js-ipfs/blob/ipfs%400.49.0/packages/ipfs/src/core/runtime/config-browser.js
78
83
'/dns4/ams-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLer265NRgSp2LA3dPaeykiS1J6DifTC88f5uVQKNAd' ,
79
84
'/dns4/lon-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLMeWqB7YGVLJN3pNLQpmmEk35v6wYtsMGLzSr5QBU3' ,
80
85
'/dns4/sfo-3.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLPppuBtQSGwKDZT2M73ULpjvfd3aZ6ha4oFGL1KrGM' ,
81
86
'/dns4/sgp-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLSafTMBsPKadTEgaXctDQVcqN88CNLHXMkTNwMKPnu' ,
82
87
'/dns4/nyc-1.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLueR4xBeUbY9WZ9xGUUxunbKWcrNFTDAadQJmocnWm' ,
83
88
'/dns4/nyc-2.bootstrap.libp2p.io/tcp/443/wss/ipfs/QmSoLV4Bbm51jM9C4gDYZQ9Cy3U6aXMJDAbzgu2fzaDs64' ,
84
- '/dns4/node0.preload.ipfs.io/tcp/443/wss/ipfs/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic' ,
85
- '/dns4/node1.preload.ipfs.io/tcp/443/wss/ipfs/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6'
89
+ '/dns4/node0.preload.ipfs.io/tcp/443/wss/p2p/QmZMxNdpMkewiVZLMRxaNxUeZpDUb34pWjZ1kZvsd16Zic' ,
90
+ '/dns4/node1.preload.ipfs.io/tcp/443/wss/p2p/Qmbut9Ywz9YEDrz8ySBSgWyJk41Uvm2QJPhwDJzJyGFsD6' ,
91
+ '/dns4/node2.preload.ipfs.io/tcp/443/wss/p2p/QmV7gnbW5VTcJ3oyM2Xk1rdFBJ3kTkvxc87UFGsun29STS' ,
92
+ '/dns4/node3.preload.ipfs.io/tcp/443/wss/p2p/QmY7JB6MQXhxHvq7dBDh4HpbH29v4yE9JRadAVpndvzySN'
86
93
]
87
94
} ,
88
- // preload: { enabled: false, addresses: [] }
89
- /* TODO: when we have p2p transport, are preloads still needed? should Brave have own nodes? */
90
95
preload : {
91
96
enabled : true ,
92
97
addresses : [
98
+ '/dns4/node3.preload.ipfs.io/tcp/443/https' ,
99
+ '/dns4/node2.preload.ipfs.io/tcp/443/https' ,
93
100
'/dns4/node1.preload.ipfs.io/tcp/443/https' ,
94
101
'/dns4/node0.preload.ipfs.io/tcp/443/https'
95
102
]
@@ -140,11 +147,29 @@ async function buildConfig (opts, log) {
140
147
} ,
141
148
webRTCStar : {
142
149
enabled : true
150
+ } ,
151
+ dht : {
152
+ kBucketSize : 20 ,
153
+ enabled : false ,
154
+ clientMode : false , /* TODO experiment with true */
155
+ randomWalk : {
156
+ enabled : false
157
+ }
158
+ } ,
159
+ pubsub : {
160
+ enabled : true ,
161
+ emitSelf : true
143
162
}
144
163
}
145
164
} )
146
165
147
- libp2pOptions . metrics = { enabled : false }
166
+ /* TODO: find out the best valus for chrome apps context
167
+ libp2pOptions.dialer = {
168
+ // https://github.com/ipfs/js-ipfs/blob/ipfs%400.49.0/packages/ipfs/src/core/runtime/libp2p-browser.js#L14
169
+ maxParallelDials: 150, // 150 total parallel multiaddr dials
170
+ maxDialsPerPeer: 4, // Allow 4 multiaddrs to be dialed per peer in parallel
171
+ dialTimeout: 10e3 // 10 second dial timeout per peer dial
172
+ }*/
148
173
149
174
log ( 'initializing libp2p with libp2pOptions' , libp2pOptions )
150
175
return new Libp2p ( libp2pOptions )
@@ -170,11 +195,11 @@ async function buildConfig (opts, log) {
170
195
return ipfsNodeConfig
171
196
}
172
197
173
- async function syncConfig ( ipfs , opts , log ) {
198
+ async function syncConfig ( liveConfig , log ) {
174
199
const storedConfig = await browser . storage . local . get ( 'ipfsNodeConfig' )
175
200
if ( storedConfig && storedConfig . ipfsNodeConfig ) {
176
- const maGw = await ipfs . config . get ( ' Addresses.Gateway' )
177
- const maApi = await ipfs . config . get ( ' Addresses.API' )
201
+ const maGw = liveConfig . config . Addresses . Gateway
202
+ const maApi = liveConfig . config . Addresses . API
178
203
const httpGw = multiaddr2httpUrl ( maGw )
179
204
const httpApi = multiaddr2httpUrl ( maApi )
180
205
// update config in browser.storage to ports from js-ipfs instance
@@ -191,7 +216,7 @@ async function syncConfig (ipfs, opts, log) {
191
216
changes . ipfsNodeConfig = JSON . stringify ( cfg , null , 2 )
192
217
}
193
218
// update runtime config in place
194
- Object . assign ( opts , changes )
219
+ Object . assign ( liveConfig , changes )
195
220
// save config to browser.storage (triggers async client restart if ports changed)
196
221
log ( `synchronizing ipfsNodeConfig with customGatewayUrl (${ changes . customGatewayUrl } ) and ipfsApiUrl (${ changes . ipfsApiUrl } )` )
197
222
await browser . storage . local . set ( changes )
0 commit comments