@@ -14,8 +14,9 @@ import { LightClient, randomSecretKey } from "light-client-js";
1414
1515const client = new LightClient ();
1616
17- const config = `
18- chain = "dev"
17+ // Default config for testnet
18+ const testnetConfig = `
19+ chain = "testnet"
1920
2021[store]
2122path = "data/store"
@@ -30,13 +31,23 @@ listen_addresses = ["/ip4/0.0.0.0/tcp/8110"]
3031# Node connects to nodes listed here to discovery other peers when there's no local stored peers.
3132# When chain.spec is changed, this usually should also be changed to the bootnodes in the new chain.
3233bootnodes = [
33- "/ip4/18.167.71.41/tcp/8115/ws/p2p/QmZ3g4ikFdUijFyQdDsuxnvMwgC4uMU4Ux8siwPGPxLnRC",
34- # "/ip4/18.167.71.41/tcp/8115/wss/p2p/QmZ3g4ikFdUijFyQdDsuxnvMwgC4uMU4Ux8siwPGPxLnRC"
34+ "/dns4/dagon.ckb.guide/tcp/443/wss/p2p/QmX5D6aJiAQ5Fxn4BfVqSn6zrgyuQM1oXVC9yvmzLuHXnx",
35+ "/dns4/javelin.ckb.guide/tcp/443/wss/p2p/QmPcJY2gZLUm66szYA9QaG1P3rzwseWCMgbj6AyNCyW4G2",
36+ "/dns4/diadem.ckb.guide/tcp/443/wss/p2p/QmQMjFrNGaphzfHin3mbYybbJcFMDUihKAcknquYvm9J3W",
37+ "/dns4/bloodstone.ckb.guide/tcp/443/wss/p2p/QmQoTR39rBkpZVgLApDGDoFnJ2YDBS9hYeiib1Z6aoAdEf",
38+ "/dns4/crown.ckb.guide/tcp/443/wss/p2p/QmTt6HeNakL8Fpmevrhdna7J4NzEMf9pLchf1CXtmtSrwb",
39+ "/dns4/mekansm.ckb.guide/tcp/443/wss/p2p/QmT6DFfm18wtbJz3y4aPNn3ac86N4d4p4xtfQRRPf73frC",
40+ "/dns4/circlet.ckb.guide/tcp/443/wss/p2p/Qmd41MaByDprkC5gP1XBKgamZ9DTLNk37zbPgwtiWCzRV6",
41+ "/dns4/vanguard.ckb.guide/tcp/443/wss/p2p/QmWVuW5KquiWDSqgMJRFW1xRtVqkYJrWz6S9NNk6fFn3wh",
42+ "/dns4/chainmail.ckb.guide/tcp/443/wss/p2p/QmfUTZxsse7rFJTJfoUv8bbStoDLETxst5nJEpJozNuAnH",
43+ "/dns4/gleipnir.ckb.guide/tcp/443/wss/p2p/QmSPkAyXqsWpRiS7HpHLTProVdhQWLKFHCXbRjaLpJj7ZL",
44+ "/dns4/parasma.ckb.guide/tcp/443/wss/p2p/QmSJTsMsMGBjzv1oBNwQU36VhQRxc2WQpFoRu1ZifYKrjZ",
45+ "/dns4/bottle.ckb.guide/tcp/443/wss/p2p/QmWcEhsMNRcfJit62EbKgzpgtAJZX1G3Ur4shXjcvLsYDb"
3546]
3647
3748
3849max_peers = 125
39- max_outbound_peers = 2
50+ max_outbound_peers = 4
4051# 2 minutes
4152ping_interval_secs = 120
4253# 20 minutes
@@ -51,11 +62,81 @@ discovery_local_address = false
5162bootnode_mode = false
5263
5364`
65+ // Default config for mainnet
66+ const mainnetConfig = `
67+ chain = "mainnet"
68+
69+ [store]
70+ path = "data/store"
71+
72+ [network]
73+ path = "data/network"
74+
75+ listen_addresses = ["/ip4/0.0.0.0/tcp/8110"]
76+ ### Specify the public and routable network addresses
77+ # public_addresses = []
78+
79+ # Node connects to nodes listed here to discovery other peers when there's no local stored peers.
80+ # When chain.spec is changed, this usually should also be changed to the bootnodes in the new chain.
81+ bootnodes = [
82+ "/dns4/reaver.ckb.guide/tcp/443/wss/p2p/QmaZMemLXSsxKUrYNucjEbPxVX3rBKsGhWW2muWtWxUWyh",
83+ "/dns4/cheese.ckb.guide/tcp/443/wss/p2p/QmV26bmuBXyiBytbYvr2aTnUg27mgtpBmae6EA8U49otbJ",
84+ "/dns4/maelstrom.ckb.guide/tcp/443/wss/p2p/QmcodzCafKsP9bSa2QPsNoK6UFL3h8ucewvmRV9Re5WfQw",
85+ "/dns4/satanic.ckb.guide/tcp/443/wss/p2p/QmcEK1wUR287qSYdw8eHNWeQrFitQsCaZHHTM9wgvakxnS",
86+ "/dns4/sange.ckb.guide/tcp/443/wss/p2p/QmNRAvtC6L85hwp6vWnqaKonJw3dz1q39B4nXVQErzC4Hx",
87+ "/dns4/cloak.ckb.guide/tcp/443/wss/p2p/QmagxSv7GNwKXQE7mi1iDjFHghjUpbqjBgqSot7PmMJqHA",
88+ "/dns4/lavabuster.ckb.guide/tcp/443/wss/p2p/QmZgcFN3c7zpyzzxn9KNGsQpEyf4D7eCgrmNCnAeCWicw3",
89+ "/dns4/claymore.ckb.guide/tcp/443/wss/p2p/QmSRj57aa9sR2AiTvMyrEea8n1sEM1cDTrfb2VHVJxnGuu",
90+ "/dns4/eaglesong.ckb.guide/tcp/443/wss/p2p/QmbT7QimcrcD5k2znoJiWpxoESxang6z1Gy9wof1rT1LKR",
91+ "/dns4/phylactery.ckb.guide/tcp/443/wss/p2p/QmP48t4MSACDyJUcoRgDAaW42MMv2MZnrTaUGCpVeGvKms",
92+ "/dns4/hyperstone.ckb.guide/tcp/443/wss/p2p/QmRHqhSGMGm5FtnkW8D6T83X7YwaiMAZXCXJJaKzQEo3rb",
93+ "/dns4/kaya.ckb.guide/tcp/443/wss/p2p/QmeSRNTxo9KqCBQSf7yQErn9Jz2gfnP6wHACvg6qyiEM7q",
94+ "/dns4/buckler.ckb.guide/tcp/443/wss/p2p/QmYCRVonLfP18LSoz2WCHaXDorUYxuUMfhtcXK1TuZ1iwF",
95+ "/dns4/bracer.ckb.guide/tcp/443/wss/p2p/QmejEJEbDcGGMp4D6WtftMMVLkR1ZuBfMgyLFDMJymkDt6",
96+ "/dns4/mjollnir.ckb.guide/tcp/443/wss/p2p/QmVi7reKhqVnoBYzW2nJYnrujVeckrZXhwuYbX7P2whPJg",
97+ "/dns4/crystalys.ckb.guide/tcp/443/wss/p2p/QmXJg4iKbQzMpLhX75RyDn89Mv7N2H8vLePBR7kgZf6hYk",
98+ "/dns4/radiance.ckb.guide/tcp/443/wss/p2p/QmQoWrmuFauCn3zZ2mYYKAciG9opTbjzC2wVEfWveZNDt8",
99+ "/dns4/necronomicon.ckb.guide/tcp/443/wss/p2p/QmejugEABNzAofqRhci7HAipLFvoyYKRacd272jNtnQBTE",
100+ "/dns4/khanda.ckb.guide/tcp/443/wss/p2p/Qmf4t1SzFhRWuGcFcgs7r4pXvkACsz3FcaBMcmMKQMMpn7",
101+ "/dns4/yasha.ckb.guide/tcp/443/wss/p2p/QmQidJaxciY3NT2PjsaCR4Gz8vB8kFn3Avwz96u6b3jGc1",
102+ "/dns4/cornucopia.ckb.guide/tcp/443/wss/p2p/QmexvXVDiRt2FBGptgK4gBJusWyyTEEaHeuCAa35EPNkZS",
103+ "/dns4/harpoon.ckb.guide/tcp/443/wss/p2p/QmVeeCh81GTLGRwB7vRHXeTRdUHRYcfn6qKEfewhtiRJZC",
104+ "/dns4/nullifier.ckb.guide/tcp/443/wss/p2p/QmW3P1WYtuz9hitqctKnRZua2deHXhNePNjvtc9Qjnwp4q",
105+ "/dns4/platemail.ckb.guide/tcp/443/wss/p2p/QmNsGNQjYA6iP472bNnNE2GR31kCYBifhY1XcaUxRjZ1py",
106+ "/dns4/broadsword.ckb.guide/tcp/443/wss/p2p/QmShw2vtVt49wJagc1zGQXGS6LkQTcHxnEV3xs6y8MAmQN",
107+ "/dns4/desolator.ckb.guide/tcp/443/wss/p2p/QmeCzzVmSAU5LNYAeXhdJj8TCq335aJMqUxcvZXERBWdgS"
108+ ]
109+
110+
111+ max_peers = 125
112+ max_outbound_peers = 4
113+ # 2 minutes
114+ ping_interval_secs = 120
115+ # 20 minutes
116+ ping_timeout_secs = 1200
117+ connect_outbound_interval_secs = 15
118+ # If set to true, try to register upnp
119+ upnp = false
120+ # If set to true, network service will add discovered local address to peer store, it's helpful for private net development
121+ discovery_local_address = false
122+ # If set to true, random cleanup when there are too many inbound nodes
123+ # Ensure that itself can continue to serve as a bootnode node
124+ bootnode_mode = false
125+
126+ `
127+ // Start a mainnet node
128+ await client .start ({ type: " MainNet" , config: mainnetConfig }, randomSecretKey (), " info" );
129+ // Start a testnet node
130+ // await client.start({ type: "TestNet", config: testnetConfig }, randomSecretKey(), "info");
131+
54132
55- await client .start ({ type: " TestNet" , config }, randomSecretKey (), " info" );
56133console .log (await client .getTipHeader ())
57134```
58135
136+ ### About ` max_outbound_peers `
137+ ` max_outbound_peers ` is set to 4 by default, since a light client node must connect at least ` max_outbound_peers / 2 ` nodes to start sync, and if connected to too many nodes, synchorization may also be setopped (See https://github.com/tea2x/quantum-purse/issues/68 )
138+
139+
59140### A more complex example
60141
61142https://github.com/Officeyutong/ckb-light-client-wasm-demo
0 commit comments