Bensig’s EOS Hackathon Tips and Tricks

Get a Mac computer and get ready to rumble. I’m going to give you some great tips and tricks for the EOS Hackathon and also some shortcuts for speed.

** Note if you use this method and the WiFi network goes down, you will be at a disadvantage if you cannot connect to public testnet vs what B1 recommends — running your own local node. There are other risks associated with this method, including — you could run out of CPU during your demo if you don’t allocate enough resources.

From inside the EOS mentor training today

Know the EOSIO Hackathon Judgement Criteria — 20 Points total

  1. Utilization of EOS Blockchain — 5 points — How well suited is the concept for blockchain? Is there a clear need for a token, smart contract and DLT? Was an EOSIO Smart Contract successfully implemented?
  2. Creativity — 5 points — How creative was the team in developing an innovative solution for the challenge? Is the idea defensible or unique?
  3. Impact — 5 points — Did the team create an application that can have a valuable impact? Is the idea feasible / if pursued could it actually work in the real world?
  4. Scalability — 5 points — What is the growth potential of this application? What impact can it have on the world as a whole?

Setup your Development Environment Ahead of Time

Block.One recommends that you use a docker image to run a local testnet node.

This is an alternative method which uses a precompiled cleos. None of the previous hackathons have used this method, so use it at your own risk!

Alternative EOSIO Dev Setup

First, install EOSIO CDT, install my cleos binary and install gettext with homebrew. Instructions are here below:

Install homebrew if you don’t already have it

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Install EOS CDT

brew tap eosio/eosio.cdt

brew install https://raw.githubusercontent.com/EOSIO/homebrew-eosio.cdt/50f00447765854f6e4e3b2d4ef36324cc38e5362/eosio.cdt.rb

Install gettext

brew install gettext

Then download the cleos I compiled already

Run chmod 755 and move it into /usr/local/bin

cd ~/Downloads
chmod 755 cleos
mv cleos /usr/local/bin

Now you should be able to run cleos from anywhere on your computer. Boom. You just saved yourself 1–2 hours of dev setup.

Using Public Testnets for EOS

EOS is different from Ethereum because contracts are not immutable on EOS. This means that you can easily use a public testnet instead of installing EOS on your local development environment. Don’t waste time downloading and using a local node deployment as Block.One recommends. There are 2 public testnets — Jungle and Cryptokylin. Right now, I recommend using CryptoKylin because it’s faster for this tutorial.

CryptoKylin — Create accounts even more easily by entering a 12 letter account name replacing <12letteracct> with your account name in the URL below. Just copy and paste the links into your browser.

Names can contain letters a — z and numers 1–5. For a recent project, I used the account name “eospetitions” — this will be the name where your contract is deployed. If you cannot think of a good name, there are name generators such as https://namevault.co where you can click “RANDOM” and get a random name.

http://faucet.cryptokylin.io/create_account?<12letteracct> 

If you wanted to create an account for “bbbbbbbbb111” you would use:

http://faucet.cryptokylin.io/create_account?bbbbbbbbb111

I already created this account, so you will get an error if you try that… but use the account name you have come up with. Be imaginative, make it fun.

When you choose an unused name, this will return a message with your owner and active permissions with a public key and a private key for each your browser. Make sure you note it down. You will need these in the future.

{"msg": "succeeded", "keys": {"active_key": {"public": "EOS7A3ok2CBppkW1hxdDAEJpDaKWhUiCQHmwaDrY7Bs2eFwtivJi8", "private": "5Jck1eRgfiwu3o4VcZQSmdeFUxCpGHDURQsVAKjju3LLVhGYUA"}, "owner_key": {"public": "EOS89qDThvygTXoEw6Y9f44vH73HWfn4VJAnBeKXwShHE15Ps9LCd", "private": "5KCJ2mNT14ejMiWHJVZ1QKkhCzzSNxxgpaZGDr8RaxpuEijXB8"}}, "account": "bbbbbbbbb111"}

Create a wallet and store these private keys inside of the wallet

Use the private keys you got from CryptoKylin to import into your wallet using these commands and replacing <privatekey1> with your first key and <privatekey2> with your second key.

cleos wallet create -n hackathon --to-console
cleos import -n hackathon "<privatekey1>"
cleos import -n hackathon "<privatekey2>"

Next get some free EOS tokens from the testnet

http://faucet.cryptokylin.io/get_token?<12letteracct>

When this works your browser should read:

{"msg": "succeeded"}

Now you should have some EOS tokens. Verify that you have tokens!

cleos -u http://api-kylin.eoslaomao.com get account <12letteracct>

Boom. You’re rich!! Go to the link again to get more tokens.

You can get 100 tokens each for call and max 1000 tokens per day from Kylin.

Staking some tokens

You must stake tokens to your own account using the command line to reserve some resources. You can easily do this using the following command replacing <12letteracct> with the account you created in the last step:

cleos -u http://api-kylin.eoslaomao.com system delegatebw <12letteracct> <12letteracct> "10.0000 EOS" "10.0000 EOS"

Now you will have an account with 10 EOS staked to CPU and 10 EOS staked to network. If you run out of resources, you will need to come back and update this later.

You should also buy some RAM for your account. This will buy 10 EOS worth of RAM.

cleos -u http://api-kylin.eoslaomao.com system buyram <12letteracct> <12letteracct> "10.0000 EOS"

Really great resources for EOS development

Write EOS Contracts, compile, and deploy from your browser!

https://dev4eos.com/#/

Configure Scatter for Kylin Testnet

https://get-scatter.com/

blockchain: EOSIO

name: CryptoKylin Testnet

host: api-kylin.eoslaomao.com

protocol: https

port: 443