Syncing the Chia blockchain from scratch is extremely slow. To accelerate the process, we are releasing a Chia Blockchain Database Bootstrap service to download a snapshot of the Chia blockchain quickly and get using it right away.
Our blockchain snapshots are distributed efficiently by torrents, and are available at https://elysiumpool.com/bootstrap.
We are always open to feedback, and hope that this simple service can help contribute positively to the community.
That is a nice service;-)
Why did you choose a torrent instead of just a direct download option? Advantages/disadvantages for you as provider of the service and/or for the user?
Torrents have the following advantages:
- Allow people on slow/unreliable internet connections to resume large downloads part-way through trivially
- Allow people on very fast internet connections to download at the maximum speed available
- Allow people with excess bandwidth to contribute to content distribution by seeding the torrent (hence why we publish the RSS feed URL)
- MITM attacks are significantly harder with torrents.
- File integrity checks are performed automatically during/after the transfer
Except this is totally advised against Chia Network because it makes it for it to be compromised and spread in the network with tampered data
This vulnerability is discussed in detail on the bootstrap page, but it is absolutely worth discussing further. The risk is that the copy of the blockchain could be tampered for individual users, but could not be tampered for other users syncing the blockchain from other nodes.
The hash of each block is checked against the blockchain when new nodes sync conventionally peer-to-peer, preventing propagation of “counterfeit” blocks. This hash checking of blocks forms the foundation of blockchain distribution, and is what prevents malicious nodes on the network from trying to distribute counterfeit blockchains. Furthermore, such tampering would be identified in the database during the wallet sync/transaction location process in the wallet module.
TL;DR: We could, theoretically, modify the blockchain for users who download the snapshot from us. Such tampering is completely unable to propagate, however, and would be identified during the wallet sync process.
I was hit with the dreaded DB corruption issues and this brought me online much faster. thanks @elysiumpool
For security, I am manually syncing a database copy and will swap it out when complete.
In case this helps anyone, this is the Dockerfile I built for syncing the DB in a separate process
RUN apt-get update && apt-get upgrade -y
RUN apt install lsb-release bc python3.8-venv git -y
RUN echo "#!/usr/bin/sh">/usr/bin/sudo && echo "exit 0">>/usr/bin/sudo && chmod +x /usr/bin/sudo
RUN git clone https://github.com/Chia-Network/chia-blockchain.git -b latest --recurse-submodules
RUN cd chia-blockchain && sh install.sh
CMD cd chia-blockchain && . ./activate && chia init && chia keys generate && chia start node && tail -F /root/.chia/mainnet/log/debug.log
Then run with something like:
docker run -v $PWD:/root/.chia ...
You will need to change the default port if running on the same machine as your farmer.
The blockchain bootstrap has been upgraded to the v2 blockchain database. A final copy of the v1 database is also available for users during this awkward transition period.
The v2 database can be downloaded and used on an existing v1 node, so long as the config.json file is updated to reference the v2 database. Thus, users with limited disk space do not need to perform the
chia db upgrade command as they upgrade from v1 to v2, but can rather delete their v1 database and download this v2 database in its place.
Elysium Pool Blockchain Bootstrap
Does that mean that pre v1.3 nodes can also use it?