New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

Hedera: Leaderless dApp Development

Ethereum DenverMon, Oct 9, 2023, 12:00 AM

As a leaderless, Proof of Stake (PoS) layer 1 network, Hedera is the platform of choice for high-performance applications. With low, predictable transaction fees, robust security, and scalability, developers feel confident delivering successful Web 3 solutions on Hedera. Our consensus mechanism eliminates the need to deal with mem pools, ensures fair ordering of transactions, and improves confirmation times by using continuous transaction execution. Join this session to learn about Hedera’s journey to EVM equivalence and the unique services available for migrating to Hedera. This is an essential event for any developer looking to build on a network that ensures your dApp is reliable, cost-effective, and fair to users.

Transcript

Okay, thank you guys. As the MC said, I really appreciate you guys getting up early and coming to my presentation. This is a big request on a Saturday at 9:15, so I really appreciate it. Um, I usually like to start my talks with a slightly thought-provoking quote. And this is a quote that always surprises me a little.

At first glance, it seems very simple, but this is something that often as a community, we can get wrong. So, I'll give you a little context before I get into the main topic. Web 3 is, you know, bigger than just one chain or one network. And often, the tribalism we see in Web 3 actually undermines the success of Web 3 for all of us. And only by working together can we lift each other up, advance Web 3, and make us all win.

So, I liken it a little bit to when someone buys something. It can be anything . Let's say a car. If you have already selected some cars that you like, then you go to the car dealer. If they suddenly start bad-mouthing another brand you were looking at, then you go to another dealer, and they bad-mouth that other brand too .

As a buyer, you will feel very confused. You wouldn't want to get involved, would you? So, I see it as a bit like Web 3. If we're constantly tearing each other down, it's not going to give people the confidence to join. So, keep that in mind.

And as I move to the next slide later, I 'll tell you more about how Hedera plays a role in that. I'll introduce myself a little first. I'm Matt Woodward. I'm the head of developer relations at Swirlds Labs for Hedera developer relations at Swirlds Labs for Hedera . I am very open if you want to connect with me whenever you want.

Basically I am a full stack developer. I have been in this field for more than two decades throughout my career so far. And that includes software architecture as well as software integration as well. I also have experience running my own company and building my own startup. So, in terms of software development, innovation, and strategy, it's a time-tested field for me.

So time-tested field for me. So , I can help you. Today, I want to talk a little bit about cross-chain or multi-chain development. Hm, I know from being in this field for quite some time that developers want to build cross-chain, and that arises from a variety of needs and desires. Hm, maybe just to reach a new audience.

Hm, maybe to migrate completely to the new platform. You may be working with channel partners you want to connect with, who are working on different chains. Or simply put, you may only want to take advantage of very specific network benefits. Now EVM compatibility, and even more so equivalence, will be key for developers to do that in web 3. So, Hedera's journey in this regard started over a year ago, when we migrated our EVM to Hyperledger Besu EVM, which allowed us to maintain parity with major Ethereum evolutions, such as the EVM container format, op code, and pre-compiled contracts.

We went a step further by integrating our own token service into the EVM as well. So, our token service is known as HTS or Hedera Token Service. And that means you can essentially treat tokens through the EVM in exactly the same way you treat Ethereum tokens today. So ERC20 or 721. Finally, when we did the integration, we also increased the performance to 15 million gas per second.

That gives us about 350 TPS specifically for smart contracts. Now, I want to highlight that there is a balance here between having the ease of deploying smart contracts using Solidity on an EVM-compatible smart contract service like this and getting that kind of performance. There is also an option in Hedera, if you want higher performance, you can use our native service . The service currently operates at 10,000 TPS and is often a faster way to access our network. So I'll share what I mean by that so you get the context.

So this is the Hedera network as it stands today. And the network service you see is right in the middle in bright pink, so it's hard to miss, right? We have a consensus service there that provides you with verifiable timestamps and event ordering, and it can be used on any web 2 or web 3 platform. Uh, we have our token service and that covers everything related to fungible and non-fungible tokens, token management, like creating, minting, transferring, burning tokens, everything you normally do. And on the other hand, we also have smart contract services that are compatible with EVM.

