Moments With KP
By Kenneth K.
This article is an excerpt from our March 11 Weekly Update and you can read its entirety here .
KP is a known figure in the community for his deep knowledge about all things technical and Elastos, and he is the author of the new technical spotlight series. As KP frequently spouts off priceless information in a casual way, our team feels that much of it needs to be shared with the greater community. Here are some of KP’s more recent discussion points and contributions.
As mentioned in the intro, KP has written an extensive look into Elastos Sidechains and how Elastos takes on the challenge of scalability in blockchain:
Have you wondered how you can submit bug reports to the Cyber Republic?
Think you can’t set up a PrivateNet in under 30 seconds? Think again.
Demo for Developers: Elastos Private Net — Mainchain, Sidechains, Arbitrators & Restful Services:
Trinity Demo: Trinity Demo: Elastos Runtime, Toolchain, Browser, DApp Lifecycle
“Nothing is stored on Elastos Carrier Nodes. Elastos Carrier is peer-to-peer communication that relays data from one point to another in a decentralized manner utilizing the nodes that are part of the network. Elastos Hive (a modified version of IPFS) will store data, but also in a decentralized and encrypted manner. Hive and Carrier are two separate networks. Elastos Blockchain is another peer-to-peer decentralized network that is used for getting consensus in a decentralized manner. This includes payments between individuals and/or running smart contract logic, or just recording critical data on-chain. Most data will, of course, be stored on Hive which can be considered ‘off-chain’. In this way, Elastos utilizes the best of all worlds: blockchain network, carrier network, and hive network, all of which serve three very different purposes.”
Content is distributed by utilizing Elastos Hive. If you know how IPFS works, that’s how Hive works, too. (Featured in our Weekly Report)
Let’s say you have a 10 GB file, and you want to store it on Elastos. Hive takes that 10GB, splits it into several small parts, and saves each part to a different node which means all 10GB are never stored in one node or one server. Yes, you can use Elastos Carrier to build your own custom Network Attached Storage (NAS) that runs in your house, but that’s a different kind of app that anyone can build on top of Elastos Carrier. Most apps used for business purposes will utilize Elastos Hive.
You can build an app and a NAS type service on any computer or device behind your home router with no public facing address. You can use Carrier to do this. So when you access your files on this NAS, all your communication channels are protected and relayed using Elastos Carrier. Carrier does the heavy lifting and automatically finds your device behind your home router. This is what makes Carrier so powerful; this app can be used anywhere in the world, and you can still access all your file from anywhere — no VPN necessary.
Elastos Hive itself is a distributed and decentralized storage system where big data like movies, music, or even user data can be stored. The nodes in the network secure your data in a decentralized manner, so while your NAS type home storage built on Carrier can be used for personal use, it’s not very scalable to business use-cases since your home bandwidth is not enough to cover a huge number of users. In that case, you would use Elastos Hive.
Then, there are other services built on top of Elastos such as Titan, which is a decentralized content distribution network. You pay some fee to use their service, and in return, you use their infrastructure that is distributed all over the world and helps in caching large content. So, whenever a user tries to access a file, they don’t have to wait for a long time to download the content. Instead, the networks takes care of all that so you load your content fast without a lot of downtime. Anyone can build services like these on top of Elastos Carrier, or on top of Hive, or on your own network hooked into Elastos Ecosystem. Titan is just one example because Elastos and Titan are partners. Top Network is another example.
The Elastos platform isn’t about providing interoperability between public blockchains such as Bitcoin, Ethereum, Ripple, etc. Elastos has never once claimed this. Instead, the platform is about utilizing a main chain-sidechain architecture where you can port public platforms like Ethereum, NEO, etc. as one of the sidechains of Elastos. In fact, Ethereum and NEO sidechains are already built and will be released next month. Dapps who are having scalability issues on these chains could have an easy route to just switch to using Elastos ETH Sidechain or NEO Sidechain, and their app would run just fine and in return, they also gain access to other Elastos Services such as Carrier, Hive, DID Sidechain, etc.
Scalability does not come from merged-mining with Bitcoin. It comes from the architecture of Elastos — the sidechain structure. Each sidechain has one purpose, and one purpose only. DID sidechain issues decentralized IDs only. Token Sidechain helps users and dapps issue fungible and non-fungible tokens. ETH sidechain lets devs run ETH smart contracts on Elastos. There can even be multiple ETH sidechains in the future, if enough demand arises. One thing to keep in mind is that just because Elastos is merged-mined with Bitcoin, it doesn’t mean that the two blockchains are similar. In fact, it is only the hashpower of Bitcoin mining nodes that Elastos borrows from the Bitcoin blockchain. If you didn’t know, even the Elastos block time and Bitcoin block times are different. Bitcoin is 10 minutes, while Elastos is 2 minutes. Bitcoin block stores 1 MB while Elastos stores 8 MB. On top of that, ETH sidechain runs on DPoS consensus so the block time for ETH sidechain is 5 seconds.
Sidechains and main chain won’t interact often at all. In fact, sidechains will only interact with other sidechain nodes to reach consensus. The only time they talk between sidechain and main chain is when you want to transfer assets from the main chain to the sidechain, or sidechain to mainchain, which doesn’t need to happen often and is done via the use of arbitrators. So, this is a completely unique scalability solution.
The tox-core licensing issue has been explained before. The switch to GPLv3 is temporary until the team has a long-term solution. The team has already begun development on fixing the core issue, so in the future, Carrier will once again be MIT. I don’t want to put a timeframe on this, but it’s already in development. Once Carrier is MIT again, we don’t have to deal with this issue ever again. The GPLv3 issue is only with Carrier. Everything else about Elastos, like blockchains, sidechains, Hive, etc, are all MIT already.
More on sidechain and main chain interactions. Say you create a wallet on the main chain. You get an address on the main chain, but actually, that same private key can be used to log in to all sidechains of Elastos. This means the same ELA address you have on main chain can also be used on sidechain addresses. As an example:
Main chain address: E1
DID sidechain address: E1
Token sidechain address: E1
So if you have 5 ELA on main chain, your E1 address will show 5 ELA on main chain, but on the other sidechains, it will show 0 ELA. If you want to transfer 5 ELA from one address to another, (E1 to sidechain E2), this is how it happens:
Main chain address sender: E1 has 5 ELA
DID sidechain address receiver: E2. has 0 ELA
After the transfer is facilitated through arbitrators (the 36 Supernodes):
Main chain address sender: E1 has 0 ELA
DID sidechain address receiver: E2 has 5 ELA
The 36 Supernodes are always involved in facilitating the transfer between main chain and sidechain, so they are very important. The Supernodes not only help in finality of blocks for Elastos main chain, but they also help in facilitating ELA transfer from main chain to sidechains and sidechains to main chain. These same 36 Supernodes also run one node of every single chain. So, each of the 36 Supernodes run one node of main chain, one node of DID sidechain, one node of Token sidechain, and so on. These Supernode arbitrators connect the chains together, and they know which chain to send tokens to by API calls.
/api/1/m2d = main chain to sidechain transfer
/api/1/d2m = sidechain to main chain transfer
The parameters for these endpoints are exactly the same, but the API endpoint is different. And of course each sidechain and mainchain runs on different ports in a machine. If you’re wondering how we can create private networks, mainnet, etc. of the same blockchain code, there’s what’s called a “magic number” in the configuration file. If you have the same magic number and the same “bootstrap nodes”, it’ll connect to network A. If you have a different magic number and other bootstrap nodes that also have that same magic number, it’ll connect to network B, and so on so forth. It’s just technical jargon.
As for if there are any scaling issues for these 36 Supernodes, we will have to see, but the footprint of running each node of each chain is very very small, so it doesn’t require much in terms of resources. These arbitrators also help in packaging PoW blocks for sidechains that have PoW consensus, so they aren’t just used for DPoS. The 36 Supernodes are:
DPoS Supernodes that sign main chain blocks for finality to prevent forks.
DPoS Supernodes that help in DPoS consensus for sidechains
Arbitrators that facilitate transfer from main chain to sidechains and sidechains to main chain.
Package and sign PoW blocks for PoW sidechains and send them to main chain node (then Bitcoin mining machines mine them), then the blocks are given back to arbitrators and then sidechain confirms them. This is how we can say that PoW sidechains like DID sidechain, Token sidechain, Neo sidechain, all leverage the same hashpower as the Bitcoin network itself, just as the Elastos main chain accesses the same hashpower as Bitcoin.
Though sharding is completely different in architecture, we could theoretically apply sharding to ETH sidechain in the future. Whatever implementation Ethereum or Neo decides to make on their public chains, we can just port to Elastos. So we take the best of all worlds. That’s the power of open source projects.
And what about CR and Elastos as CR is 100% open source, and Elastos 90% (100% when the infrastructure is completely built)? Well, dapps and utility is the first major obstacle, the second is finding experts in Elastos Core architecture to interpret the information. You can clone a project, but you can’t clone an ecosystem. That’s why partners like Titan, Top Network, and DMA are important. Good luck cloning them all.
Mic drop, KP. Mic drop.
Cyber Republic Social Media
Email: [email protected]