A Postgres database is the bread and butter of Stellar Core. It defaults to an in-memory database, but you can specify a path as per the example config. The bucket files are used for hashing and transmission of ledger differences to history archives. Buckets should be stored on a fast local disk with sufficient space to store several times the size of the current ledger.
For the most part, the contents of both the database and buckets directories can be ignored as they are managed by Stellar Core. However, when running Stellar Core for the first time, you must initialize both with the following command:.
This command initializes the database and bucket directories, and then exits. You can also use this command if your DB gets corrupted and you want to restart it from scratch. Your choices:. For more about the Network Passphrase and how it works, check out the glossary entry. If you want your node to be a Basic Validator or a Full Validator , you need to configure it to do so, which means preparing it to take part in SCP and sign messages pledging that the network agrees to a particular transaction set.
Configuring a node to participate in SCP and sign messages is a three step process:. If you want other validators to add your node to their quorum sets, you should also share your public key GDMTUTQ… by publishing a stellar. Each node you run should have its own secret key. Doing so will allow your nodes to be grouped correctly during quorum set generation.
No matter what kind of node you run — Watcher, Basic Validator, Full Validator, or Archiver — you need to select a quorum set, which consists of validators grouped by organization that your node checks with to determine whether to apply a transaction set to a ledger. If you want to know more about how qorum sets work, check this article about how Stellar approaches quorums.
If you want to see what a quorum set consisting of all the Tier 1 validators looks like — at tried and true setup — check out the public network config for a Full Validator.
Since crafting a good quorum set is a difficult thing to do, stellar core automatically generates a quorum set for you based on structured information you provide in your config file.
You choose the validators you want to trust; stellar core configures them into an optimal quorum set. To generate a quorum set, stellar core:. To find out how that works, take a look at SEP As a result of that link, you can look up a node by its Stellar public key and check the stellar. If you decide to trust an organization, you can use that list to collect the information necessary to add their nodes to your configuration.
One important thing to note: you need to either depend on exactly one entity OR have at least 4 entities for automatic quorum set configuration to work properly. At least 4 is the better option. It consists of validators specified by organization that the node checks with to determine that apply transaction set to a ledger.
An ideal quorum set:. Stellar automatically generates a quorum set based on structured information provided in the configuration file. The choice of validators is yours, while the Stellar Core configures them into an optimal quorum set. To accomplish this task, stellar does the following:. This link allows to look up a node by its Stellar public key and checks stellar. It is easier to consult the list of nodes on Stellarbeat. This list lets you discover that most reliable organizations run more than one validator.
The critical point here is that you need to depend on precisely one entity or at least four entities for automatic quorum set configuration to work efficiently. Most weight in automatic quorum set configuration is given to High-quality validators. It is necessary to endure that the node has low latency and good uptime; the organization running the node is trustworthy and reliable. A high-quality validator belongs to a suite of nodes that provide redundancy and publishes archives.
A medium-quality validator is nested under high-quality validators. The combined weight of all medium-quality validators is equivalent to a single high-quality entity. A low-quality validator is nested under medium quality validator. The combined weight of all low-quality validators is equivalent to a single medium quality entity.
They should be proved reliable over time. Regardless of the kind of running node, it should be configured to get history from one or more public archives. It is possible to configure any number of archives, and Stellar Core will automatically round-robin between them. Automatic maintenance Stellar Core database has some tables that act as publishing queues for external systems like Horizon. These generate metadata for modifications made to the distributed ledger.
The tables can grow without bounds if not appropriately managed. A built-in scheduler deletes data from old ledgers that are not used anymore to avoid this situation. Stellar Core performs this automatic maintenance by default.
Ensure that it is disabled until appropriate data ingestion in downstream systems is done. If the running validator is Watcher or Basic validator, skip this section. For a Full validator and an Archiver, set up the node to publish a history archive.
Caching and history archives The data transfer costs associated with public history archives are reduced by using standard caching techniques. Three rules apply to cache the History archives:. Local history archive using Nginx The following steps help to publish local history archive using Nginx:. Run command:. Do not expose this HTTP endpoint to the public internet. It is accessed explicitly by administrators to submit transactions to the Stellar network. A new field quorum will display information about network decisions after observing consensus.
Logging By default, Stellar Core logs to standard output and stellar-core. The following configuration controls the log level:. There is another way to control the log levels. Adjust it on a partition-by-partition basis through the administrative interface. Validator maintenance Maintaining a validator includes everything from applying security patches and system upgrades to temporarily taking the validator out of the network. The administrator is responsible for keeping the validator safe and overall maintenance of the validator.
Safety of validators means that the other dependent validators must not be affected when your validator is turned off for maintenance. When it comes back to the network, that validator runs smoothly as a part of the network. Perform the following recommended steps as part of maintenance:.
This list provides the required information of all the peers connected to the node. Finally, the job of setting up and running the Stellar Core node is done. Stellar is continually gaining popularity worldwide because of its unique consensus protocol, built-in order books and connection with existing financial infrastructure. Such immensely growing popularity brings the need to learn the development and execution of Stellar. This article presented technical and operational aspects to successfully install, configure, monitor, and maintain the Stellar Core node.
The Engine is responsible for loading modules and providing mechanisms that allow Satellites to expose their APIs to the rest of the platform so that their functionality can be used by other components.
The modular design allows features of a given area to be more easily ported to other projects or shared with the Open Source community. Both the documentation of this website and the Stellar source code are available on GitHub.
You can submit pull requests for the dev branch, but first, please read the contribution guide carefully. All help is welcome! You can also help using the issue tracker to report bugs, make suggestions, or submit feature requests.
The typical directory structure of a Stellar project is shown below. This example is a simple API that implements the functionality of a blog. These settings override not only the system settings but also the settings configured in the project modules. This allows you to reuse modules from other projects and still configure the application for your usage scenario without having to modify the module code.
0コメント