There are three ways to install Stellar Core: you can use a Docker image, use pre-built packages, or build from source. Using a Docker image is the quickest and easiest method, so it's a good choice for a lot of developers, but if you're running Stellar Core in production you may need to use packages or, if you want to sacrifice convenience for maximum control, build from source. Whichever method you use, you should make sure to install the latest release since releases are cumulative and backwards compatible.
SDF maintains a quickstart image that bundles Stellar Core with Horizon and postgreSQL databases. It's a quick way to set up a default, non-validating, ephemeral configuration that should work for most developers.
In addition to SDF images, Satoshipay maintains separate Docker images for Stellar Core and Horizon. The Satoshipay Stellar Core Docker image comes in a few flavors, including one with the AWS CLI installed and one with the Google Cloud SDK installed. The Horizon image supports all Horizon environment variables.
The SDF also maintains a Stellar-Core-only standalone image:
docker run stellar/stellar-core:latest help
docker run stellar/stellar-core:latest gen-seed
To run daemon you need to provide a configuration file:
# Initialize postgres DB (see DATABASE config option)
docker run -v "/path/to/config/dir:/etc/stellar/" stellar/stellar-core:latest new-db
# Run stellar-core daemon in the background
docker run -d -v "/path/to/config/dir:/etc/stellar/" stellar/stellar-core:latest run
The image utilizes deb packages so it's possible to confirm checksum of the stellar-core binary in the docker image matches that in the cryptographically signed deb package. See packages documentation for information on installing Ubuntu packages. To calculate checksum in the docker image you can run:
docker run --entrypoint=/bin/sha256sum stellar/stellar-core:latest /usr/bin/stellar-core
You may choose to install these packages individually, which offers the greatest flexibility but requires manual creation of the relevant configuration files and configuration of a PostgreSQL database.
Installing from source
See the install from source for build instructions.
In general you should install the latest release build. Builds are backward compatible and are cumulative.
The version number scheme that we follow is
protocol_version is the maximum protocol version supported by that release (all versions are 100% backward compatible),
release_number is bumped when a set of new features or bug fixes not impacting the protocol are included in the release,
patch_number is used when a critical fix has to be deployed.