Ethereum Classic (ETC) network nodes have accurate information about the network in spite of it being decentralized and constantly changing. I will describe how this happens.

Bootstrap Nodes

Some network nodes are always available and accepting of new connections from other network nodes. These are referred to as bootstrap nodes. New network nodes first connect to bootstrap nodes to obtain information. Here is the current Geth bootstrap node list with network nodes specified using “enode” strings:

enode://e809c4a2fec7daed400e5e28564e23693b23b2cc5a019b612505631bbe7b9ccf709c1796d2a3d29ef2b045f210caf51e3c4f5b6d3587d43ad5d6397526fa6179@174.112.32.157:30303 enode://6e538e7c1280f0a31ff08b382db5302480f775480b8e68f8febca0ceff81e4b19153c6f8bf60313b93bef2cc34d34e1df41317de0ce613a201d1660a788a03e2@52.206.67.235:30303 enode://5fbfb426fbb46f8b8c1bd3dd140f5b511da558cd37d60844b525909ab82e13a25ee722293c829e52cb65c2305b1637fa9a2ea4d6634a224d5f400bfe244ac0de@162.243.55.45:30303 enode://42d8f29d1db5f4b2947cd5c3d76c6d0d3697e6b9b3430c3d41e46b4bb77655433aeedc25d4b4ea9d8214b6a43008ba67199374a9b53633301bca0cd20c6928ab@104.155.176.151:30303 enode://814920f1ec9510aa9ea1c8f79d8b6e6a462045f09caa2ae4055b0f34f7416fca6facd3dd45f1cf1673c0209e0503f02776b8ff94020e98b6679a0dc561b4eba0@104.154.136.117:30303 enode://72e445f4e89c0f476d404bc40478b0df83a5b500d2d2e850e08eb1af0cd464ab86db6160d0fde64bd77d5f0d33507ae19035671b3c74fec126d6e28787669740@104.198.71.200:30303 enode://5cd218959f8263bc3721d7789070806b0adff1a0ed3f95ec886fb469f9362c7507e3b32b256550b9a7964a23a938e8d42d45a0c34b332bfebc54b29081e83b93@35.187.57.94:30303 enode://39abab9d2a41f53298c0c9dc6bbca57b0840c3ba9dccf42aa27316addc1b7e56ade32a0a9f7f52d6c5db4fe74d8824bcedfeaecf1a4e533cacb71cf8100a9442@144.76.238.49:30303 enode://f50e675a34f471af2438b921914b5f06499c7438f3146f6b8936f1faeb50b8a91d0d0c24fb05a66f05865cd58c24da3e664d0def806172ddd0d4c5bdbf37747e@144.76.238.49:30306 enode://6dd3ac8147fa82e46837ec8c3223d69ac24bcdbab04b036a3705c14f3a02e968f7f1adfcdb002aacec2db46e625c04bf8b5a1f85bb2d40a479b3cc9d45a444af@104.237.131.102:30303

All enode strings contain Elliptic Curve Digital Signature Algorithm (ECDSA) public keys and internet sockets (addresses and ports).

Other Nodes

Additional network nodes are found by network nodes storing and sharing lists of network nodes that have recently communicated with them. Ignoring older activity decreases the probability of sharing information about nonexistent network nodes. Network nodes continually communicate and thereby continually share their information. The whole process starts with bootstrap nodes and quickly includes many other network nodes.

Here is the current list for my Parity ETC node:

