Ebakus based decentralized applications consist of two parts:
- the business logic that is developed through smart contracts in the solidity language and runs on the ebakus network
- the client logic that interfaces with the smart contract
To enable developers produce highly responsive and frictionless decentralized applications that are a delight for users to use, we have created the ebakus development stack.
The ebakus development stack¶
The ebakus development stack consists of:
the ebakus node: DPOS, 1 second blocks, ebakusDB
web3-ebakus: is an extention of ethereum’s popular web3 library to enable calculation of PoW and access ebakusDB
the wallet-loader library: can be included on any static site and provide an interface to the ebakus blockchain through the web wallet
the ebakus web wallet: is the interface to the ebakus network
The ebakus development stack allows for applications that are as easy to use, as any other application built on centralized infrastructure while remaining completely decentralized (without the need to rely on hybrid models).
The smart contract¶
Smart contracts in the decentralized application context are the business logic and the blockchain is where they are stored and run.
They are essentially the backend of the application and they are special because they:
- are immutable and produce deterministic results
- run forever
- cost nothing to run for the developers
As we mentioned before, the ebakus node is 100% backwards compatible with ethereum. This allows you to use the vast resources available for developing smart contracts for solidity and apply everything you learn to ebakus to enjoy no fees, low latency and high throughput. Moreover ebakus extends solidity with ebakusDB a transactional decentralized Database that makes handling large datasets a breeze.
You can try out examples and tutorials you find through:
- the ebakus version of Remix IDE that will help you write, test and deploy solidity contracts for the ebakus network
- our own block explorer
If you already understand the basics of developing smart contracts you may find interesting this article that introduces the ebakusDB.
The client logic¶
The client logic on the other hand works a bit differently as the ebakus development stack utilizes the embedded wallet that drastically improves usability. Lets see just how this works in a bit more detail.
The proposed way to handle client logic uses three components:
- the web3-ebakus: loads a web3 instance and extends it with web3 specific functions that allow you to access data stored in ebakusDB
the wallet-loader library: loads the ebakus web wallet in an iframe and provides an interface between your dApp and the ebakus wallet without giving you access to your keys. This method of loading the wallet allows many dApps share the same wallet when running in the same browser
Safari browser: Sharing the same wallet accross dApps is not supported (using its default settings).
the ebakus web wallet hosted by a third party or yourself. Allows you to interface with the ebakus blockchain, send transactions, call contract functions and write data to the ebakusDB
If you already have a dApp running on ethereum or you are following a tutorial written for ethereum this article about migrating your ethereum based dApp to ebakus will be usefull.