Episode 22: Unlocking Casper's Potential with Odra

Welcome to another insightful episode of the Casper Podcast! In this episode, we sit down with two renowned developers and blockchain experts, Mel Padden from the Casper Association and Maciej Zieliński, the lead behind the Odra Rust smart contract framework. Join us as we dive deep into the world of blockchain development within the Casper ecosystem.

Episode 22: Unlocking Casper's Potential with Odra

Welcome to another insightful episode of the Casper Podcast! In this episode, we sit down with two renowned developers and blockchain experts, Mel Padden from the Casper Association and Maciej Zieliński, the lead behind the Odra Rust smart contract framework. Join us as we dive deep into the world of blockchain development within the Casper ecosystem.

Mel Padden, with over 20 years of software development experience, shares his journey into blockchain and his pivotal role as Head of Developer Relations at Casper. Discover the critical role he plays in bridging the gap between software functionality and developers building on the Casper blockchain.

Maciej Zelenski, an early adopter of Ethereum and a key figure in the Casper ecosystem, introduces us to Odra—a cutting-edge smart contract framework designed to simplify blockchain development. Learn how Odra is making it easier for developers to create robust applications with minimal friction.

We explore essential tools like the Fondant tool for managing local chains, NCTL for command-line utilities, and the Casper Suite's user interface components from MAKE. Discover how these tools are reducing cognitive load and enhancing the developer experience on Casper.

Our guests also discuss the broader implications of blockchain technology, the benefits for developers, and why blockchain is an exciting field to work in. Whether you're a seasoned developer or just curious about blockchain, this episode is packed with insights to inspire and inform.


Highlights:

  • Mel Padden's journey from robotics to blockchain development
  • Maciej Zelenski's early days with Ethereum and the creation of Odra
  • Key tools in the Casper ecosystem: Fondant, NCTL, and the MAKE Casper Suite
  • Reducing cognitive load for developers with Odra
  • The future of blockchain and its impact on the tech landscape


Tune in to learn more about the innovative advancements in the Casper ecosystem and how you can get started with blockchain development today!

Episode 22: Unlocking Casper's Potential with Odra (Transcript)

[00:00:00] Joe Benso: Welcome everybody once again to the Casper podcast. Today we have two esteemed guests I'm really looking forward to speaking with, both of whom are expert developers, and blockchain programmers, working very closely in the Casper ecosystem. And we'll also talk about the new Odra Rust smart contract framework.


[00:00:22] Joe Benso: So happy to welcome Mel Padden from the Casper Association and Maciej Zielinski. Who also has a history in Casper and leading Odra now. Welcome guys. Thanks for joining us today.


[00:00:35] Mel Padden: Good to be here.


[00:00:37] Joe Benso: So I'll start with you, Mel. If you can tell us a little bit about your background, how you got into blockchain development and your role at Casper.


[00:00:46] Mel Padden: My name is Mel, Mel Padden. I've spent over 20 years developing software as a software engineer, and I got into blockchain three or four years ago now, essentially as coming off the back of a robotics project, and it seemed like a fun thing to do. So currently I am head of developer relations for the Casper Association.


[00:01:05] Mel Padden: So essentially I formed the link between the. People developing the software and it's, and its functionality and the people that are most directly using it, the developers who are building smart contracts and applications on top of the Casper blockchain. That's me in a nutshell.


[00:01:24] Joe Benso: I know that that link is extremely important and, uh, speaking of links, Maciej. In terms of developer relations, you're also building out a smart contract framework. Can you tell us a little bit more about how you started Odra and also your background within blockchain?


[00:01:41] Maciej Zielinski: My first blockchain work was around 18. I caught up on the Ethereum hype. So I learned Solidity. I learned how, how blockchains work. That was like super interesting. A lot of people were discussing, “Ah, we need to like move from EVM to Wasm.” So. I thought, oh, that's not good. I let myself, Rust. I let him do the WASM. And at that point, there were no smart contracting positions anywhere.


[00:02:06] Maciej Zielinski: Basically, I was searching for a job and I found Casper that they were doing exactly what I trained for. I got in, I worked for three years there. I led the ecosystem team. You know, it's responsible for writing a contract and making sure that the user experience is good. At some point, I wanted to move even further.


[00:02:26] Maciej Zielinski: I wanted to simplify the process as much as possible. And this is where I started Odra. I formed a small team. And here we are.


[00:02:37] Joe Benso: Okay, excellent. Mel, so from the perspective of the developer relations ecosystem, Odra seems to be a new tool that people can use. What are some of the things in the ecosystem that you're encouraging developers to take a look at now? What are some of the advances taking place, uh, including Odra that you'd like to highlight?


