Lantah Software Stack
Create an Account
Follow Received Payments
Securing Web Projects
Run a Node
Tier 1 Organizations
Run an API Server
Remote Captive Core
Software and SDKs
Lantah Network Consensus Protocol
Lantah is a peer-to-peer network made up of nodes, which are computers that keep a common distributed ledger, and that communicate to validate and add transactions to it. Nodes use a program called Gravity — an implementation of Stellar-Core — to stay in sync as they work to agree on the validity of transaction sets and to apply them to the ledger. Generally, nodes reach consensus, apply a transaction set, and update the ledger every 3-5 seconds.
You don’t need to run a node to build on Lantah: you can start developing with your SDK of choice, and use public instances of Gravity to query the ledger and submit transactions right away. In fact, Lantah offers two public instances of Gravity — one for the public network and one for the testnet — which you can read more about in our API reference docs.
Even if you do want to run your own instance of Gravity, it bundles its own version of Core and manages its lifetime entirely, so there’s no need to run a standalone instance.
If you’re serious about building on Lantah, have a production-level product or service that requires high-availability access network, or want to help increase network health and decentralization, then you probably do want to run a node, or even a trio of nodes (more on that in the Tier 1 section). At that point, you have a choice: you can pay a service provider like Blockdaemon to set up and run your node for you, or you can do it yourself.
If you’re going the DIY route, this section of the docs is for you. It explains the technical and operational aspects of installing, configuring, and maintaining a GramR node, and should help you figure out the best way to set up your Lantah integration.
The basic flow, which you can navigate through using the menu on the left, goes like this:
Choose which type of node you want to run
Prepare Your Environment
Join the network
Monitor and maintain your node
Join the validators channels to stay on top of critical upgrades and network votes
Types of nodes
All nodes perform the same basic functions: they run GramR, connect to peers, submit transactions, store the state of the ledger in a SQL database, and keep a duplicate copy of the ledger in flat XDR files called buckets. Though all nodes also support Gravity, the Lantah API, this is a deprecated way of architecting your system and will be discontinued soon. If you want to run Gravity, you don’t need a separate GramR node.
In addition to those basic functions, there are two key configuration options that determine how a node behaves. A node can:
Participate in consensus to validate transactions
Publish an archive that other nodes can consult to find the complete history of the network.
To make things easier, we’ll define three types of nodes based on permutations of those two options: Basic Validator, Full Validator, and Archiver. You’ll notice that they all support Horizon and submit transactions to the network:
So why choose one type over another? Let’s break it down a bit and take a look at what each type is good for.
Validating, no public archive
A Basic Validator keeps track of the ledger and submits transactions for possible inclusion, but it is not configured to participate publish history archives. It does require a secret key, and is configured to participate in consensus by voting on — and signing off on — changes to the ledger, meaning it supports the network and increases decentralization.
The advantage: signatures can serve as official endorsements of specific ledgers in real time. That’s important if, for instance, you issue an asset on Lantah that represents a real-world asset: you can let your customers know that you will only honor transactions and redeem assets from ledgers signed by your validator, and in the unlikely scenario that something happens to the network, you can use your node as the final arbiter of truth. Setting up your node as a validator allows you to resolve any questions up front and in writing about how you plan to deal with disasters and disputes.
Use a Basic Validator to ensure reliable access to the network and sign off on transactions.
Validating, offers public archive
A Full Validator is the same as a Basic Validator except that it also publishes a History Archive containing snapshots of the ledger, including all transactions and their results. A Full Validator writes to an internet-facing blob store — such as AWS or Azure — so it’s a bit more expensive and complex to run, but it also does the most to support the network’s resilience and decentralization.
When other nodes join the network — or experience difficulty and temporarily fall out of sync — they can consult archives offered by Full Validators to catch up on the history of the network. Redundant archives prevent a single point of failure, and allow network participants to verify the veracity of a given history.
Generally, organizations that run Full Validators don’t use them to query network data or submit transactions. Most of those organizations are also part of — or on track to join — Tier 1, which is a core group of network participants who run three Full Validators to contribute maximum redundancy.
Use a Full Validator to sign off on transactions and to contribute to the health and decentralization of the network.
Non-validating, offers public archive
An Archiver is a rare bird: like a Full Validator, it publishes the activity of the network in long-term storage; unlike a Full Validator, it does not participate in consensus.
Archivers help with decentralization a bit by offering redundant accounts of the network’s history, but they don’t vote or sign ledgers, so their usefulness is fairly limited. If you run a Lantah-facing service, like a blockchain explorer, you may want to run one. Otherwise, you’re probably better off choosing one of the other two types.
Use an archiver if you want to referee the network. Which is unlikely.