So, as I was saying before, it’s a little rough around the edges, but it’s now ready for testing and verbal abuse!
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:
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.
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!
It was the last day of the conference, but who could be sad when you have an unlimited supply of mochi and Ramune on hand?
Personally, I think that all soda bottles should be made of glass and include a glass marble that spins around inside. I’m looking at you, Boylan.
But, yes, it was the end, and it was time to catch the penultimate acts of this show, the first of which was Christopher Robinson. He gave a poignant talk about how games can help push Ethereum into mainstream adoption:
I then stuck around in the same room for the next one by Alejandro Machado. He described how people were desperately trying to acclimate to the financial instability of Venezuela, showing how blockchains like Ethereum were now tools to survive an abysmal environment:
And for my last talk of the conference (which unfortunately took place in yet another tiny room with no temperature control), I was particularly excited to attend a session with the ragged, fun-loving EMT (Eigenmann,Markou,Tu) band of the Ultralight Beam project, a.k.a. ULB. I can only assume that Kanye would approve, but he’s always been a difficult one to predict:
In any case, this project was especially interesting since the platform makes use of the Bluetooth protocol and pushes it to the limit. (Something of which I have a little experience and even less hope for myself.) Basically, the goal of ULB was to create an ad-hoc communications network for local phones using only Bluetooth, essentially creating a LAN party for iPhones. Obviously, this kind of solution would be ideal for people looking to evade censorship, surveillance, and restriction of access. (Which could be useful for many people today, especially those who might be protesting oppressive governments.) They explained their case for using Apple platforms, since the current landscape for Bluetooth standards is essentially a heterogeneous mine field in terms of finding reliable standards. Even though Apple does have a walled garden, the guys said that it’s a walled garden that at least works consistently…which I found also to be the case in my experiments. (And even more favorably for my projects, they have committed to their pursuit of local communication, with even more advances to their hardware.)
What does this have to do with Ethereum? Well…it’s a loose connection. You could use this protocol to synchronize a side chain transaction (of which could happen in a third-world country with little Internet connectivity) with the Ethereum mainnet chain, where one phone could use the ad-hoc network to relay the transaction to a phone with Internet connectivity. Granted, that’s an unlikely scenario for this project…but I was still glad that they got the opportunity to demonstrate such an awesome example of daring ambition. I hope to read more about it in the near future.
After that, the rest of the day was generally quieter, especially as people were scrambling to flee the conference and Japan. I couldn’t blame them, though: Typhoon Hagibis was sure to make a mess of everything in the next day or two. But that left me more front row seats for the closing show. In place of the usual sing-a-long in times past, the conference planners decided to embrace their hosting country by showcasing their dancing talent, performing the traditional Bon Odori dance with the accompaniment of a laser light show. (I’m fairly sure that the laser light show was intended to be a distraction from the tangle of spastic limbs on the stage.) In any case, it was a refreshing change of pace, though I’m not sure why we were performing a dance for dead ancestors. Perhaps my dead grandparents are fascinated by decentralization? Who knows.
And that was it for the conference. It had been a fun week, and my curiosity about several different projects had been piqued. (Since I live in my own virtual bubble, I likely wouldn’t have gotten to know about them, without being at the conference to talk with their creators.) But it was now time to move on, since I had a whole itinerary for Japan waiting for me outside of Osaka. That was, if Hagibis didn’t get me first…
It was great to meet you, Osaka. I hope to come back again!
I know that both Microsoft and Richard Stallman have gotten a little older and a little wiser…but I certainly never expected a meeting of these two minds.
Plus, there’s another addition to the family. In order to demonstrate its abilities when integrated into web services, there’s also now the new project WonkaRestService, a ASP.NET REST service that showcases how to use the Wonka library. Perhaps, one day, it might even become an Azure Logic App Connector. I know, it’s a lofty goal…but let a kid dream.
Most of the time in tech, you can stand on the shoulders of giants and reuse great works to your benefit, whether those things be algorithms or engineering methods. But, sometimes, as you venture towards the edge, you realize that you’re now somewhere completely different. You find yourself floating in some unknown ether, and you need to reorient yourself to this new dimension. And the more I play with the Ethereum platform, the more I find myself in that position.
For example, when I first started to create the Wonka rules engine, I had a few plans in mind, with one being to possibly use the Rete algorithm within the project. After all, it provides an efficient solution for a dynamic situation. Specifically, this dynamic situation could be one where a rule at the end might change the data, and then the whole set of data would need to be reevaluated by the rules due to that change. In this case, the Rete algorithm provides a performant method for this possibly recursive set of reevaluations. But that’s in the normal world, not the Ethereum one.
Within most standard computing, there’s minimal cost to using a system’s resources. At worst, you’re paying a cloud provider for cycles; in order to run a limited set of rules, you’re still talking pennies. But in a blockchain environment like Ethereum, where you have a massively distributed database of decentralized shared resources, every execution is an expensively coordinated effort. In order to change the state of the system, the cryptocurrency of the system, Ether, is used to cover the cost of a transaction, which is described as the ‘gas’. And even though the market value for Ether keeps sliding down, it still means that every rule that changes the system is another line item on your ‘gas’ bill. That’s difficult to predetermine since it’s always based on context. Yes, you can run your own private Ethereum blockchain within your own network (instead of the mainnet), and that means you’re not paying real Ether at all…but, in the end, people using blockchains generally still want accurate measures of impending execution.
Which brings us to the ultimate question for anyone using a rules engine within a blockchain like Ethereum: how much is this damn thing gonna cost me to run? Since the answer could be “a lot”, we have to abandon our beautiful, time-proven algorithms and go back to the drawing board. Which is why when you’re dealing with nascent platforms, you have to go back to KISS (i.e., Keep It Simple, Stupid). So, in this MVP version of a rules engine, I did just that, creating a straightforward implementation that just gets the job done. In this current state, its destiny will more than likely be as unwept, unhonored, and unsung. However, at the very least, such a prototype can be used by others to evaluate and perhaps validate the existence of a rules engine in this new space. And, maybe, just maybe, it can serve as the first iteration of something that will eventually become worthy of note.
On a side note, it turns out that getting a ticket to DevCon is a lot harder than I thought.