It all runs on top of the hashgraph data structure and consensus mechanism we currently have on our mainnet. And of course, it's clear that the applications we see today are built on top of it. So, the original services I mentioned earlier are basically consensus services and token services. The service can run smoothly on 10,000 TPS and I would say it is the fastest and cheapest way for you to use our network. That said use our network.

That said , it's perfectly reasonable that those services might not be the most convenient option when you're coming from a cross-chain. So, what we do at Hedera is serve JSON RPC API calls through which many tools, libraries, and wallets will access our network and EVM. And we do that by creating a JSON RPC relay interface that basically sits on top of our network, if you will. So, when a transaction comes in, it's either wrapped up as an Ethereum transaction and routed to our mirror nodes , where they might look up information from the ledger history, or sent to our consensus nodes, where you might write the transaction to that ledger. This layer was created because there are basically differences between the two ecosystems .

And I want to share some of them with you so you can understand what that means. Let's start with network access. Behind the scenes, Hedera uses gRPC for communication between its nodes. If you haven't checked it out, please do. It is an amazing performance protocol .

That's why we chose it. But of course, most of the Ethereum world is like apps, wallets, etc. , using JSON RPC as their communication protocol. And there are nuances related to that that some of those apps rely on. Likewise for us from an account perspective, accounts in Hedera are not tied to keys.

What I mean is that keys can actually be rotated on your Hedera account, and beyond that, there are quite a few other complex variations that can be done as well . So, you can have a multi-signature account where you may need more than one person to sign a transaction. You could have a threshold account where you might need three or five people to sign it, for example people to sign it, for example . And you can also have complex signature structures that might reflect the approval structure in the organization and things like that. And, by default, it has no equivalent in Ethereum currently.

So tools like MetaMask won't really understand what some of those protocols look like. It's important to ensure that from an equivalence and cross-chain perspective, we have an interface that allows those tools and libraries to interact with Hedera in a way that's familiar to them. Obviously that's part of what it does for us in bridging the gap between those differences. With EVM-compatible smart contract services and JSON RPC relays for interacting with cross-chain transactions, the door is wide open on Hedera for you to see, learn, build, explore, and most importantly, leverage the network's benefits as per your needs. So, I want to talk a little bit about what that might look like and what the impact might be.

In terms of capabilities, Hedera has provided you with the ability to build reliable and cost-effective applications that are fair to users. Someone has already discussed it in terms of predictable low costs . So, our transactions are pegged to the US dollar. That means that even though the price of our tokens or coins may change, your operational costs will not. So, as an application developer, you can more easily predict the costs that will be incurred during the implementation and operation of the application, which is very important for those of you who look at it from a business perspective to ensure smooth cash flow .

Of course there is high transaction throughput. I've mentioned it before. From an application development perspective, it's about ensuring there's room for you to scale and grow. Everyone wants their app to be successful. They want more users and more usage.

If that is your goal, you need to make sure you have room for that growth in the network you choose. We have the capacity for that growth, as I have said. And finally, with ABFT security and fair ordering, you can ensure your app transactions are ordered fairly. So, I'll talk more about that in a moment. I want to discuss how this might look different for you as a developer.

What are some considerations that might differ? Technically, to start with, there is no mempool or transaction pool in Hedera. This is not necessary when transactions are sent to nodes. Transactions remain in their original positions when received before going through consensus. Furthermore, there is a fair ordering of transactions as I mentioned in the previous slide.

So, transactions that go through consensus are sorted using our virtual voting protocol before being executed our virtual voting protocol before being executed . So, you don't need to bother increasing the priority of transactions to pass consensus and successfully enter the ledger. The transaction will be executed fairly. All are treated with equal priority and are therefore ranked fairly in the order in which they are received. Then one thing I want to note before discussing the next part is regarding fair transaction sequencing regarding fair transaction sequencing .

If you think about it in terms of the logic and code you might build into your application to manage transaction priorities, that won't be necessary in Hedera, and in my experience as someone who has written quite a bit of code, less code is better. So less code is better. So , that's a good thing. Now finally, there is continuous transaction execution . This is a very important point because Hedera is a leaderless network.