[00:02:56] Mel Padden: Well, It's all about reducing friction, my perspective for the developer in terms of getting up and running on the Casper blockchain and developing your first app and also making it easier and reducing any of the pain points to do with developing adapt, particularly in developing and deploying smart contracts other than Odra.


[00:03:18] Mel Padden: Some of the things that I would point people to would be the Fondant tool, which is very new. We see a lot of potential in it. What Fondant does is it simplifies the task of creating, running, and managing a local chain. Now, why might you want to run a local blockchain, you might ask. Surely the whole point of blockchain is that it's a distributed network architecture.


[00:03:43] Mel Padden: In the test phase of any smart contracts deployment, of course, you need to be able to run it over and again, such that there are no side effects and essentially no gas fees. And so a local net is very useful for that. Also, the process of calling into the testnet is not always as frictionless as we would like it to be in terms of network latency, node availability, node lists, and such.


[00:04:08] Mel Padden: So there's a lot of reasons why it makes sense to have a repeatable and easy way to test your contracts on a local net. So we have a tool which we've been using for some years now called NCTL, and NCTL is the command line utility to do exactly that. Now, some people, don't particularly like using the command line for that.


[00:04:30] Mel Padden: Some people love the command line, but we figured why not? Let's develop a visual tool to allow people to maintain and organize those local networks that they end up spinning up and dropping and spinning up and dropping all through the day. If your development workflow means that you are testing your smart contract several times per day, it is nice to have a tool that allows you to manage that in a visual way without having to use a command line interface or write any code. So Fondant tool, the other major part of the developer experience, which we really should mention is the suite of MAKE tools are the CSPR suite tools, which essentially provide you with a number of services, which are enabling technologies for quickly developing smart dApps.


[00:05:15] Mel Padden: Included in that would be user interface components, wallet integrations, middleware for calling into the Casper Network, all of that sort of thing, which is kind of the scaffolding that a developer needs to effectively develop applications. This is a fairly mature suite of applications and tools. And all of this is listed on the Casper Developer Portal.


[00:05:36] Mel Padden: So if you go to the Casper Developer Portal, you could probably bookmark that and use that as your starting point for finding out the various tools that we think you should be using to get up and running and to make your Casper development workflow much easier, more efficient, less error-prone. You know, there is this whole thing of cognitive load as a developer.


[00:05:59] Mel Padden: You do not want to spend a lot of your time worrying about. The nuts and bolts of the basic things you do every day, because that's essentially the CPU cycles, if you will, that you can then use on developing your smart contracts or your application. So we're aiming to reduce cognitive load as much as possible on developers getting involved with our developing applications on the Casper blockchain.


[00:06:25] Mel Padden: So yeah, Casper Suite and Fondant, and of course Odra. I will leave Maciej to talk more about Odra, but the best way to think of Odra is that it's a layer sitting on top of the bare-bones Casper Smart Contract API, which again reduces friction and gives you a more expressive way to develop smart contracts on Casper.


[00:06:47] Joe Benso: Amazing. And we will link to all of those tools that you've mentioned, Mel. And, and just for a high-level overview, Maciej, maybe you can share with our audience, those who are listening in, and maybe some of these terms might sound foreign to a lot of people, and also even developers. Mel, you talked about, you know, making things easier for developers, blockchain development, smart contract development, on a very high level.


[00:07:14] Joe Benso: Why would a developer want to get started in blockchain? What are the ideals that got you guys interested in, you know, programming, and developing for blockchain? What's the benefit for developers, on a very high level and why would anyone start their careers in blockchain versus simple Web2 development or the benefits of blockchain in your opinion?


[00:07:38] Maciej Zielinski: Blockchains allows you to build different kinds of products that are not possible without it. Like there's a need on the market for that. Look at DeFi already shows a lot of benefits where you can basically manage your money by yourself and things like international transfers. But for the engineers, it's amazingly interesting to build products using this architecture rather than using a centralized stack.


[00:08:13] Maciej Zielinski: That's the main, I think, benefit that we have discovered right now, that we are also moving into directions where, now that we have this layer of blockchains that can provide you the base layer, the truth that cannot be changed and you can build on top of it now and what we are seeing right now, where we can have the products like, for example, Mastodon, the blogging platform or on Twitter, like platform, the central social. Yeah. You own your own data, your own handles, and things like that. I think this is really good that we're moving in this direction.


[00:08:49] Joe Benso: It's really a new world. Mel, you wanted to say, add to that.


[00:08:53] Mel Padden: From the point of view of a developer, I would argue that the attractiveness of blockchain really comes down to the use case, because it's an exciting field to work in. I mean, the central value proposition of blockchain is distributed trust. When the banking system was invented, the value proposition was trust that we had a centralized authority that we could trust to do things right and what blockchain does is take that away from a centralized model and the trust is then placed in the chain and it is absolute and inviolate and that's a, that is a sea change.


