EOS Developer Resource List
I wanted to dispel the rumors going around that EOS has bad documentation by providing a massive resource list that I have compiled. These links are some of the most helpful sites, presentations, articles, and tools that I have found on my EOS development journey. I have also been reading alot of complaints about Ethereum having more resources for available Solidity, so please keep in mind that the only reason Eth has so much more material available is because their dev community is currently bigger (and you're not counting all the available C/C++/WASM material). When EOS inevitably starts gaining momentum the same effect will occur, an influx of developers trying things and documenting their efforts. I will keep this post updated with a tail of new found resources, and have a few "getting started" videos on the way. So stay tuned, be sure to follow, and please post any additional resources you have in the comment section! It will help us all and I will be sure to upvote!
Best EOS Documentation/tutorials
In case you haven’t seen the EOS Github Wiki yet, it is definitely the best to get started. I have always used a 200 year old version control package (which I have shamefully grown to love) and thus am a github noob, so it took me a few days to stumble across it.
https://github.com/EOSIO/eos/wiki
*EOS REST API MetaList:
https://t1api.eos.io/v1/docs/#api-Account-GetAccount
Web Wallet:
Dev Testnet Account Signup:
https://docs.google.com/forms/d/e/1FAIpQLSel3HVFb22zYaAJfUtu_IzFgIJ4OATb0jQ3H2FV-HbwnJ090g/viewform
Basic Github Tutorial:
https://github.com/EOSIO/eos/blob/master/README.md
More good EOSIO code Documentation:
https://eosio.github.io/eos/modules.html@Dan Larimer's Material
Dan's Steemit accounts are filled with absolutely amazing articles on blockchain development, especially the ones written by him. I have left all my favorite links and articles by him below. Also, for the super go-getters, check out his Bitshares forum post history (last link in the section).
https://steemit.com/eos/@dan/does-freedom-require-radical-transparency-or-radical-privacy
https://steemit.com/eos/@dan/inter-blockchain-communication-via-merkle-proofs-with-eos-io
https://steemit.com/eos/@eosio/eos-io-dawn-2-0-released-and-development-update
https://steemit.com/eos/@dan/eos-example-exchange-contract-and-benefits-of-c
https://steemit.com/eos/@dantheman/web-assembly-on-eos-50-000-transfers-per-second
https://steemit.com/@dantheman
https://www.youtube.com/watch?v=eftctVXiFJQ
https://www.youtube.com/watch?v=2cXC7YUm7Rk
https://bitsharestalk.org/index.php?action=profile;area=showposts;u=5Debugging
If anyone is having trouble developing with a foreign library without a dedicated compile environment or are unfamiliar with C/C++, here are a few tips. The team points out their favorite method here, “Caveman” debugging. Coming from an embedded background, this is all we ever have to work with. So in case the concept is foreign to you, the basic idea is to make a simple debug macro, something like:
#def DEBUG_ON – toggle debug here, can also add as a flag in a make/header file
#ifdef DEBUG_ON
…
TRACE_IN MACROs – put the trace-ins at beginning of function calls, would looks something like printf("%d", __LINE__, __FILE__);
TRACE_OUT’s MACROs – basically same as trace in, end of function calls
…
These debug tactics in conjunction with your eclipse set up should put you in a very good dev environment. Another decent strategy is to wrap all your debug print’s in #ifdef’s, although it makes the code quite ugly. But it does allow you to toggle them on/off at will, and easily strip them out before production. Also, be sure to make use of asserts in failure cases!
Here is a decent reference to “line control.” I have not yet tried this in an EOS implementation, but I should get there in a week or so, so I will report back my findings:
https://gcc.gnu.org/onlinedocs/cpp/Line-Control.html
Web Assembly Intro
EOS has opted to use Web Assembly, which I am extremely excited about. The two videos below are a good introduction for the non-familiar. Keep in mind, that Web Assembly is currently running at around 70-80% native performance. I believe that it still has a way to go performance wise, until all that is left in its way is latency, a problem fiber and future WIFI technologies (bit transmission by lazer I hope) will help gap close. This means that as Web Assembly improves, EOS transaction capabilities improve with it. And the fact that it can compile C/C++ in the browser is AMAZING and goes without saying....Tokenika:
The guys @tokenika have been putting out some awesome stuff the past few months, be sure to check them out!
https://steemit.com/eos/@tokenika/using-eclipse-ide-for-eos-smart-contracts
https://steemit.com/eos/@tokenika/compiling-eos-smart-contracts-in-eclipse-using-llvm-clang
PPT and Notes from the above presentation:
https://github.com/tokenika/tokenika.github.io/blob/master/WarsawBlock(8).pptx
https://github.com/tokenika/tokenika.github.io/blob/master/WarsawBlock(8).docx