In that sense, this network allows transactions sent to nodes to be fairly sorted through virtual voting and then executed immediately afterward. So, you get continuous transaction execution . This means you get fast transaction confirmation times , usually 3 to 5 seconds. That's especially important for those of you who might be building high-performance use cases that require responsiveness. Think about games, think about mobile apps.

You don't want users or customers waiting for a response and wondering what happened. So, you also get those benefits in our network. Now, why should you care about these things when building an application? When applications can achieve sustained, decent, and consistently high throughput, it means disruptions in your customer experience can be minimized. All the problems that occur when there are a lot of customers using it and the system starts to crash will disappear.

That's quite interesting, isn't it? So that means you can focus on this. Customer experience, the things that bring people to what you build bring people to what you build . You can ensure they have a great experience and enjoy what you give them. It is the most important part and the most valuable time you can spend on what you are working on.

The next part is that because of what I have shared, you don't have to pay high fees to increase the priority of your transactions to be accepted by the network for fast processing , so you can provide a great customer experience. Simply put, you pay less as a developer, your customers pay less, and they will essentially use your app more often. And finally use your app more often. And finally , as I said, you can guarantee a fair order. So, why is justice important?

Uh, I probably don't need to go into this too much, but essentially, once you introduce some of these concepts into your application. So think about ethics when you're dealing with queues or service lines, legal with audit items or compliance issues, inventory when you're managing various items going through the supply chain perhaps or their availability in stores, and then anything that's time or cost sensitive. then you and more importantly, your customers will care about having fairness in the equation . Well, basically, no one likes it when their sense of social justice is constantly being disturbed. If you are a developer and have an app out there and haven't heard complaints like this, I can assure you it will happen.

Once you start scaling and growing your business and have enough customers on your platform, people start finding things that aren't quite right in your app. Like, you know in your app. Like, you know , they were next in line, they thought they were going to get it, they didn't get what they thought they were going to get, they went to great lengths to get a ticket or mint an NFT and it didn't happen. So it's really important from a fairness perspective that you consider that if you don't like it in your experience on web 3 as a builder, as a developer, then customers certainly won't like it either. Um, and that's really important to keep at the forefront as we see more and more large-scale adoption of web 3.

Now our journey um as Hedera from an EVM equivalence perspective as a network gives you the option to leverage building high performance applications as we've talked about. The application is leaderless, fair, and executes transactions in a consistent and fair order. And that concept is becoming more and more important as more people move into web 3. See how smooth that was? I know you all loved that part.

Okay, I just wanted to summarize because I can't talk all day even though I'd love to. Hedera is clearly on its way to EVM parity. We already have an EVM-compatible smart contract service, meaning you can write smart contracts in Solidity. You can take advantage of our existing 350 TPS and our EVM-compatible smart contract services . However, note that if you don't need the complexities of a particular smart contract, such as those used to run a DEX, there are native services you can access directly that are faster and cheaper.

We have a JSON RPC relay that enables applications developed specifically for Ethereum, along with wallets, tools, and libraries that use only JSON RPC. Okay. And finally use only JSON RPC. Okay. And finally , Hedera uses a leaderless consensus mechanism that ensures your DApp is fair to users ensures your DApp is fair to users .

So, where I stand now is I invite you to come and talk with us at booth 555. If I've touched on something that inspires you or raises questions for you, I'd be happy to continue the conversation there. You are also welcome to access the resources I have displayed on the screen right now regarding the getting started section of our website which will guide you. You can join our community on Discord. And if I've inspired you enough to start building on Hedera and give it a try, please grab your testnet account .

The account is routinely replenished with up to 10,000 HBAR tests every 24 hours. That gives you plenty of room to test out something you might want to bring to the network or just to experiment with. Finally, I want to thank you for your time this morning and for coming so early once again. I really appreciate it and I'll stop here appreciate it and I'll stop here , but I'm happy to answer questions after this talk. Thank you very much.

Okay.

Automatic transcript — names and jargon may be misspelled.