[00:09:48] Mel Padden: Because if you try to liken it to something like, I don't know, transportation, I mean, we're moving from a world where everybody had to travel on the train and the train determined what time you left and the station and when you arrived at your destination and all of a sudden now everybody's got their own private car in a way, because we have this distributed trust model.


[00:10:04] Joe Benso: That's a great analogy. And the idea of decentralized infrastructure as well, I'm not a developer, but it's very fascinating to me.


[00:10:13] Joe Benso: I've heard the term looking at blockchain development in terms of Lego blocks and being able to build on top of infrastructure that is put forth and a decentralized, more secure infrastructure as we talk about at the beginning of the episode, the future of the decentralized web, but the web is actually just one part of developing with blockchain.


[00:10:38] Joe Benso: Can you share any particular misconceptions that people may have? Developers may have when they look at some of these disruptive tools blockchain, but it may seem a little complicated to get started. I understand. You both are very focused on simplifying ways to get started. So what are some of the misconceptions that you'd like to clear up for developers, if you encourage them to get started in blockchain development?


[00:11:07] Maciej Zielinski: One of the biggest misconceptions about developing blockchain applications, blockchain systems is about developing smart contracts in general, because what do we see right now is that even though the developing smart contract is a large part of the development, you also have a lot of elements, moving parts that sits outside of the blockchain and any developer can build it, if you have an experience in writing server-side elements.


[00:11:37] Maciej Zielinski: But in general, the larger part of the application is assignments, etc. This is what I see the largest misconception.


[00:11:46] Mel Padden: Do you remember back in the day when everyone was developing a business application in the nineties and they had to write their own database routines? And then at some point, somebody figured out how to abstract that.


[00:11:58] Mel Padden: And the process of developing these apps just became simpler and simpler over time. And these became more developed and you were using archetypes to develop applications. So there would be a standardized way of doing X, Y, and Z. I feel like we've arrived at that point in blockchain very quickly.


[00:12:16] Mel Padden: When you're developing a blockchain app now, you're very seldom writing a brand new smart contract that does something that nobody has done before. You might be using a customized or extended version of something like an ERC 20 analog or things like that. And we have these vocabularies now.


[00:12:38] Mel Padden: Talk about this so that we can talk amongst ourselves about different kinds of smart contract and we can understand what we're talking about and we could have cross-compatibility between these various analogs. So I think that's an important part to understand. For the most part, you're not going to be writing tons of new smart contracts and having to come up with things on your own. And indeed the Odra modules functionality is sort of written with that in mind.


[00:13:07] Joe Benso: That's a great point. So, let's talk about the Odra framework. And it sounds like, this is the scaffolding. These are modules where you can reuse. Maybe Maciej, you can guide us through the concept of Odra and also from the perspective of, let's say, more advanced developers who are used to, as Mel mentioned, ERC 20, the common token standard for the Ethereum ecosystem. Thousands of tokens have been launched using ERC 20s. How can people get started now using Odra? Tell us a little bit more about Odra.


[00:13:40] Maciej Zielinski: What I think is that the success of Ethereum comes mostly from the success of Solidity. Just to even add to that, before Solidity, there were other languages.


[00:13:54] Maciej Zielinski: But they never clicked, for example Serpent, but it was too hard. Then they came up with Solidity, and it clicked, people started using it. You don't even have to write, you can just take a module that already was written, and just maybe change a bit. And this reusability was something that always stuck.


[00:14:13] Maciej Zielinski: It caught my attention and I always wanted to follow the same for Casper and this is because I think that developers cannot rebuild the same things over and over again. You need to have a library of reusable code publicly available that's well tested and this is what we focused on when we were developing Odra as a framework.


[00:14:39] Maciej Zielinski: We want this simple. But we want also this to be reusable. We took a lot of inspiration from Solidity. In terms of how we structure the flow of the code you want to write. So that means Solidity developers will feel like home because their conceptions are the same, in terms of writing contracts, the syntax is different because this RAS.


[00:15:03] Maciej Zielinski: But when you discover Rust and how you can write it, you suddenly discover this huge world of thousands of libraries that are already written, tested, that are sitting out there waiting for you to use them. So, definitely Solidity developers will love Rust. But, going back to Odra, this is what we did and Odra is already reduction ready.


[00:15:27] Maciej Zielinski: And, we already shipped a few modules that can allow you to build on top of them, which are basic implementation of tokens, fungible, non-fungible tokens. And we also focused on access control, which is something that you have to include in every smart contract.


