Introducing Glider
TL;DR – We deployed our mainnet release candidate,glider-rc.1
, to the Görli testnet last week.
For bug hunters, this is now the only deployment eligible for bounties.
Glider is our first implementation on a long road toward the full Colony Protocol, so if you dive in straight after reading the whitepaper, you're going to be a little confused. See below for what glider-rc.1
can do and what it can't (yet).
What's with the name?
A proper introduction, of course, starts with names. Colony's mainnet release is dubbed glider
. What's a "glider"? Good question.
The first thing to get out of the way is why the name Colony is appropriate for what we're building. Yes, it's been pointed out that there is a not-so-great interpretation for "colony". This is our official statement on the matter:
The name 'Colony' comes from complex adaptive systems theory.
From Wikipedia:
Complex adaptive systems are complex in that they are dynamic networks of interactions and their relationships are not aggregations of the individual static entities, i.e., the behavior of the ensemble is not predicted by the behavior of the components.
They are adaptive in that the individual and collective behavior mutate and self-organize corresponding to the change-initiating micro-event or collection of events.
Most examples of such systems found in the natural world use the word 'colony' to describe the larger thing that, in a nutshell, a whole greater than the sum of its parts.
Whether we're talking about leafcutter ants or naked mole rats, colonies are able to allocate resources, coordinate effort, and in a rudimentary sense, make decisions that are built upon the collective action of each member organism, but in an important way, not made by any particular member. Furthermore, the super-organism itself is able to accomplish things that no single organism ever could, on impossibly large scales.
Now that we have cleared that up, why ‘glider’?
We in the Ethereum community often like to believe that we're breaking new ground, building entirely new systems the world has never conceived of before, but in reality a lot of what we do is a re-mix of ideas that have been thought about long before our hip peer-to-peer consensus protocols existed.
As a hat tip to those brilliant minds that first started dreaming about complex, self-organizing systems, at a time when even the computer was in many senses just theoretical, we decided upon a naming scheme for the colonyNetwork based upon a particularly compelling system: John Conway's Game of Life.
glider
is our first release, because it's the simplest and smallest of the elementary spaceships found in the Game of Life.
After glider
has been deployed on mainnet, we'll be getting straight to work on improvements, and working towards the lightweight-spaceship
.
Another fun parallel between the Game of Life and the EVM is that they are both Universal Turing machines.*
*yes, yes, there are many many people who have weighed in to say that the EVM is not, in fact, turing-complete.
If you feel like you need to point this out to us, it's a sign that you are very smart, but have too much time on your hands. Why not put that brain to work finding some bugs in the glider release?
glider-rc.1
features
This is the first system we feel meets our exceptionally high standards for mainnet deployment. Still, we are going to be the first to point out that glider
is not a full implementation of the comprehensive system described in our whitepaper.
So what does it do?
- The Reputation system
- Meta Colony and the CLNY Token
- Colony funding and rewards
- Single-level domains
- Payments and Tasks
- Work ratings
- Roles and domain-level permissions
- Contract upgradability and recovery
- ENS integration
- Extensions
On mainnet, you’ll be able to create a new colony, import or create your colony’s internal token, and get straight to work creating tasks, payments, and organizing them into (single level) domains.
Reputation, for glider
, is passive– meaning that it records contributions faithfully, and is used to proportionally distribute rewards. But the question of “who has the authority to do X in Y domain?” is handled by our modular permissions and roles, rather than reputation. You can read more about the roles and modular permissions in our latest quarterly update, or in the docs.
Get into glider-rc.1
Ready to roll up your sleeves and build with colony? Fantastic. Here’s what you need to know:
We have chosen to deploy glider-rc.1
on the Görli testnet, primarily because it supports both parity and geth clients. Also, we have a soft spot for our friends at ETHBerlin, where Görli was born.
To connect to Görli, you’re going to need a few pieces of information:
ColonyNetwork address: 0x79073fc2117dD054FCEdaCad1E7018C9CbE3ec0B
ColonyNetwork commit: 41b2e0b429c03d1011e1a96506dcbfe504391f2d
ColonyToken commit: 59cf56f18c54c0bc749ddaa8b6d77ebfd0d0aaf4
For poking around with the contracts, this is really all you need. Use truffle, remix, or your preferred development framework to interact with the colonyNetwork or your colony.
At a minimum, you’ll need to compile and instantiate the interfaces you need (likely IColonyNetwork.sol
and IColony.sol
), as well as your token contract, and any dependencies.
Have a look at our get started section for more detailed instructions.
You want to do more, you say. Full-fledged dapp development on top of the colonyNetwork, you say. To shreds, you say...
Good news, everyone! The latest colonyJS release works with the Glider deployment, which can be quickly set up using the colonyStarter, which contains boilerplates and examples for your project.
Hack the planet.
Colony makes it easy for people all over the world to build organisations together, online.
Join the conversation on Discord, follow us on Twitter, sign up for (occasional and awesome) email updates, or if you’re feeling old-skool, drop us an email.