enode://9fe33f0ebc5b0ce51879afa3f767b2a180536dafb34b5af24cef11bb1c136b90d7839d6340d912ccd1f8e917a9e24d0d908ca4811a15889fcbf70733d7411608@122.215.240.147:30303 enode://e1520f00ff23e82c87411964a70c08e77592aab16647ddc2b53a5617808330184aaaac786002d31e40a1db6ec1447d6b0d8ebc7d9099cc90d606b7936fd9b908@172.86.120.213:30303 enode://a68a96163c842f1175d8eb515ca60ab93e80ab581cded1a11527f53e89f1f1cfb624e3f0a79a5dd76ee0fad54758ec9515be38158b2cf01635dcf444db6716db@46.101.169.110:30303 enode://e5ddf2ea2373697136681eaba314039ce60b99656c4eefabb2d01032d77dae384919941589f1d9309c340a854310b556d059521414db93c3b0d5ed5ff1308dc4@13.125.218.87:30303 enode://f5d269ebbfb94494e7e2251a49f430df5d7f510cf04173dad1229b12e4929e6a65f4c76cf9cb0f789c30f7a9d2e50a453a64bb0f797429fe3f2e30cbd0198c0b@35.230.160.215:30303 enode://efce38b6ee1baa4fa0a48c4202cc175fe4668a376365bbd0b9735a06de04593c822e9064d6664e346af5c98efc0dd0e4f3f1b8b64364aba5f2c51b259accc41c@47.98.232.156:30303 enode://c38fadc7d03341aaa856c41d8af9733d535cbbde3e3e103dd97c1bf6a0e15f8a6ed77c7bfb04784d9be7bdef884172a1fca8367f3750d4e3d0e9a0e95db57e29@47.97.72.201:30303 enode://10a0e3e2e4d9be6eab3615cd441da32dcebc7d51df9639c92eae35a7a434cf2c8e2bec756573ca9f49f48d6ed65917d4fbd220658d21888ee75799de955f2580@13.125.156.101:30303 enode://c1e0e9f8607afc20b70dc6f2b19258e879841561360385c63d004a9cdb1a93f1122e061ad405ff98a03f3413a945c9299e19d6bd6bc86a17682e34f811f12d32@52.57.166.35:30303 enode://f4a1153780ccb0b4e2c86bdf11837035f621ddc09bcf7d874a9879bc20adf5a32ce0b5cda91674873ad4cd89ca0b6da6a89197102922ea58d3f98ec421368240@167.114.236.10:30303 enode://7c253d4172cb27a7c514c35ee1cad1ff0fa1a6d2d2ca1c3a6f67d7416173bf0f36c64d6caf5f3cf13700e81104b10642787c17bbfb00e67d1a85c5a88c613cd6@13.125.206.176:30303 enode://ed81e7f825a5309c3c93698a440055f10fa617342f6e8c62645b3ee813515c488addee22a3175223b4d0bc410c0b3f0a2bc25d67ee2d75cfa4f8bac6006a8f6a@109.236.81.109:30307 enode://8d45cb061b744f444d38c58f2fd972214f565e24539eb5ccd85612290a66d9da885a1012576784ab2a2cb93050a4ef99e6ba0931963fe7ed4370def400349dbf@149.202.174.161:30303 enode://1275a4224ee8ee7cedc5ab62a118428f6f4ec2841440cefacf8d01c368ac345d687052c667204e52cc22f0b85de0fc8195aceee5d2d28d2c69d3a3644aecb840@115.22.91.166:30303 enode://c60ae3bccd9ccded51ad5e8c2aa6bad8fad072c1809779566c85ca17f2f5d810fd6c11761e892c45787e9f27a213cc9ade3244f7a8f8e9fb071e8281b263740e@61.100.182.189:40404 enode://feaf167dad6e117bc07c507b8cf4aa1978cdcc592d218bde7782c67abc53dbf02ea8aa6799946aee4f8e5f73c58dbc28eadaa8739431bc0233f78562c5266c24@13.125.25.106:30305 enode://ba8efe932cbf32f0d8ee9a0af45ade59dd26e81cafdc86497e57aca0ae5e9bcc64ee058a4c844bc0d06ceea2db062f377705870b14c72db2977f110485d809cf@5.9.6.244:30303 enode://c989f4ceea49188426561d2a1833c157cfd137948ae054ab47e770f4032b7708ac59121e13d0c267c23779b96cae258d39e4c05ac55b6a7300fbaa79dd19b541@52.30.37.160:30305 enode://4329eb2c7e62206421469d413ddc6f8bdf10eb176aaec065282bd31d198ace82871034fa4af34ad0ed5051d2d9d82845a6729f254220fffd91175cddb20318cd@167.114.236.167:30303 enode://485f2c2368cfb6614026058e37c4d1a63aba7285df77663198c96824dc9b44b2d3861198d42d8c00f7f2d3ee7a00619ebb6e2f70ee96cfd0ca13d7a98a438b52@52.221.229.254:30303 enode://78f960f4cc378980409704957818e55bb671775d3ca3f731fb8a0468a1156b7158a42e921f4077eaf9de3e8a6905360fca629dfbdb089b083aa0e46a0554ce09@159.65.3.132:30303 enode://5eb58e0bda31307b19b6d25350bba7b812fc0337cb34e79a5796bbdcaf3bace0535d56e2f485cab7839d03754d5bacb98d666c8c2e9a2ca3c8fe5a9e2b0f63a1@47.91.28.47:30305 enode://ad132e9609f8288c07e8958af5b1c77dad6001af774e5a5b3d3e06bd339b8a52e63a70ba92df917ddaa1494ed228c735cc5be00f4d59cffe995eb574eb467827@120.131.14.202:30303 enode://f926fb79061578191b8d125d6fca889f711c94d1dab19f3c106671812a098bb7837b5b40c67f8f0ae2bd0a0410cfa57a00270af8ebe7e9162e3f7b034df554eb@13.78.23.204:30303 enode://a38b8841524f4a0f6e4161511ef9ed60b7da1a5303a316fd99d997c5f2642313eab3cbe560b1c62dab1ac9be8e92fe61611c41728c3628b59d2a23ae731ea717@165.227.151.104:30303

Conclusion

Amazingly, ETC nodes can find each other within a headless and ever changing system. There are many such brilliant riches to appreciate in the ETC design when one looks.

Feedback

Feel free to leave any comments or questions below. You can also contact me by clicking any of these icons:

Acknowledgements

I would like to thank IOHK (Input Output Hong Kong) for funding this effort.

License

This work is licensed under the Creative Commons Attribution ShareAlike 4.0

International License.