[00:15:50] Joe Benso: Excellent. So Mel, anything to add there on also your experience and developers now having these resources available to them? Where do you see the potential of Casper? As Maciej pointed out, using Solidity, using Ethereum as a foundational inspiration for being able to build on top of preexisting modules. What's the future of Casper in this sense?


[00:16:14] Mel Padden: Yeah. To Maciej's point, I remember when I was starting out in development and my manager once said to me, I want you to be lazy.


[00:16:22] Mel Padden: The best developer is a lazy developer. Cause I don't want guys rewriting code over and over again. What you want to do is reduce the possibility for human failure and the errors that creep in when people rewrite code. And that's what we're going for. So that a developer can be as lazy as possible and still be productive on Casper.


[00:16:42] Mel Padden: Given the functionality provided by the Odra modules, you can be up and running and producing meaningful, not trivial, applications on the Casper network using Odra writing almost no smart contract code to do so. And that is the goal. We probably have 20 more tutorials with usable code in them between the Odra website and the Casper network website.


[00:17:11] Mel Padden: And again, this is on our developer portal. We have a couple of things like a little blockchain election application. It is an election year. So we thought we would have a little fun and build our own election platform using Odra. And so you can use that. If you wanted to see what would happen if you were running an election in your local area and all of that, you can do with a couple of lines of Rust, really using prebuilt user interface components from the Casper suite and the Casper click series of framework components to build the front end to your application.


[00:17:46] Mel Padden: Like I said, it's building blocks. So what we've done is create a layer of abstraction on top of those building blocks to make them just easier to access. Yeah, you'll find it a lot easier to build in Odra than in 90 percent of the smart contract frameworks out there. I would compare Odra favorably to almost anything that I've seen, particularly in the WASM space.


[00:18:07] Mel Padden: And there's plenty of support there for you if that's the route you want to go down.


[00:18:12] Joe Benso: That's amazing. It sounds like we are really on the cusp of some really disruptive technologies. It's really exciting to be a part at this stage of the decentralized web, blockchain technologies and disruptive applications.


[00:18:27] Mel Padden: The things that we're developing right now in Casper R&D and in other associations in the web 3 space, again, I use the metaphor of taking the power and the responsibility. For developing this infrastructure away from a centralized authority, like the old railroad system, putting it back into the hands of the consumer and they're rock solid and they've been tested and we're going to be building robust distributed systems. It's, I think it's an enabling technology for the next phase of Western civilization, quite frankly.


[00:19:00] Joe Benso: Really appreciate both of you guys sharing the insights. I would like to end by giving our listeners a chance to stay connected with both of you. What's the best way to not only get started on Odra and Casper, but if you'd like people to connect with you online as well,


[00:19:14] Mel Padden: The best way to stay connected with the Casper developer experience, including Odra and all of the other things which we've discussed is simply developer.casper.network. That will bring you to our developer portal. And you can reach everything from there, including Odra framework itself. You can dig into the Odra code. It's all out there. Open source on GitHub, a bunch of example projects, a bunch of tutorials. Also, you can connect to this on our Telegram channel, on our Discord channel


[00:19:50] Joe Benso: Maciej, how do users get in touch with you or Odra?


[00:19:53] Maciej Zielinski: As Mel said, go to the developer portal. From there you can go to odra.dev/docs to find a list of all the features of Odra, even more tutorials than on Casper developer portal. And also look at our GitHub, github.com/odra-dev/odra.


[00:20:16] Mel Padden: One thing I forgot to mention just right now is that we have the Casper blog on casper.network. If you're interested in more of the cutting edge concepts that we've discussed on this podcast, if you're into things like zero knowledge and trying to understand what that is and where we're going with that, also verifiable financial contracts, the concept of verifiability and verification of logic is a dense one and it's where you need to have a cup of coffee before you dive into some of these blog posts. But we do have an R&D blog, the Casper research and development blog. There's quite a lot of material up there right now. If you're interested in some of this more cutting-edge stuff and you want to get into that, then go to the Casper R&D blog, which is linked again on the developer portal. You might have to scroll down to the bottom to see the link. It's medium.com/forward-slash-Casper-blockchain. There's some fun stuff on there and some very stimulating conversations to be had off the back of what you'll read on the Casper R&D blog.


[00:21:20] Joe Benso: Thank you, Mel. Thank you, Maciej, for joining us today. We're going to have links to all of these amazing resources that you guys have shared with us today. We are looking forward to opening the world of blockchain development with Odra, with Casper, with all the tools that you guys have mentioned here today. Thanks a lot, guys, for joining us. And we'll see everybody on the Casper podcast once again. Thank you.


[00:21:44] Mel Padden & Maciej Zielinski: Thanks very much. Pleasure to be here.