The Decentralized
Developer Toolbox
Petros Ring, Block 16
Why Are Tools So Important?
● The best tools can set a language or a platform apart
● Take for example Stripe vs Paypal
○ Stripe quickly gained market share because there systems
were easier to use and implement
● Ethereum/Solidity tools empower developers to make the best
projects the right way
● DevCon3 had a myriad of talks on new, better tools multiple
companies were developing to enhance the ecosystem
● EOS has a long way to go to create better development tools and
attract developers
The Basics: Truffle Suite
Truffle
- The easiest way to
start Solidity
development.
- Install and spin up a
new project as easy as
truffle init
Ganache
- Run your own private
Ethereum blockchain
- Test your applications in
a controlled environment
Drizzle
- A better way to handle
your dApp front end
- Manages syncing and
interactions with your
smart contract
https://truffleframework.com
Solidity IDEs
Web Based
EthFiddle
- Good for experimenting with
code snippets and sharing them
- Comparable to JSFiddle
Remix IDE
- An all inclusive online IDE that
will let you compile, deploy and
analyze smart contract code
- Great for beginners
Application Based
IntelliJ-Solidity
- Solidity language support for a
world class IDE
- Still in Alpha stage but still being
updated over time
EtherAtom
- Bringing many of Remix’s best
features to a local editor for
analyzing code and testing
Accessing Ethereum via APIs
- Reliable access to hosted
Ethereum nodes and IPFS
gateways.
- Allows you to do all of the
Ethereum JSON-RPC requests
you would normally make on
a local node.
- Easiest interface is web3.js
- Access human readable
content on addresses and
blocks separate from
standard web3.js calls
- Suitable for monitoring
information occuring on the
blockchain by a backend
system
Block 16 API
Endpoints
- Access to all the information, transactions, events on a per block level
- Access to token transfers and last 100 ethereum transactions on an
address level
- Endpoints combine calls for all block / uncles / transactions /
transaction receipts into one HTTP call which would normally be
somewhere from 250-500+ calls
Use Cases
- Scanning the entire blockchain and tracking it for transactions
occurring in real time on a separate backend
- Easily accessing assets data on an address
https://docs.block16.io
Canonical Smart Contracts
Zeppelin Solutions and DappHub have created many
audited smart contracts that are ready to be deployed at
any time and integrated into your application
Open Zeppelin
● Whitelists
● Crowdsale
● Lifecycle Management
● SafeMath
● Ownership
● Payment
● Token: ERC-20, 721, 827
Dapp Tools
● Multisig
● Authentication (Authority)
● Proxy
● Cache
● Token: ERC-20
Interfacing into Other Smart Contracts
● The beauty of the Ethereum ecosystem is that once
others deploy smart contracts the only thing you need
to interact with them on a smart contract level is an
Interface.
● Next generation contracts will link what would
normally be multiple transactions (steps) into once
succinct transaction through the use of proxy contracts.
● These proxy contracts send bytecode and data for the
sender as them but use Interfaces to interact with
contracts around them for the individual actions.
Case Study: Oasis Direct Atomic Swaps
Wrapped Ether Token Interface
Exchange Trading Interface
Case Study: Oasis Direct Atomic Swaps
1. Convert ETH -> W-ETH Token
- Send ETH to the deposit() function of
WEthInterface
- Call allowance() function to set the tokens able
to be transferred
2. Exchange Tokens
- Exchange tokens through OTC interface which
buys or sells one set of tokens for another on a
separate contract
3. Send Token to Original Sender of ETH
Thank you for your time!
Petros Ring
petros@block16.io
block16.io

The Decentralized Developer Toolbox by Petros Ring

  • 1.
  • 2.
    Why Are ToolsSo Important? ● The best tools can set a language or a platform apart ● Take for example Stripe vs Paypal ○ Stripe quickly gained market share because there systems were easier to use and implement ● Ethereum/Solidity tools empower developers to make the best projects the right way ● DevCon3 had a myriad of talks on new, better tools multiple companies were developing to enhance the ecosystem ● EOS has a long way to go to create better development tools and attract developers
  • 3.
    The Basics: TruffleSuite Truffle - The easiest way to start Solidity development. - Install and spin up a new project as easy as truffle init Ganache - Run your own private Ethereum blockchain - Test your applications in a controlled environment Drizzle - A better way to handle your dApp front end - Manages syncing and interactions with your smart contract https://truffleframework.com
  • 4.
    Solidity IDEs Web Based EthFiddle -Good for experimenting with code snippets and sharing them - Comparable to JSFiddle Remix IDE - An all inclusive online IDE that will let you compile, deploy and analyze smart contract code - Great for beginners Application Based IntelliJ-Solidity - Solidity language support for a world class IDE - Still in Alpha stage but still being updated over time EtherAtom - Bringing many of Remix’s best features to a local editor for analyzing code and testing
  • 5.
    Accessing Ethereum viaAPIs - Reliable access to hosted Ethereum nodes and IPFS gateways. - Allows you to do all of the Ethereum JSON-RPC requests you would normally make on a local node. - Easiest interface is web3.js - Access human readable content on addresses and blocks separate from standard web3.js calls - Suitable for monitoring information occuring on the blockchain by a backend system
  • 6.
    Block 16 API Endpoints -Access to all the information, transactions, events on a per block level - Access to token transfers and last 100 ethereum transactions on an address level - Endpoints combine calls for all block / uncles / transactions / transaction receipts into one HTTP call which would normally be somewhere from 250-500+ calls Use Cases - Scanning the entire blockchain and tracking it for transactions occurring in real time on a separate backend - Easily accessing assets data on an address https://docs.block16.io
  • 7.
    Canonical Smart Contracts ZeppelinSolutions and DappHub have created many audited smart contracts that are ready to be deployed at any time and integrated into your application Open Zeppelin ● Whitelists ● Crowdsale ● Lifecycle Management ● SafeMath ● Ownership ● Payment ● Token: ERC-20, 721, 827 Dapp Tools ● Multisig ● Authentication (Authority) ● Proxy ● Cache ● Token: ERC-20
  • 8.
    Interfacing into OtherSmart Contracts ● The beauty of the Ethereum ecosystem is that once others deploy smart contracts the only thing you need to interact with them on a smart contract level is an Interface. ● Next generation contracts will link what would normally be multiple transactions (steps) into once succinct transaction through the use of proxy contracts. ● These proxy contracts send bytecode and data for the sender as them but use Interfaces to interact with contracts around them for the individual actions.
  • 9.
    Case Study: OasisDirect Atomic Swaps Wrapped Ether Token Interface Exchange Trading Interface
  • 10.
    Case Study: OasisDirect Atomic Swaps 1. Convert ETH -> W-ETH Token - Send ETH to the deposit() function of WEthInterface - Call allowance() function to set the tokens able to be transferred 2. Exchange Tokens - Exchange tokens through OTC interface which buys or sells one set of tokens for another on a separate contract 3. Send Token to Original Sender of ETH
  • 11.
    Thank you foryour time! Petros Ring petros@block16.io block16.io