Blog Article

Announcing the 7th Stellar Build Challenge

Author

Stellar Development Foundation

Publishing date

Stellar build

Developers

Jed said in the first build challenge announcement:

The build challenge is simple by design: it’s an experiment to find ways to develop services that are fair, affordable, and community-driven, and at the same time drive uptake of the Stellar network to maximize efficiency and reach.

There have been six challenges since then, and many of the winning projects have become cornerstones of the Stellar ecosystem. The SBC is now a essential part of Stellar’s developer community, and here for this seventh edition, we’re going to return to its roots, by focusing especially on the "community-driven" part of Jed's initial vision.

SBC #7 Goals

This SBC has two routes to an award, each of which embodies the ideal of collaboration in a different way:

1) Make open-source contributions to ongoing projects:

We will reward new contributions to meaningful Stellar-related open-source projects. We're looking for developers who:

  • contribute new features and enhancements
  • work on ‘help wanted’ issues
  • expand project functionality
  • improve the user experience
  • even create or improve the documentation

In short, we want people to make a difference in an existing open-source project.

Below is a list of suggested open-source projects to contribute towards.

SDK’s (pick your favorite language)

Wallets/Exchanges

Ledger Explorers

Other

2) Develop one of these four new ‘cornerstone’ project ideas:

This is your chance to "collaborate" directly with SDF. We've written up the following four specs; this is what we most want to see built for Stellar. Take one of the specs and make something awesome.

A Better Quorum Explorer

There are a couple Stellar quorum explorers already. But they are not collecting or presenting the info in a way that makes them as useful as they could be. Ideally you would contribute to one or more of the following improvements to those projects.

  • show a graph of the all the qsets of validators in the network
  • show which are up and show the dependencies between them
  • use real names for validators where possible

To get the data you probably need to modify stellar-core to write out to a DB all the qsets and externalized messages it sees.

A Trade Bot Maker

Build an easy way for anyone to make a trading bot. It should be usable by non-programmers. I am imagining a web interface with a suite of different algorithms to choose from. Allow the users to tweak the parameters in many different ways to tune the bot right.

  • Provide various data feeds the bot can listen to. Prices on other exchanges etc.
  • It should be like Stellarterm, where everything is run in a browser client-side.
  • The server can save people's bot setup but not their secret key
  • Consider allowing other programmers to add algorithms or other extensions. Maybe this is just by PR at first.
  • Later versions could incorporate social aspects:
  • For example, people can name their bots and there could be a leaderboard of bot performance.
  • You could also allow people to run their bot for others for a fee or something similar

Social trading

This is a way to make trading more social and fun. The idea is similar to what eToro does (note to eToro: you guys should just point your interface at the stellar network and save someone the trouble of rebuilding all this :) ) Build a trading app or site:

  • the users give it a name and a public key.
  • the site then tracks your trading performance.
  • It should show a leaderboard of returns over various time periods.
  • you should be able to see the holdings of anyone on the leaderboard.
  • you should be allowed to follow another trader.
  • following means that the you will watch what trades they are making and mirror the same trades in proportion to your balance.
  • make portfolios that follow a mix of traders.
  • this is probably implemented as a separate account for each trader you are following in the portfolio.

Peer-to-peer wallet

This one is the biggest and most ambitious of the suggestions. This wallet would facilitate peer-to-peer payments without the need for anchors. It could be used to make small payments all over the world.

Before Bitcoin, Ryan Fugger created a site called ripplenet. It allowed people to set borrowing limits for any of their friends or acquaintances. Say A wants to send €10 to C but didn't know D. But A knows B and B knows C and C knows D. What happens is that A gives B a €10 IOU then B gives C a €10 IOU then C gives D a €10 IOU. Now A owes B €10 and D is owed €10. B and C are owed €10 but also each owe €10 more so their net position after the payment hasn't changed. The final state from this chain of IOUs is equivalent to A sending €10 to D.

As these debts are settled with real fiat, the balances inside Stellar can be reset. Because Stellar is multi-asset you can of course also support cross-currency payments. What is happening under the hood is that for each of your friends you are making A) a trustline and B) an order buying their asset and selling your asset.

Now, a normal Stellar path payment can route your asset to anyone else that is connected through this friend graph. The app should also allow people to set a price they are willing to go into and out of lumens for. This would do two things, A) allow people to settle their debts in lumens which will make that process simpler. B) make it possible for lumens to be the bridge currency in some of these payments reducing the number of hops need to send money. This has all the benefits that it does with anchors but is probably more important here due to the much larger amount of assets.

Setting the lumen price is a little tricky because of the volatility but maybe you can just set it to some standard price feed so it gets updated often. These orders can also only be taken by people that either have your asset or are willing to hold your asset so it is much less risky than putting orders up on a highly traded pair.

Additional incentive to collaborate:

In case it's not already clear, we want to make sure all participants feel like they are part of the Stellar community. Instead of coding inside of a black hole until the winners are announced, it’s important to discuss projects with each other. There are many people in the community that consistently provide solid direction to projects but don’t have the time to develop their own.

We’ve noticed and will be rewarding users that give great feedback on GalacticTalk and GitHub, this round.

Going forward, Previous SBC Winners Will Be Supported Outside SBC

If you’ve won in past build challenges, congratulations! Thank you for being a part of getting Stellar to where it is today. You helped pave the way -- allowing new developers to be inspired by the work you’ve done. We’ve always encouraged winners to continue improving their projects. That will never change. However, we've realized the Stellar Build Challenge isn't the best framework for ongoing support. If your project is a previous winner or you are a member of the partnership program, do not submit to the SBC. We will reach out to you directly with further details on how SDF plans to support your ongoing success. With this change, we hope to accomplish several things:

  • to recognize and financially support established high-quality work in a targeted and tailored way
  • to give a clear, goal-oriented, and customized set of guidelines to past winning projects
  • to create more space for truly new projects in the Build Challenge
  • to create more opportunities for new use cases to be explored and worked into Stellar’s network

Previous winners should review the support program guidelines as they arrive, and existing partners should discuss with their contacts whether the SBC is the right place to submit their project/platforms. For example, a complete rewrite of functionality, utilizing new libraries, for a refined use-case could be considered a ‘new’ project, regardless of whether it keeps the name of the old one. On the other hand, changing the name, but just doing a few UI tweaks would not be a ‘new’ project.

Submissions, Judging, and Awards

Participants can submit their projects for consideration, starting June 1st. You should announce your project on GalacticTalk.org and submit your project through the typeform. Form submissions will open on June 1st and end on August 15th at 10:00PM PST. You can start posting announcements on GalacticTalk today. Winners will be announced by August 30th. Judges will consist of members of the Stellar Development Foundation team with final determinations by Jed McCaleb. Projects will be awarded based on their merit. We imagine there will be a comparable pool to previous build challenges, but we don't want to discourage submissions and effort. High quality projects will receive higher awards. If they're better than average, they will receive more. If they are low-quality, low-effort - they will receive less. While we won't automatically discount new projects, we highly recommend that submissions are related to the two categories shared above.

Future Opportunities

There are some obvious changes to the format of Stellar Build Challenge 7. We want to keep-in-touch with our developers and offer more ways for the community to engage with each other. Hackathons, live streams, and hosted events should begin to appear more regularly. Our team is also working on a new developer-focused communication channel to highlight exciting indie projects being built on the Stellar network. Details will be announced via our Twitter and monthly newsletter in the near future. We can’t wait to see what you bring to the table and look forward to watching the community come together to build something awesome.