Magic Marker on a Pig

Well, I’ve been working on Wonka, a rules engine that uses Nethereum to integrate with the Ethereum blockchain, for about 2 years now and…2 years?! How did all that time simply disappear?! In any case…

After playing with it for so long as just code and libraries, I figured that it would be more interesting if there as a GUI (i.e., “a shiny”) to showcase what it can do, on a very elementary level. So, I created a rules editor (i.e., this rudimentary Blazor app) that uses Radzen controls to demonstrate a few key things:

  • How to download a Wonka rules file through IPFS
  • How to instantiate the Wonka engine
  • How to traverse a RuleTree and view its contents
  • How to dynamically add new rules onto a RuleTree
  • How to export a RuleTree into XML form
  • How to execute a RuleTree with a data record
  • This version of the Blazor app just showcases how one can use Wonka to run the rules in the .NET domain and how it could be extended (especially in utilizing Nethereum). Later, I hope to show more advanced functionality, like how one can serialize the RuleTree to the blockchain and then invoke it on the chain.

    Wonka is a little rough around the edges, and this Blazor app is a little clunky…but, together, they get the job done!

    Or so I like to think.

    I See What You Did There

    So, back in Osaka (which perhaps might be the last DevCon ever due to being the end of days), I had the pleasure of watching a lecture about Nightfall, and Paul Brody and crew really got me excited about how it could invigorate the mainstream adoption of Ethereum, especially through enterprise. But since it wasn’t a packed house, I was a little worried that anyone else cared all that much.

    Well, I couldn’t have been more wrong! As it turned out, John Wolpert (of Consensys) and Yorke Rhodes (of Microsoft) had been talking to Paul Brody and team the entire time, looking to expand the theme of Nightall into something even bigger. And after months of very sneaky, sneaky cooperation, they finally unveiled the work of their collective efforts: the Baseline Protocol! Basically, similar to Nightfall, it’s a way for two companies to use zkSNARKs for private transactions, specifically to create a master agreement between parties and then submit purchase orders (based on volume discounts, etc.). And since it’s been adopted by OASIS and has two steering committees, this thing just got very real!

    I haven’t had time yet to really read the work and watch the instruction videos, but I can’t wait to dig in and find out more!

    ONIX Data Library: The Reckoning

    Yes, here it is, the exciting sequel to the ONIX Data library, starring ONIX 3.0!

    Well…maybe it’s not that exciting. Actually, on second thought, it’s the complete opposite of exciting. I guess that it’s still hard to get excited about, since it’s for that niche segment of developers (like me) who deal with both C# and ONIX. In any case, as opposed to the previous version of the library (which supported ONIX 3.0 only minimally), the new version of the library handles much more of the 3.0 standard, and for me, it’s been a labor of…love? No, that’s too strong a word. Labor of…amusement? No. Hmmm…how about labor of scratching an annoying itch? Hmmm…yeah, that fits. Let’s keep that one.

    So, for those scant few from last time, we’re gonna throw another one of those crazy ONIX parties! And those 3 people who put a star on the Github project, you’re invited too! It’s gonna be insane!

    Nethereum.eShop: A Practical Template for the World

    So, it’s been about two years since I started getting involved with Ethereum and since this blog has turned into mostly posts about Ethereum. And it’s approaching two years since I first met the prolific Juan Blanco and since I first got involved with Nethereum, becoming its self-proclaimed mascot. (I just have the face for it.)

    In any case, the Nethereum team has decided that it’s high time to actually show how integration between eCommerce and the Ethereum mainnet is totally possible, especially with Nethereum. And maybe even with the help of Wonka! And how exactly are we going to demonstrate that? By building a working template that’ll give Microsoft’s IBuySpy (for the older folks) and Blazing Pizza a run for their money. Of course, it’s just starting out now, but we hope to have something viable within the next few months.

    So, I present…the eShop Store!

    Of course, we welcome all contributors, so any Ethereum developers are welcome to join the party! Even any possible names for the store are welcome. Maybe it should be called Buterin Books?

    Hmmm…we might need permission for that one.

    DevCon 5, Super Happy Blockchain Time: Part 3

    So, after a casual but uneventful time that was the day before, I woke up with higher expectations, since I had been looking forward to a session of the following day. (Though my expectations for the venue’s WiFi were next to nothing, as much as I had wanted it to be different. Why is it that every tech conference ends up with the WiFi crashing and burning within the first few hours?) This time, it was a presentation about Nightfall, a project by Ernst & Young to help businesses operating within a private chain (i.e., a consortium) anonymize those private transactions when publishing them on the public chain. Since Ernst & Young has done significant Ethereum projects in the past (like the one for XBox publishers), it makes sense that they would pursue this one.

    I love the idea of this project since 1.) it helps businesses embrace the idea of public blockchains while keeping their trade secrets hidden from competitors and 2.) it still ultimately leaves an auditing trail. Since most enterprises are still apprehensive about trying something new like a blockchain platform, these kinds of projects are necessary as the potential bread crumbs that will entice companies to follow. Of course, you don’t have to listen to me. Instead, you should listen to Paul Brody, the leader of the project who presented his team before they took over and helped explain the inner workings of Nightfall:

    And if you want me to explain the zk-Snarks that enables Nightfall, to detail its mathematical complexity, then I would instead tell you that it’s magic born of fairy dust, because that sounds more comprehensible to me. In truth, I do understand it on a superficial level, but I lean heavily towards the theory of fairy dust. After the lecture, I did speak with a couple members of the Nightfall team, describing my own project to them. If you were to ask them about my project, they might also suggest a dust or powder inspired me to even build such a thing. All in all, though, it was one of my favorite presentations of the conference.

    After that, I quickly made my way to the top via the elevator (since the conference essentially was split between the basement and the top floor), so that I could learn through an interactive session about a potentially useful tool. If you’ve ever deployed and tested Solidity contracts to a local Ethereum client, then you know how annoying it can be to restart the node, deploy the code, and reintroduce the lost state, every time that you need to make a correction to the code. Wouldn’t it be great to have hot swap capability, so that you can deploy and test the code without all that hassle? Well, that’s what OpenZeppelin’s Igor Yalovoy set to fix, as he described in his session:

    I liked what I heard about the Solidity Loader. When I need to test the Wonka contract again, I might take that for a spin.

    And just when I thought that something like zk-Snarks was complicated, I tried to test the boundaries of my mind and follow Karl Floersch’s lecture about the implementation for Plasma and Ethereum 2.0:

    That proved to be a mistake, since my vision went kaleidoscopic at one point while trying to follow along. Though, I will give it to Karl: he did warn us at the beginning that none of us would follow it. I argue, though, that he should have warned us about the possibility of seizures or passing out.

    And even though Mr. Floersch is obviously very bright and optimistic (of which the latter is alien to those of us with grey whiskers), he and 90% of the attendees have that rosy hue of youth, which is disheartening since it reminds me of my imminent death, hovering and chuckling over the nearby horizon. So it was nice to hear a lecture from someone even older than me, someone that I even read about it in college: David Chaum! Now, there’s a seminal OG in the realm of cryptography and computing in general! As the creator of DigiCash who also wrote about blockchains 35 years ago, he was truly a man before his time. So, it was cool to hear what he’s working on now, which turns out to be a cryptocurrency for his blockchain platform Elixxir that supports privacy-focused messaging, payments, etc.

    If I even get to that age, I hope to still be going strong like that.

    And I ended the day with a talk from the face and brains of Consensys, Joe Lubin:

    For the most part, much like Buterin’s talk, it was a general update of the Ethereum ecosystem. But, more importantly, he ended his speech with a collective goal for the Ethereum community: to have a million developers working on Ethereum projects. A million! I mean, it’s possible…but…man. Well, I guess that I already have my New Year’s goal for 2020. Bad news for my friends, though: they’re gonna have to endure a verbose sales pitch, whether they like it or not.