In the following documents, we will explore building out an end-to-end example of Concurrence. Using only our Javascript NPM package we will add a request to the testnet fleet asking miners to come to a consensus on an internet endpoint. We will reserve some CCCE token behind our request to incentivize miners. We will then mine the request with a couple different accounts. Finally, we’ll trigger the combiner to draw a consensus, reward miners, and callback.

Let’s run a few commands on the Concurrence Javascript package to test that everything is working correctly. First, let’s get the version and the main contract address with:

//snippet from concurrence.js/examples/version.js


> node version


Nice, looks like we are all connected correctly. Next, let’s look at the local accounts and their balances in CCCE:

//snippet from concurrence.js/examples/accounts.js


> node accounts

[ '0x4fFD642A057Ce33579a3CA638347b402B909f6D6',
  '0x78782428cDbD1cF877afDB0AB709476aefaE4B35' ]
//snippet from concurrence.js/examples/getBalance.js

  console.log("Asking concurrence.js what balance is for account index ["+accountIndex+"]...")
    console.log("Balance: "+balance+" "+concurrence.symbol)

> node getBalance 1

Asking concurrence.js what my (etherbase) balance is...
Balance: 1000000000000000000 CCCE

> node getBalance 2

Asking concurrence.js what my (etherbase) balance is...
Balance: 0 CCCE

> node getBalance 3

Asking concurrence.js what my (etherbase) balance is...
Balance: 0 CCCE

So the account at index 1 has all the CCCE at this point, let’s distribute that out a little:

//snippet from concurrence.js/examples/transfer.js


> node transfer 1 0x4fFD642A057Ce33579a3CA638347b402B909f6D6 1000
> node transfer 1 0x926dcc7318Df2D2b543836522f16c5e1f71370A0 1000
> node transfer 1 0x78782428cDbD1cF877afDB0AB709476aefaE4B35 1000

Now our other accounts have some CCCE:

> node getBalance 2

Asking concurrence.js what my (etherbase) balance is...
Balance: 1000 CCCE