I often see new community members assume that the Stellar Development Foundation is the source of every change to the Stellar code base, but that’s not the case.
Stellar is open-source, which means that anyone can review and contribute to the code, and anyone can write technical proposals suggesting changes to the protocol or ecosystem standards. SDF’s role is to guide and maintain development of the network, but it’s not the sole contributor. It is just as important for developers and network participants to help aid in the growth of Stellar.
New changes or standards start as proposals divided into two categories: Core Advancement Proposals and Stellar Ecosystem Proposals. In this post I’ll give a general overview of CAPs and SEPs, and outline the process they go through before they’re implemented or adopted.
Core Advancement Proposals (CAPs)
Core Advancement Proposals (CAPs) are suggested changes to the core protocol of Stellar. These have a direct effect on how the network operates.
As an example let’s consider CAP-0015 (Bump Fee Transactions) which is currently in the Draft phase. This is a proposal to allow fees to be paid by an arbitrary account, which would enable an application to cover its users’ network fees. Since network fees are handled at the protocol level, this proposal would require altering Stellar core code, so it’s categorized as a CAP.
A proposal categorized as a CAP enters a multi-step process to ensure that it’s high quality, backwards compatible, and meets the goals of the Stellar network. One goal of this process is to root out protocol bugs, which can lead to severe network issues that are difficult to fix. For a CAP to be classified as Final and go live on the network, it must be implemented in the code, included in a protocol upgrade, and accepted by a majority of the network validators. The recent upgrade to Protocol 11, for instance, included CAP-0005, which improved transaction pricing and network capacity, and CAP-0006, which added a buy offer to the SDEX.
The life cycle of a CAP is represented by the chart below:
Stellar Ecosystem Proposals (SEPs)
Stellar Ecosystem Proposals (SEPs) deal with changes to the standards, protocols, and methods used in the ecosystem built on top of the Stellar network.
They allow developers to agree on how services using the network should be implemented to allow for maximum interoperability. Often, they do that by specifying two sides of an interaction: one side creates an API that acts in a predictable way; the other consumes it.
A good example of this would be SEP-0002, the Federation Protocol, which explains how to set up a server to map Stellar addresses to human readable addresses (GCCVPYFOHY7ZB7557… → name*domain.com) and how to query that server to resolve those addresses. Wallets that implement the Federation Protocol can present users with an intuitive interface to send and receive payments: all the complexity happens in the background.
SEPs are also divided into two categories: Informational and Standard. A SEP classified as informational is open to use by the Stellar ecosystem but is not endorsed and standardized by SDF. A Standard SEP is not only open to use by the ecosystem but is endorsed and standardized by SDF. A Standard SEP has also been approved by two SDF members on the SEP team.
The life cycle of a SEP is represented by the chart below:
How to Participate
We have a variety of resources for developers and non-developers alike to stay in the loop. To keep up with ongoing developments, new ideas, and developer discussions you can follow the developer mailing list or our #dev_discussion channel on Keybase. Our developer blog is also a good resource for keeping up with new releases, developments, and technical information. Our Stack Exchange is another place to ask technical questions and get developer answers. Galactic Talk, a community ran forum, is where the Stellar Community Fund is being hosted and is a good place for discussion with community devs.
If you’re interested in the status of individual CAPs and an in-depth breakdown of the process go here: https://github.com/stellar/stellar-protocol/blob/master/core/README.md
If you’re interested in the status of individual SEPs and an in-depth breakdown of the process go here: https://github.com/stellar/stellar-protocol/blob/master/ecosystem/README.md