@Turtley McTurtleton McDrizzle Thanks for doing the interview. I wanted to talk today about ForkMaps, and what forking means to the community, and why it’s worth tracking.
Turtley McTurtleton McDrizzle
The forkmaps.com story goes something like this… A couple of months ago, RockSteady said he wished someone would make an updated version of the fork timeline on the CryptoNote Wikipedia page. Turtley McTurtleton looked around a bit, didn’t find anything that was being maintained, and had only one response… “Hold my beer.” “I’m on it.” The timing was just right. I was evaluating frontend JS frameworks for an upcoming work project, and rather than writing some contrived “hello world” sample, I used forkmaps as an opportunity to test a handful of frameworks in a real-life scenario.
That’s really cool. While making forkmaps is there anything that surprised you about all these forks?
Turtley McTurtleton McDrizzle
I found the general friendliness by the CryptoNote community a little surprising. I’ve ventured into many discord servers either looking for project details, or advising someone to restore license headers, and I almost always receive a warm greeting.
Tell us a bit about the tech behind the project and how it all works. I noticed the front end got noticeably faster to load recently. Can you talk about that a bit for some of our nerdier readers?
Turtley McTurtleton McDrizzle
I used Vue.js for the frontend. I wrote it using Vue first, then rewrote it using React, and then messed around with a handful of other frameworks/libraries. I’ve used AngularJS and React quite a bit in the past, and to me, Vue is the perfect marriage of the two.
The site has very few dependencies. I used three Vue packages (base, vue-router, vuex), axios for HTTP requests, and echarts. I didn’t use a CSS framework, so design took me forever, but taught me a lot.
Turtley McTurtleton McDrizzle
To tackle performance, I cleaned up a lot of my JS, replacing a lot of nested functions with array reducers. I added a few CSS transitions to smooth out navigation, added loading indicators (which you should almost never see), and threw in some other UX tricks. Other than the fork map page, my improvements were mostly about perceived performance. You can make something that’s actually very fast, feel slow through clunky UX, and that’s what I’d done with my first attempt.
On the map page, I switched from vis.js to echarts, which is much more UX-friendly.
That was a lot, and I promise I’m almost done.
On the data side, all of the CryptoNote coins live in a separate git repo, as individual coin files to make them easy to manage. Whenever there’s an update, I run a gulp task to combine them into a single json file, which forkmaps.com pulls directly from GitHub. This way, it’s trivial to add additional coin families in the future.
That’s really cool, what do you plan to add to it next and what kind of helpers are you currently looking for?
Turtley McTurtleton McDrizzle
Next I’m working on a timeline representation similar to the example you initially showed me. Someone’s working on the 200k TRTL bounty for adding start/end dates to all of the coins as we speak. After that, I want to do max supply, emission curves, primary emission length, and possibly current supply. That one’s been requested a lot, and I think it’ll make an interesting chart. Most coins seem to have a primary emission measured in decades, while Nerva is only three years. I’m always happy to send TRTLs to anyone who contributes data or ideas.
That’s great that you’re including the community in this project, and even chipping in bounties for people who are helping out. With so much exposure to all of these different forks, surely you’ve come by some really interesting ones. If you don’t mind, let’s run through a few of the more memorable ones to you: Which fork has the best logo in your opinion – What is the most interesting fork – Which forks do you mine – What’s the worst fork name you’ve encountered – If you made a fantasy fork tomorrow, what would it be called and what would it do?
Turtley McTurtleton McDrizzle
I like logos that don’t look like a coin. Some of my favorites are Boolberry, Alloy, Athena, Lethean, Nerva, TurtleCoin, and Karai (not on my site yet, but the logo is solid). Right now, I think the most interesting fork is Nerva. I’m looking forward to seeing what happens when the supply is exhausted in like 2.5 years, and CPU-only mining is the shit. I only mine Nerva and TurtleCoin. I rent some of my miners on miningrigrentals, and I used that income to buy more TRTL. Worst fork name? How about all of those dumbass XMR forks that happened when Monero switched their PoW algorithm? Actually, Sadomi might be the worst. I really don’t think they thought that one through. A fantasy coin for me would be a TRTL fork so I’d always have a reliable codebase and community, and I’d implement a prime sieve PoW component similar to riecoin. I’d call it Turtimus Prime.
Haha that sounds fun. Whats up with Prime Sieve? tell me about that
Turtley McTurtleton McDrizzle
So basically, you have an algorithm for finding prime numbers, or prime number patterns. Many projects have chosen to do something “useful” as PoW, at the expense of cryptographic security. But why not both? Add a secondary PoW step that’s relatively easy to perform, does something interesting, and throws another wrench at potential ASICs.
That’s cool, I think we’ve about got it all covered, is there anything you want to add?
Turtley McTurtleton McDrizzle
I’m glad you asked! Years and years ago, before cryptocurrency was a thing, I had a closet full of crunchers (mining rigs nowadays) working hard on distributed computing projects like folding@home (Team 32!) and BOINC/SETI. Back then, there was no financial incentive to spend lots of money on hardware and electricity, but we did it anyway. Some did it for a cause, some for leaderboard points, but I think most did it for the knowledge and the community. I treat crypto projects the same way. At this point in my life, my time is far more valuable than any amount of hardware or hashrate, and there’s a big reason I spend so much of that time with my fellow turtles. And TurtleCoin is the only project I’ve found that really embodies that sense of teamwork and community that the distributed computing scene seems to have lost to crypto over the years. So to all my turtle-fam, keep up the good work, and stay turtley!
Jerme, I’m glad you did this interview, and I’m happy you’re a part of this community! Thanks for everything you do with ForkMaps and otherwise, and I look forward to what you come up with next!
This is an interview stemming from a shorter conversation in the Discord Chat, and since you guys are interested in how all this is hashing stuff is done, we figured it’d be best to send AngryWasp some loose questions/topics and see what we could learn..
While the CN ASICs were the catalyst to actually bring NERVA to life, I had been pondering the [CN ASIC] situation for some time before that. To me, the main problems with the growing use of crypto were environmental sustainability, the ever increasing network hashrates, increasing centralization of hash power, and fragility of networks due to pool mining diminishing the node count in networks. On top of that, we have the ever increasing commercialization of crypto, where multi billion dollar companies are emerging to feed this newly created beast. So I will now proceed with a rant about each of these issues 🙂
E-waste has in very recent times become a major global concern as a source of pollution and adverse health effects in humans and wildlife. From the mining of heavy metals such as copper, to PCB and component manufacturing processes, to device assembly, pollution is present. Furthermore, the incorrect disposal of electronics results in heavy metal contamination to local environments and adverse health effects to the wildlife in these environments, as well as adverse health effects on the people responsible for the production and disposal of electronics.
Through NERVAs ability to be mined on older hardware and by removing the ability of dedicated hardware to mine the coin, NERVA mitigates the issue of E-waste. Furthermore, scaling up hashing power in a CPU mined coin is more expensive, creating a financial disincentive for users to buy hardware specifically to mine NERVA, further mitigating the impact of E-waste on the environment.
Anyone looking at the evolution of crypto mining over the last few years will have noticed an explosion in the amount of hardware being used for mining. GPUs are sold out around the world and ASICs are being rolled out in increasing batches. This is creating an endless cycle of buying more hashpower to compete with other miners for coins. Besides the E-Waste considerations previously discussed, we are seeing an explosion in the amount of electricity being used to power these networks. It is estimated that Bitcoin for example uses more electricity than the entire Republic of Ireland. That is far from sustainable. NERVA is intended to be mined on the spare cores of your computer. I am mining blocks right now while writing this, with only a minimal increase in the amount of electricity being used by a computer that would otherwise already be running anyway.
Centralization is a major concern for all coins and the consequences are many. Giving too much hash power to an individual or pool increases the risk of a 51% attack, where a blockchain can be hijacked and manipulated for malicious purposes, but it also increases the fragility of a network. If a pool holding for example 65% of a network hashrate goes down, the network instantly loses 65% of it’s hash power, struggling to validate transactions and progress the blockchain. This results in increased transaction times and difficulty in making transactions, causing a loss of reputation to the coin and frustration to end users.
Centralization of hash power also causes the concentration of coin distribution. The vast majority of Cryptonight ASICs are operated by only a few companies in the business of making these devices. As a result, coins mined by ASICs are funneling the vast majority of their block rewards to only a small group of people, effectively centralizing price and distribution control and promoting cartel like behavior among these individuals.
NERVAs model of solo CPU mining maximizes hashrate distribution, making it much more difficult for any one entity to obtain the 51% threshold to stage an attack against the coin, while minimizing the network disruption caused by nodes going off the network. Distributed hashrate also has the added advantage of more equitable coin distribution creating a fairer system for all participants.
The spirit of Satoshi:
It is worth remembering why crypto was developed in the first place. The driving force was to create a currency that could be used by anyone, anywhere, anytime. Across borders, free from taxes, government regulation and monetary policy. Here in Australia, we are currently having a royal commission into the unethical behavior of major banks and financial services. What people have been thinking all along, that banks are deceiving and stealing from the public, has been proven to be true, so we need something else as a society. We need a way to transact with each other that bypasses the greed and corruption of the banking sector, and a way to manage our own money that no government or corporation can lay their hands on.
Somewhere along the way, that vision was lost. Again, corrupted by greed and held at the mercy of an elite few. Only this time it isn’t governments and bankers, it’s wealthy ASIC manufacturers and rented hash services. Hijacking blockchains, stealing coins and controlling their price and distribution through excessive hash rates, well beyond what the average person is capable of. Once again, we have a select few corporations making massive profits acting in unethical ways to deceive and steal from the public.
With NERVA, our aim is to take back control and show that a coin is successful if it is owned by everyone. And by making it a CPU minable coin, we give everyone who owns a computer a chance to collect their own NERVA. A coin dedicated to existing in the same spirit which crypto was developed in the first place.
Finally, there is some conventional wisdom NERVA aims to challenge and some lingering questions regarding the longevity of crypto that need to be answered if crypto is to have any future at all. It is said that a coin needs a large hashrate to be stable. I don’t believe that. I believe that a stable coin comes from a highly distributed network and mitigation of network hashrate variance, by means of a robust difficulty adjustment algorithm and resistance to dedicated mining hardware. NERVA aims to test this wisdom. Monero, and by extension all ￼Monero clones, also have a limited lifespan for mining. This is variable, depending on the emission parameters of the coin, but the fact is that every Cryptonote coin is on a ticking clock. One day, the Proof of Work will be done and the entire coin supply will be emitted. At which point the coin enters its ‘tail emission’ where only a very small proportion of the coins original block reward is released to maintain some inflationary measure to the coin and replace coins lost in the network.
So if conventional wisdom dictates that block rewards keep miners incentivised to mine, and a blockchain needs miners to even operate, then what happens when those block rewards are gone? Nobody really actually knows how the wider public will respond to that, because no Cryptonote coin has yet exhausted it’s emission.
From a market and coin value perspective, what happens to the value of a coin once the selling pressure applied by miners is gone? Again, we just don’t know. But we need to know. Mining a coin is only part of the coin’s life. We need to be able to peek through that looking glass and see what’s on the other side. NERVAs emission is very fast. NERVA will hit the tail emission in about 3 years from the first block, around 1 May 2021. This will make NERVA one of the first test cases to how coins make that transition and what is to be expected in the life after mining.
I ran over to the Discord Chat to grab you guys a snippet of the conversation that covers the technical meat & potatoes for those who don’t want to sign up for Discord.
How does Cryptonight Adaptive work?
Well, to know how Cryptonight Adaptive works, it is first necessary to know how dedicated mining hardware works, and how that is different to a CPU.
A hash algorithm is nothing but a set of code instructions to run. Memory reads/writes, some encryption and shuffling of that memory and that’s about it. Pretty daunting code to read, but it is all essentially just moving the 1’s and 0’s around. So an ASIC works by manufacturing a chip specifically to perform those instructions. Once built, that’s all it can do. If the coin changes the algorithm it uses, the ASIC is effectively dead and can no longer be used to mine that coin. An FPGA and GPU run precompiled code. Under the hood, they are totally incomparable devices, but for simplicity, we can say that they are reprogrammable hardware devices that execute binary code. That binary code is first compiled on the CPU, then sent to the device to be executed. So if the algorithm changes, these devices can adapt.
But the problem is that with conventional coins, the coin has to undergo a hardfork (a network upgrade) to change the hash algorithm and break compatibility with dedicated hardware. This works quite well with ASICs, as their development lifecycle is usually fairly long. So a regular hardfork schedule maintains that ASIC resistance. However hardforks have their disadvantages, the largest one being getting people to actually update. So when a hardfork comes around, there is often confusion and network disruption, as people who didn’t realise they needed to update scramble to get their software in order. And sometimes, updated mining software just isn’t available at the time of the hardfork, adding to this disruption. But this still doesn’t help with FPGA and GPU devices, because they can be updated in a very quick timeframe. New GPU mining software can be developed in a few days. A network simply cannot be updated fast enough to stay ahead of them. There had to be a better way. A way to change the algorithm and break compatibility with dedicated hardware, without the headache of constant hardforking and network disruption. And that is the idea behind Cryptonight Adaptive.
Each time a new block is released, roughly once a minute, the hash algorithm is randomized slightly, effectively creating a new algorithm. A very simple concept in its first iteration, but has thus far resisted GPUs and pool mining in the 3 months the blockchain has been live. There is also CN-Adaptive-v2 in the works right now. I can’t disclose too many details right now but I can tell you it will increase the robustness of the algorithm by increasing the number of combinations in the algorithm, making it harder to cache precompiled programs and disperse random variation further throughout the algorithm to prevent optimizing parts of the algorithm. Overall, it’s is a very exciting time to be working on NERVA and I’m really looking forward to the next step of the evolution.
When I launched NERVA I made one very serious error of judgment. I assumed that people using crypto were tech savvy kind of people. The kind of people that could build a wallet from source, and had previous knowledge of cryptonote to do the more simple tasks like solo mining or sending some coins to the exchange. But that was so wrong it wasn’t funny. Actually, it is a little funny now that I look back on it, but at the time, I was pulling my hair out a bit. Turns out that the majority of users had never solo mined before. So I got 1000 questions like where do I download XMR-Stak and where are the pools and all that sort of thing. People were spinning out cause they never knew that Monero or any of it’s clones had built in mining functionality. So I found myself spending many hours providing support and scrambling to try and get documentation together about how to perform basic mining and coin management with NERVA. I got a bit of help from the Masari community in the beginning (and still do) to field questions and provide some support while I got set up and I will be forever grateful for that.
Note from RockSteady: I had a hearty chuckle reading this part, because it’s so true. From a founder’s standpoint, the community always finds weird ways to hit you with every edge-case bug that can be found and spit out every question and criticism they can summon from the great unknown. I don’t have a solution for this happening, and we get it too, so I guess it’s more of a laugh with a twitch of the eyelid and tears streaming down my face.
I’m not sure why, I should have known better, but I never really expected to have people get on discord purely just to tell me the coin served no purpose and was going to fail. I can’t count the number of times that I got told that the coin would be dead in a week if I don’t let GPUs mine it, or everyone would leave if I don’t start a pool for it. It is almost like people are wishing for you to fail. I still can’t understand that kind of attitude, when we as a community are trying to do a positive thing, with no real regard for personal gain and people want to come and take a dump on it.
The other big thing I have had to overcome is trying to justify the reason for our existence. That takes up a lot of time. I get told continually that without some sort of utility a coin will fail. But why can’t a coin be used for the purpose of sharing an idea, for contributing to the evolution and improvement of the technology? The way I see it, crypto has a long way to go before it is mainstream. The vast majority of people in this country don’t even know how a Paywave credit card works or look in amazement when I use my phone to pay for stuff at the supermarket. What crypto needs is more coins committed to the development of the technology and less coins promising to take over the world and be the next bitcoin.
Overall though, what has happened with NERVA is that I have spent a lot more time working on building the community than I thought, and a lot less time on the coin. But when it’s all said and done, each is just two sides of the same coin (pun intended)
The balance of development & community
I spend a good amount of time on discord with the community, but at the same time, I’ll be testing code, or running build scripts or something else, so it’s multitasking. But then once I get focused on a specific piece of code that needs to be written, I’m gone for a few days and no one sees me. Some people thought I had abandoned the project when I disappeared for a week to write the new cross platform GUI. So it really is hard to break down into specifics. It is also like I said before, two sides of the same coin. But overall, I spend a lot of time in either development of community management. I also work a full time job, So I get up in the morning about 2 hours before I have to be at work. Check discord, answer some questions. Check the servers and make sure they are all still running. Check the block explorer and make sure blocks have been running out on time. Other basic checks like network hashrate, difficulty etc. Just making sure everything is running smoothly (it is by the way). Then I go off to work. Come home and spend at least 4 hours each evening on it. Whether that be looking at code, planning the next update, writing an update for the GUI or discord bot, building new binary releases etc. Basically most of my work days and quite a few of my days off are spent doing something towards NERVA.
I felt it was important to include a few questions about the person behind the keyboard, because for me at least (RockSteady) I get asked a lot of the same boilerplate questions, and sometimes the added context of what makes a person who they are can sometimes fill in the “good parts” that are usually missing from these types of interviews.
I’ve named the next section “The important details” to reflect this. Interviewers, take note..
The important details
Who is AngryWasp?
I have been following developments and the evolution of crypto for some time. I spoke earlier about the unethical behaviour of banks, so it seemed to me that crypto was a good solution to this problem. Just didn’t realise this when Bitcoin was still easy to mine, lol. So I mined a few coins with my desktop and read a lot of whitepapers trying to get an understanding of blockchain technology and how the whole crypto thing actually worked. After looking at the competing technologies, I finally gained my focus on Cryptonote. Totally anonymous and fungible. A good coin for transacting with other people, but also the private nature of the technology makes it a good store of wealth. So I pulled code from just about every Cryptonote coin there was at the time, compiled every wallet to see how they worked, but it still wasn’t enough. I needed a hands on lesson in it. So I figured out how to fork Monero and start my own private blockchain and ran it for a while. Just on my computer, but it gave me an opportunity to set some breakpoints in the code and see how the code flowed. Very insightful.
My learning of Cryptonote was progressing well, and I started to see some problems emerging. Bitcoin was gaining some media attention and with that, the price started increasing. We started getting this secondary market emerging around crypto, selling hashrate, or selling machines for prices that would most likely never be recovered. It was becoming a bit of a concern. Would the egalitarian and Utopian view of Satoshi be ruined in the span of a few years by greed and corruption. Surely not. But things weren’t getting any better. Bitcoin continued into its bubble at the end of last year and an arms race exploded in the GPU market to try and build bigger and better machines to try and out do each other to get coins for prices that were skyrocketing out of control. It looked to me like we were just going to keep blowing up this bubble till it burst and left nothing behind.
So I started to think about NERVA, as a way of building a coin that could just prevent these problems from ever taking root in the first place. But it still took a bit of time to convince myself that it was worthwhile. With over 1000 coins in the wild, is there really any kind of impression I could make?
Then the first CN ASICs hit online stores and it emerged that what everyone thought was a botnet mining Monero was actually ASIC manufacturers mining the coin in secret. The Cryptonote scene was in total disarray. A technology that was thought to be resistant to ASICs had just been proven wrong in spectacular fashion. It was at that time that I decided to bring NERVA to life. It has been a lot of hard work in a short time frame with a lot of late nights and a lot of my wife looking at me disapprovingly at the amount of time spent at the computer, but very rewarding at the same time. Developing a community of like minded people is good to give you some validation that you aren’t actually going crazy and your concerns are shared by others.
But I feel I have digressed quite a bit from the topic at hand.
What previous projects influenced your work with Nerva?
Well, I have always been a coder. My parents bought me a Tandy Color Computer 3 when I was in primary school, and I have been mashing code ever since. I learned QBasic, then C/C++ when Windows 95 dropped on a 100Mhz Pentium processor and wrote a lot of code in those languages. About 12 years ago now, I got some actual qualifications in IT as a multimedia developer and systems administrator, spending a couple of years writing Flex/AS3 content for websites and alike. I left school with both qualifications a year early and went to work for a company based in the UK, working from home. The joys of being a programmer. lol.
I did a lot more Flash/AS3 work for clients like Heineken, the Honda motorcross team, Manchester United FC. Did a lot of backend work on SQL databases web services and alike on Windows for not-so-interesting clients. A lot of time spent on Windows getting intimately familiar with .NET. So then, the Global Financial Crisis came along and wiped out every business that had ever made a bad investment decision including my employer. Probably a blessing in disguise really.
Whoever it is that said you should do what you love for a job is an idiot. It just makes you hate what you love. lol.
So I dropped the databases and web content and decided to work on some more edgy stuff. So since then I have done many projects focusing primarily on C# and .NET/Mono and more recently .NET Core. Things like a 3D game engine, Built a new XML based programming language and IL emitter/compiler for it. Serialization frameworks and many other similar non-interesting work. Also do a lot of programming in C and Spin for various micro-controllers when I feel the urge to design a PCB. Working with NERVA has brought me back to the early days of C++.
Through all this diverse work, and indeed through life in general I have learned one major lesson. I don’t know everything. I know, it sounds silly to have to say it out loud, but there is a lot of hubris in certain circles and programming is one of them. So in learning from that, I spend a lot of time talking with the community, asking for feedback, finding out where people are having problems and being open and transparent with my thinking process and what I am working on. Gives people an opportunity to point out things I may have overlooked or just not realised. Because as it turns out, writing code is only a part of developing a coin. The rest of the time is spent in support, community engagement, raising awareness and being the “public” face of the coin.
Besides the blockchain stuff, what are some of your joys in life?
At the top of the list has to be camping. Just sitting in the bush with a beer and without a computer. Lol. Digital detox. I also enjoy archery; got a Bowtech Insanity for anyone else interested in archery. Can’t miss a target with that thing. I also have a Sherline mill and lathe I enjoy making stuff on and also restoring antique American clock movements.
Not sure I can actually pin down anything in particular. I have a very fortunate life in general compared to a lot of people. I have all the usual things people aspire to, like a family, house, car, all those sort of material possessions. But I also have the freedom to pursue my interests with the backing of a supportive family. There are a great many people who don’t have that, so I just consider myself to be lucky and to have a joyful life.
What is something cool you’re excited to have learned recently?
Well I can’t say I have learned it yet, but I am on my way to getting a handle on OpenCL. I have done a good amount of GPU programming in the past in the form of HLSL/GLSL shaders, but never used a GPU for general purpose computing. I started on this cause I felt like I was at a bit of a disadvantage when it comes to developing NERVA. Perhaps by getting more familiar with the language used to program mining devices, it will better inform the decisions I make to combat them. Got to know your enemy. That gets me excited, but then learning new things in general gets me excited, so maybe I’m just a bit strange. lol
How can we help with the progress of Cryptonight Adaptive and NERVA?
The main thing I need help with is building a community of likeminded people, raising awareness and increasing NERVAs social media profile. While I may be a diversely skilled programmer, I can’t figure out facebook. Lol. I have an account I have never posted to. Don’t have a twitter or any other social media accounts either. What I am writing here is most likely the most public I have ever been on the internet. Might be why I am drawn to privacy coins.
I am fortunate in that we have some great community members stepping up and moderating a twitter and Reddit page, we also have some very talented graphics guys putting ideas together for a new logo and website. All outstanding work, but we could do with a bit more exposure. Follow our twitter, link this, mention our name, mine a few blocks and trade some coins on TradeOgre. Buy some and hodl it for a couple of years. Use NERVA and get involved. Get your friends involved. Fork NERVA and give us a shout out. Even get on discord and tell me I’m doing everything wrong. Doesn’t matter. Growing our community and showing that NERVA is not just another scam coin, not just another Cryptonote coin, that we actually have a reason to exist. That is truly the best way to help out.
AngryWasp, it was a pleasure interviewing you, and thank you for giving us a peek into your project and the work that keeps it going, and I look forward to seeing our communities helping each other. -RockSteady
I encourage any helpers, marketers, artists, and hodlers out there interested in collaborating to drop by the NERVA Discord chat, or the #Nerva room in TRTL Network Discord. Thank you for reading and subscribing 🙂