Background

The intent from the beginning was to build the independence of the Eden community. Many design decisions have been made to expand the independence of the communities that use EdenOS. While for reasons of expediency, we've had to delay some of those decisions, we have made a large number of them from the beginning in the name of independence.

In this document, we expose one more bit of information critical to the community's independence: documenting how to operate an election. For the first election, we will execute the instructions below to ensure it all goes smoothly, but these are all actions anyone can run at the appropriate times to nudge the contract into the next step of the election.

EdenOS is a portal that automates a lot of the election process, but there are a few things that must be known and understood to execute an election. This document will outline what the contract needs as far as event triggering to complete an election.

Smart contracts are reactive: they react to in-coming transactions, their own "events" internally, and other contracts' events. So during an election round, the contract is just responding to vote actions and video upload actions, but at times, we need outside triggers to transition the contract between rounds and other states where there isn't an event to trigger the next state.

The easiest smart contract limitation here to relate to is time... contracts can't run an action at a particular time (like a cron job, if that term means anything to you); they are always responding to in-coming events. So the eden contract exposes a few actions that anyone can call (no special permissions) that simply poke the contract awake, and if it's the right time, it will execute the relevant code.

Instructions

Below, we outline what those are that need to be triggered manually, when they need to be called, and how to call them.

The actions involved are as follows:

NOTE: for each of the steps below, if the action you're invoking takes a "max_steps" argument, generally, you can enter 100. You need to rerun them until there's no more to do. You'll get 1 of 2 outcomes from these invocations.

Election Timeline (as it pertains to externally-triggered events)