Ultimate glossary of crypto currency terms, acronyms and abbreviations
The state of cryptocurrency in China. If anyone tells you otherwise, they are lying.
It's been a while since I outlined the state of cryptocurrency in China, but I should probably tell you guys why this is important first: Journalists will do anything to shill you their "news" so they can get their sponsor dollars. Crypto YouTubers who comment on the story without reading the original news story or transpiration of events in Chinese further distort this message. With that out of the way, let's dive in to free knowledge. -Mining is just fine, so long as miners have all of their documents properly registered. The Chinese government thinks, "Whatever, sell this stuff to foreigners. We'll gladly let more USD flow in to our economy in exchange for thin air." -Most Chinese-owned exchanges set up offices abroad, usually in Singapore. Some have dev teams in Malaysia / Taiwan. -The Chinese government hasn't really out-right BANNED crypto ownership as far as I know, but they have certainly made it very difficult to own it. Which leads me to these two points: -I tried sending an APK file for an android phone wallet app to an American buddy of mine and his Chinese-made phone with a specialized Chinese distro of android would not allow him to install it. He sent me a screenshot that showed his phone basically displayed, "Unable to install application." or something similar. -I wouldn't be surprised to learn that Chinese-made distros of Windows, Linux, or Macintosh-specific operating systems do not allow users to install wallets to their desktops either - but I have not verified this. -These last two points can be circumvented by buying phones and operating systems made for foreign countries on China's ebay equivalent, Taobao. -There have been previous court-rulings where bitcoin was recognized as PROPERTY. -My view is that the CCP's attitude is, "Less crypto, less headache. Turn it in to USD and bring it in to China." -I would not be surprised to learn that later down the road the CCP makes a list of present cryptocurrencies that may be bought and sold legally in China in the future. I would only be shocked if bitcoin were not on that list. -It is commonplace for employees of exchanges to get paid in crypto in China. This is usually done with a stablecoin. -I have an undergraduate degree in Chinese and previously worked for a Chinese-owned exchange. This is where my knowledge comes from. -Everything listed here to this point in time should be treated like "law" unless Xi Jinping himself or another government official say otherwise in the near future. Any questions? Fire away.
Small reviews of (I think) all incremental games I've ever played on Android
I don't know if this will be useful to anyone. So I write a line or two about every game I play, and decided to find all the incremental in my game journal and post them here. It starts with the latest games I've played and I think goes back to several years back. One thing I've realized is I have such a love-hate-hate relationship with this genre since I think I've hated 90% of the games and 100% of myself after each incremental phase. I usually angrily stop playing them for a while and restart them again, so this is more or less a journal of addiction, I suppose. THE BEST GAMES I'VE PLAYED ARE THESE (no order):
Honorable Mention: Eggs, Inc The rest: more or less hated it Additional comment if you decide to scan through it, I complain a lot, so it is perfectly reasonable and normal to think, "why the fuck are you even playing these games, idiot??". ------ Time Idle RPG This game was confusing. It tells me the game's resources is time, where you get 1 of it every second, but that's not really something as unique as I assumed. It would have been cool if time as resources meant you used it to deal with something related to time. Maybe time travel? Maybe slowing and speeding time? Instead time as resource buys you stuff like a library. And then you buy a camp or something. Honestly, I wasn't really feeling it. 2 Path of Idling The biggest cardinal sin for me when it comes to incremental is when a game has a lot of features and it just completely throws them all at you instantly. The joy of a great incremental is how things slowly open up and each new achievement feels progress. The game is a RPG game and these are the things that opened up for me in the first few hours. Combat which includes normal fighting, dungeon, raid, boss, PVP (locked, but it just needs an ascend, which I haven't done) Skills Hero upgrades which include Passive (strength, defence, stamina, intelligence), Train, and a huge Tree Town which you can buy workers who get you various things like gold, orbs, knowledge, etc. You can upgrade stuff here. Quest that also includes Perks and Skill quests. Gear which 5 equipment slots, plus craft plus trade plus smelt Also gear for your Pet, which is also another tab! Now, here is the thing. Because I have all of this pretty much instantly, I don't really know which ones are helping me go past a well. How is adding 10 points in strength helping me? Should I have added five in strength instead and five in defence? I have already bought 20 or so upgrades in the Tree, but I have no idea if I am made the optimal choice. There is no real excitement with getting new gear. And so on. The dev has added a lot of features, now it's time to rework the game, and have the features take their time. 2 Idle Slayer The game is like a super simple platformer. Your character is running and any enemy it hits, it automatically slays it. There is no HP, and all enemies die in one shot. Your only active play is jumping occasionally to grab coins or hit the flying enemies. Also, you have a run skill that has a cool down. With the coins, we get new weapons that give us more coins. Enemies give us souls which is used for the prestige system that provides us with an interesting skill tree which provides a lot of choices on the path you want to do in terms of upgrades. So far excellent, however, the game has an extremely serious issue of pacing. The game initially progresses so fast that in the first hour or so, you get almost all the weapons aside from the last two, which then grinds down to a snail pace. You can upgrade your past weapons, but they never really get into play again. Reaching high levels of past weapons sometimes gave me upgrades of that weapon of 10,000% but they still did nothing to my overall coin per second. I think the pacing needs to be fully reworked. It would have been nice to get new weapons after certain prestige cycles, so that every new weapon feels like we have passed a significant wall. The best part of an incremental game for me is to face a wall, and when I finally break it, I feel powerful again for a while. This game feels like this though, powerful powerful powerful powerful WALL........break it....WALL. And so on. I'm still playing it as I want to get some of the skills, but I feel like it could have been so much better. 4 Exponential Idle A very back to the foundation kind of incremental. The premise is that you are a student and working on a formula. There is a neat story where as you progress in the game, your character progresses through university. Each upgrade gives you more and more automation until I reached a stage where I would check back once every 2 or 3 days, click a 2nd layer prestige reset, and close it. Meaning the game was something like 5 seconds of game player every 2 days. I just opened it for this review and realized I had reached the end game. The story wraps up and it tells me "You can take a rest. Travel a bit. Go outside!" NO, DON'T TELL ME WHAT TO DO GAME. 3 Factoid Factoid & Spark should have the same review as they are almost the same game with only small differences. The games are the most basic kind of incremental, where you buy something with resources, until you get the next thing which gives you more of the resources. Both give you upgrades to speed things up, and finally prestige and it's own prestige upgrades. That's it. It's nice little change of pace from all the recent incremental that sometimes do too much, but obviously due to the very simple nature of it, it does eventually feel pointless, specially after you more or less open up everything and the prestige upgrades just keep repeating. 3 Spark Factoid & Spark should have the same review as they are almost the same game with only small differences. The games are the most basic kind of incremental, where you buy something with resources, until you get the next thing which gives you more of the resources. Both give you upgrades to speed things up, and finally prestige and it's own prestige upgrades. That's it. It's nice little change of pace from all the recent incremental that sometimes do too much, but obviously due to the very simple nature of it, it does eventually feel pointless, specially after you more or less open up everything and the prestige upgrades just keep repeating. 3 Antimatter Dimensions Easily top 5 incremental on mobile. Does everything perfectly. You progress nicely, and when new features open it, not only is it rewarding but more importantly, it keeps adding new dimensions (lol) to the game. I'd at the end game as I write this, and I realize that there was no point in the game where it felt stale. Each new prestige layer made the game feel fresh and almost like a new incremental game. 5 Melvor Idle It seems this game was mainly aimed at Runescape players, which is probably why it didn't click for me. It also run extremely slow on my phone which also played a part in me not really getting into. 2 A Girl Adrift The animation is really pretty and is a nice change of pace for incrementals, but I didn't really like the too much active play. Really had to keep going back and forth to different areas to do the fishing which got too repetitive for me. You travel to different areas of the map to catch fish, which you get points and then you upgrade stuff, but I didn't really find any real excitement about the upgrades because I kept having to go back to previous areas to fish similar creatures. 3 Archer: Danger Phone I'm really annoyed how terrible of a game this was. Two things I like, the TV show "Archer" and incremental games, and it's done in the most lazy manner. The game is the worst aspect of idle games where it's just a straight path of clicking the next upgrade with absolutely zero decision making. Every once in a while there is a mini game where Archer gets to shoot others but it's done in the most basic form of early 2000s flash games, where the animation budget is probably 3 dollars. Same static background and both enemies and Archer have just two animation frames. The absolute laziness of it is almost insulting to the player, because it feels like we aren't even worth the effort. There is an Archer story in the game which develops really fast, which is the only positive part, but no voice acting is again another evidence that the creators of the game weren't given any budget for this. 1 Home Quest This game is way too slow. You have to collect materials to build your settlement but everything takes time, so you click for a few seconds, and then you have to leave the game. Which I'm fine with, but the problem isn't the idle part of it, it's how the idle part of it combines with constant checking of the game which annoys me. I like an idle game where you forget to start the game for a day, you come up to a lot of resources, but this is a game which needs you to check back in every 30 minutes or an hour to really get anywhere. I felt that the micromanagement was getting worse as I progressed (without any actual thing to do when I am active in the game) that made me give up. 2 Idle Industry This is probably an interesting game, but I gave up because the one thing I really disliked was the amount of resources and manufacturing that very quickly opens to you. You can buy raw materials, and you can either sell these raw materials or turn them into finished goods and sell them either. And each of these has several upgrade options (increase selling price, increase production, etc). Without even really getting too deep into the game, I have around 20 raw materials and around 30 finished products. A satisfying part of this genre is to have things slow open up for you, which gives me a decent feeling of satisfaction. But the money I got would quickly open up new products, so I would just jump ahead and purchase more expensive ones, and after a while I had a lot of materials and products at zero, and was instead focusing on latter ones. 2 Masters of Madness Somewhat neat atmosphere and visuals, but too much active clicking. Click, upgrade to get more per clicks, get minions to get you some points without clicking, typical clicker, but with the added benefit of almost no idling. I like idling incrementals but clickers is a hard no from me. 1 Soda Dungeon 2 Basically similar to the first one, as far as I could tell. I did "finish" it but maybe I shouldn't have, since it really is the same thing from early on, specially once you get all the heroes and you kind of sort out which characters work best, then it's just the same. But because it was somewhat short and no real wall, it was at least easy to stick to it to the end. 2 Bacterial Takeover Played for a decent amount and was actually more interesting that I thought, given the buttload of ad incentives. You create and upgrade bacteria, attack planets, and eventually go into a blackhole to prestige. Most of the game was good, but the part that killed it for me was the prestige system. Once you prestige, planets get super easy to attack, which becomes a lot of active play. I realized that each prestige was taking me at least 30 minutes to get to where I was, and it was just meaningless clicking. It got to a point where I was putting off prestige because it seemed like it would be a hassle so I stopped. 2 LogRogue Cute graphics. The hero sort of hopping to hit the tiny monsters is cute to look at, but how long can you look at it and do nothing before you realize that it's boring? I suppose this is a game where it's just not for me. I don't like to have my phone open on a game and just watch it like a crazy person and do nothing. My rule is simple for incrementals. While the app is open, be active, if there isn't any choices to make, close the app while resources build up or whatever. I don't like it being open while I do nothing. 3 A Kittens Game Incremental games are so strange. I get in and out of the phases. I loved this for so long and so obsessively that I wanted to only play incremental games. And then, just like that, I was wondering why the fuck I was wasting my time with this. Has happened countless times before. But still probably the best incremental ever. 5 A Dark Room An incremental cult classic of sorts but I don't find it really matches the genre. There is a bit of incremental at the beginning with people huts and stuff but then its just a ascii exploring game, which wasn't interesting to me. 2 Little Healer Saw it mentioned in the Reddit incremental forum in one of the posts and thought it was a healer themed incremental which sounded neat. But it's like being a healer in a raid in World of Warcraft without any if the extras. Just a couple of bars representing your team mates and you healing them while they fight the boss. I didn't even like playing the healer in WoW so no way would I play this game. 1 Clickie Zoo Started playing for a few days until I realized there a beta released with the dev reworking the game completely from scratch and releasing it as "Idle Zoo Tycoon". So, played that instead but this seemed like a game I would enjoy anyway. 4 Idling to Rule the Gods The UI and one drawing if your character is really ugly enough to be distracting to me. The game, seemed interesting and I eventually was into it, but seems like a game that has been constantly being updated, which is not always a good thing, because features are obviously updated regularly to it, making the whole thing a bit bloaty. I guess, this is the problem with this game for me, it's too fat. Also, one main part of the game is that your character creates Shadow Clones up to a maximum limit. Which is fine except the clones can't be made in offline mode. This might not be a big deal in its original web browser game but that doesn't work as well in a mobile format. 2 Realm Grinder This is one of the really popular incremental and it's fanbase seems to love it for it's depth, but to be honest, I don't play these games for the depth, I play it for the simple dopamine rush of doing the same thing over and over again. It relaxes. Although, I didn't even get to the depth part because I dislike games where it rushes in the beginning. I constantly bought buildings, got spells, and got upgrades without even looking at the description. Apparently, later on, we can get complicated race upgades, which seems not what I'm looking for in such a genre. 2 Spaceplan A short (!!) incremental with an actual story (!!!). That's two cool points for it but unfortunately, the game mechanics of increment genre isn't so good. It's a space game with nice visuals and a great ending (cool music set to cool graphics) but the game itself wasn't really that fun. This same exact game would have been better in a different genre (maybe something like "Out There"?) 3 Zombidle Felt like idle games again and this is the kind of examples that kept me away. Too much clicking and seems like advancement will start to get irritating since it relies on IAPs 2 Eggs, Inc While I was playing it, Eggs, Inc was probably my favorite Android game I had ever played. But like most incremental games, there comes a moment when I suddenly stop and think, what am I doing? Because there is something fascinating about Incrementals. Their addictiveness is in a way the whole point. An incremental is less of a game and more an act of electronic addictiveness. What's the point? Eggs, Inc is a very well made and fun incremental but even the best in its genre is still pointless. 4 Castle Clicker Supposedly a mix of incremental and city building but didn't really find out since the clickings were way to much. I know this is supposed to be the genre but I like the incremental part more than the tapping part. This seemed to be a good way to hurt your fingers. 2 Endless Era This RPG clicker game is like other such games but with horrible GUI and animations. Tap tap tap. It's my fault for downloading such games. Why would I ever think this would be fun??? 1 Idle Quote An incremental game with a unique twist. This time we get to make up quotes! The first negative about the game and this irritates me a lot is most of the quotes are fake. A quick search on Google and this proves it. Quotes are generally attributed to Buddha or Ghandi or shit like that and it's usually fake like most quotes on the internet. This kills the major possible advantage of the game because I thought coming up with arbitrary words would at least give me some quotes to learn. Aside from the this, the game isn't fun either because it slows down very quickly meaning you combine words very slowly at a certain stage of the game and then it becomes a boring grind. 2 Monster Miser An incremental game with almost no graphics. We just see character portraits of monsters which we buy and then upgrade until we buy the next monster. Eventually we prestige which gives us multipliers. The only game choice is choosing between two monsters with each new monster with unique benefits. Annoyingly there is a max limit which I wish didn't exist because I wanted to prestige so much that I would be over powerful in upgrading like that "Idle Oil Tycoon". Still, pointless but reasonably fun. 3 Pocket Politics An incremental take on politics sounds fun but it's so generic that it could have been about anything. A Capitalist idle game or a cooking idle game, it wouldn't matter. IAP was also the usual shitty kind. 1 Time Clickers A shooter incremental sounds like a cool twist but it's not a FPS like I imagined it would be. I'm just stuck in a room and I was shooting blocks. Upgrades didn't give me any enjoyment since I was shooting fucking blocks. 1 Tap Tap Fish - Abyssrium I thought this was going to be relaxing incremental but the ridiculous and generic IAPs and all the social integeration spoil it. Too much time is spent in them asking you to buy or share or tweet or post or give them a blowjob. And there is nothing relaxing about that. 2 Cartoon 999 Incremental game about comic book writers, but not the marvel DC kind, it seemed to be the webcomic one and I think it's a Korean developer so all the characters and injokes made no sense to me. The whole thing was just targeted to a very specific audience. 2 Dungeon Manager Incremental games need to be simple but this is beyond simple, it's just upgrade a fighter to level 5, go to next dungeon character, do the same, and just continue without any of the delicious balancing of upgrades like other idle games. 2 Final Fortress Incremental games are already pointless but when it's super heavy on IAP than its also annoying, but when it always has bugs that doesn't register my offline earnings, then it just needs a uninstall in its face. The zombie skin was also crappy. 1 Mana Maker Here is how I know this clicker isn't very good. It doesn't make me hate all clickers and my life and mobile gaming in general for being so addictive and pointless. So fail, sorry. 2 Infinity Dungeon The usual incremental RPG that I should probably never play again. Starts simple enough and then gets more or a chore as you play. 1 Another incremental game which I had promised myself not to play anymore because they are so pointless and repetitive and endless. Well, this wasn't infinite and had a goal at 999 level so I thought it was good but while the humor was cute, the game did become very repetitive. Every 10 levels the slimes changed but after every 100 levels the whole thing restarted and while the monsters got stronger, I seemed to get even stronger. So the game became easier as I progressed and there was no more challenge. By level 800, I gave up. 2 Tap Dungeon RPG Okay, I'm running out of ways to complain about those incremental RPG games that all have similar problems. It starts off reasonably fast and fun but soon it seems like I am in a data entry job. Doing the same thing over and over again with little changes. 1 Dungeon 999 F: Secret of Slime Dungeon Another incremental game which I had promised myself not to play anymore because they are so pointless and repetitive and endless. Well, this wasn't infinite and had a goal at 999 level so I thought it was good but while the humor was cute, the game did become very repetitive. Every 10 levels the slimes changed but after every 100 levels the whole thing restarted and while the monsters got stronger, I seemed to get even stronger. So the game became easier as I progressed and there was no more challenge. By level 800, I gave up. 2 Tap Dungeon RPG Okay, I'm running out of ways to complain about those incremental RPG games that all have similar problems. It starts off reasonably fast and fun but soon it seems like I am in a data entry job. Doing the same thing over and over again with little changes. 1 Tower of Hero You start on the first floor of the tower and keep fighting your way up by summoning your heroes (by clicking) and recruiting other fighters, get upgrades, level up, and then, ugh, here is the typical incremental RPG part, restart, get items, and do it ALL over again. There is something fun about restarting and getting slowly stronger each time but it also feels so pointless after a while. Such a pointless genre now that I have played a billion of such titles, heh. 3 Pageboy Yet another incremental RPG which I have no idea why I downloaded because I'm sick of the genre. I played a pageboy to a knight who does the fighting while I collect the lot. I collect the loot, buy stuff for the knight, and eventually I restart to do the same thing again and get better items but this game I didn't even RESTART! Because fuck it! Fuck it! 2 Idle Warriors The story is cute. Human population is regressing while monster population is on the rise. So the humans start enslaving monsters to mine for them! The brave warriors beat the crap out of monsters, kidnap the bosses, and enslave them. The animation of monsters slaving away while speech balloons above them talk about their wife and children is funny. But the game itself is another RPG incremental which I should start staying away from. These games are like a chore for me nowadays because I'm doing the same crap again and again. The blame is probably on me because it seems like a reasonably solid game. But hey, fuck it, I PERSONALLY didn't enjoy it. 2 Tap! Tap! Faraway! Any game that is remotely like Tap Titan scares me. They are addictive at first and very fast moving but after every restart gets more and more annoying. It soon turns into a time eating activity with the player having to redo the initial levels to get relics to get better items to progress further to restart to get relics to and so on until the player realizes how much time he is putting in the game for a repetitive activity. 2 Auto RPG Now that is a title the game developers didn't spend too much time on. RPG battles are automatic but I can help out by clicking like a mad man. I started with one hero but would get additional members in my party as the story progressed. Party members receive skills as as they level up and while all the skill usage is automatic, it did give me a sense of progression which is extremely important in a RPG and which I think is usually lacking in incremental games. It usually starts feeling useless but in this game at least there are new maps, new members, and an actual end sight! There is an infinity stage once the last boss is defeated but I am glad the infinity stage happens AFTER the end and it's not the game itself. 4 Merchant Hire a hero and send on to battle. The battles is done automatically and takes time, starts with something short like 10 seconds with each battle taking longer. The loot is raw materials which can be used to craft equipment which also takes real life time with better items taking longer. The crafted items can either be sold or equipped to the hero to make him be able to fight stronger monsters. I was worried I would hate the longer crafting and fighting times because I hate games which I have to watch for a task to finish but even though the durations for longer, I had more to do. However, I don't know what would have happened in the end game because I gave up on it. New maps were exactly like the first map just with different heroes but the progression was similar in each level which felt that I was doing the exact same thing all over again but with longer task times. 2 Idle Oil Tycoon This is the best idle game I played. It's graphics aren't just minor, they are none existent. It's just numbers, so basic that my sister thought I was on a stock market app. It's such a simple concept. Invest, get oil, upgrade then like other idlers restart to get a bonus and do the full thing all over again. When I finished the game, I played the unlimited mode which I played until the unlimited mode couldn't handle the numbers anymore. 5 Soda Dungeon This kind-of Idle Dungeon was great. I started with weak ass fighters who would fight on my behalf while I collected the loot. I then got to use the lot to upgrade the sofa bar to recruit more adventurers. Not sure why it was a sofa bar. Maybe they wanted to make it a family game and not have alcohol? Sounds weird but the sofa element in a RPG game sounds weirder. The game only hit a brick for me when, like most other incremental games, there is no real closure. Once I thought I bet the big bad guy, it just goes on, harder but similar enough with no end in sight. Eventually, we have to stop playing right, but it always feels a bit like a let down when I don't feel like I have finished the game. 4 10 Billion Wives Kept Man Life The two games from this company, 10 Billion Wives and Kept Man Life, have similar strengths and weaknesses. I liked the silly premises from both. In 10BM, I had to get married as much as I could, using the loves I collect to marry more expensive wives! In KML, I'm a boyfriend who doesn't work and I have to please my career gf so she would take care of me. Both start reasonably fast and I was willing to grind through difficult parts but the end game is like a brick wall. Passing through it to get all the achievements is pretty much impossible unless one puts in way too many hours. And it's a shame because I really wanted to get all the achievements to see all the tiny little extra stuff. 3 Adventure Capitalist One of the better incremental games, but now that I am out of the short lived incremental fan phase, I realized how dumb the genre is. Tap, tap, tap, upgrade, do this a million times, reset, and do it all over again like a moron. The game does deserve credits for me acting like a moron and playing it for so long but I also cheated and got free cash and then if occupying became even more pointless. 3 The Monolith A combination of an incremental and a civilization building game seemed like an excellent idea and in some ways, it was, specially how we get to upgrade through the ages from cavemen to futuristic. But no offline feature means that the resets aren't enticing. 2 USSR Simulator An incremental game that has a great theme (USSR!) but absolutely horrible to enjoy, even though I did stick to it. After a certain upgrades, the game just turned into me popping in the game, clicking an upgrade and then forgetting about the game for a few days. 2 RPG Clicker They should call these games tappers not clickers. We are not clicking anything on a touchscreen device. Anyway, tap tap tap level up buy weapons tap tap and uninstall. 1 Logging Quest Logging Quest 2 [Review is for the original and its sequel] There is not much of a difference between the game. I actually played them both at the same time because the actual game is offline. You choose your hero, send them to a dungeon, and then come back to the game after a while to see how well they did. I thought an offline RPG like this might be interesting but then, if you don't really play a game, how much fun can it be? 1 Another pointless incremental. I was in an incremental phase and got so many incremental games that I know realize were absolutely pointless. Hit a tree, buy upgrades, get a new hero, and continue hitting a tree. Not much offline it seems which is what I like about incrementals. 1 Galaxy Clicker A space incremental that should have been a lot of fun. You get to upgrade your spaceship and buy new ones and explorer new planets. But first of all, the interface is so ugly that it makes playing the game less enjoyable. And a lot of things I didn't really get no matter how much I would play like the full exploring planets. The spaceships were nice, so it could have been fun. 2 Megatramp A pretty pointless incremental kind of game. You are a tramp and then you can collect money to buy upgrades to make more money, with no strategy needed, nor any effort needs to be made to hurt your brain cells. 1 Inflation RPG It supposed to be some kind of incremental RPG, I think, which has you resetting and getting more powerful and then fighting monsters to get insane levels. It is very unique but I couldn't get into it. 2 Widget RPG Are you fucking with me? This is button bashing rpg in the most extreme manner. You get a widget, so you don't even have to open the game and distract yourself from the button bushing. Just click the button and the game plays behind the scenes and gets you experience, loot, and kills. It's a ridiculous idea that is fun for a few minutes to see what they come up with but there is only so much button bashing you can do. 2 Capitalist Tycoon I downloaded this game because I was in an incremental/idle game phase and really enjoyed AdVenture Capitalist. But this game is nothing like that. On the surface, it seems similar, buy small investments, make money, buy bigger investments, and so on. But with this game, there is no offline mode, and you keep having to wake up managers, AND the goal is to see how much you make in one year. Bah. I prefer the incremental approach which makes you build and build and build, not try to rush it in just a year. 2 Clicking Bad An incremental clicking game that is themed after Breaking Bad. It is a fun idea it's a very simple game with little to do aside from the obvious of upgrading and upgrading. The only twist might be to balance out making lots of money selling drugs and not attracting the law but even that is only a small challenge at the start. Eventually, you will get enough upgrades to bring the law risk so down that it makes no impact on the game play. 2 Zombie Tapper A super basic incremental clicker game with a zombie team. Click click click to eat brains, use brains (?) to buy zombies to do the brain eating for you and then buy upgrades for your zombies, and buy new zombies and it all feels very pointless. 1 Bitcoin Billionaire I started to enjoy incremental games, but it needs to have a good offline mode, because I don’t want to just play a game where I keep tapping. But that doesn’t mean I didn’t play. I played it, and I played a lot of it, because I could reset the game (like most incremental games) and it gives you a small benefit where you could finish the full game a bit faster (it gives you bonus income). So, I kept finishing and resetting, and each time the start to finish would shorten, so I thought I would reach a stage where I could finish each start-to-finish in an instant! It didn’t happen. I got bored first. 3 Tap Titan An addictive tapping game. Just tap on the creatures, level up, get new skills, hire heroes, and then reset and to it all over again to progress further. It’s an incremental game where it depends on resets to progress, but no real offline bonus, so you have to be playing online. Which got boring, so I installed an app that does the tapping for me, which is actually a stupid way to play the game, but this isn’t an attempt to prove to anyone my intelligence. Anyway, thankfully something went wrong and my progress got deleted, WHICH WAS A GOOD THING, because the game was extremely addictive. 4 God Squad I’ve realized most incremental games are stupid. Tap on monsters to kill, collect gold, buy Roman Gods, level them up, fight other monsters, and then get bored. 1
https://github.com/gridcoin-community/Gridcoin-Research/releases/tag/188.8.131.52 Finally! After over ten months of development and testing, "Fern" has arrived! This is a whopper. 240 pull requests merged. Essentially a complete rewrite that was started with the scraper (the "neural net" rewrite) in "Denise" has now been completed. Practically the ENTIRE Gridcoin specific codebase resting on top of the vanilla Bitcoin/Peercoin/Blackcoin vanilla PoS code has been rewritten. This removes the team requirement at last (see below), although there are many other important improvements besides that. Fern was a monumental undertaking. We had to encode all of the old rules active for the v10 block protocol in new code and ensure that the new code was 100% compatible. This had to be done in such a way as to clear out all of the old spaghetti and ring-fence it with tightly controlled class implementations. We then wrote an entirely new, simplified ruleset for research rewards and reengineered contracts (which includes beacon management, polls, and voting) using properly classed code. The fundamentals of Gridcoin with this release are now on a very sound and maintainable footing, and the developers believe the codebase as updated here will serve as the fundamental basis for Gridcoin's future roadmap. We have been testing this for MONTHS on testnet in various stages. The v10 (legacy) compatibility code has been running on testnet continuously as it was developed to ensure compatibility with existing nodes. During the last few months, we have done two private testnet forks and then the full public testnet testing for v11 code (the new protocol which is what Fern implements). The developers have also been running non-staking "sentinel" nodes on mainnet with this code to verify that the consensus rules are problem-free for the legacy compatibility code on the broader mainnet. We believe this amount of testing is going to result in a smooth rollout. Given the amount of changes in Fern, I am presenting TWO changelogs below. One is high level, which summarizes the most significant changes in the protocol. The second changelog is the detailed one in the usual format, and gives you an inkling of the size of this release.
Note that the protocol changes will not become active until we cross the hard-fork transition height to v11, which has been set at 2053000. Given current average block spacing, this should happen around October 4, about one month from now. Note that to get all of the beacons in the network on the new protocol, we are requiring ALL beacons to be validated. A two week (14 day) grace period is provided by the code, starting at the time of the transition height, for people currently holding a beacon to validate the beacon and prevent it from expiring. That means that EVERY CRUNCHER must advertise and validate their beacon AFTER the v11 transition (around Oct 4th) and BEFORE October 18th (or more precisely, 14 days from the actual date of the v11 transition). If you do not advertise and validate your beacon by this time, your beacon will expire and you will stop earning research rewards until you advertise and validate a new beacon. This process has been made much easier by a brand new beacon "wizard" that helps manage beacon advertisements and renewals. Once a beacon has been validated and is a v11 protocol beacon, the normal 180 day expiration rules apply. Note, however, that the 180 day expiration on research rewards has been removed with the Fern update. This means that while your beacon might expire after 180 days, your earned research rewards will be retained and can be claimed by advertising a beacon with the same CPID and going through the validation process again. In other words, you do not lose any earned research rewards if you do not stake a block within 180 days and keep your beacon up-to-date. The transition height is also when the team requirement will be relaxed for the network.
Besides the beacon wizard, there are a number of improvements to the GUI, including new UI transaction types (and icons) for staking the superblock, sidestake sends, beacon advertisement, voting, poll creation, and transactions with a message. The main screen has been revamped with a better summary section, and better status icons. Several changes under the hood have improved GUI performance. And finally, the diagnostics have been revamped.
The wallet sync speed has been DRASTICALLY improved. A decent machine with a good network connection should be able to sync the entire mainnet blockchain in less than 4 hours. A fast machine with a really fast network connection and a good SSD can do it in about 2.5 hours. One of our goals was to reduce or eliminate the reliance on snapshots for mainnet, and I think we have accomplished that goal with the new sync speed. We have also streamlined the in-memory structures for the blockchain which shaves some memory use. There are so many goodies here it is hard to summarize them all. I would like to thank all of the contributors to this release, but especially thank @cyrossignol, whose incredible contributions formed the backbone of this release. I would also like to pay special thanks to @barton2526, @caraka, and @Quezacoatl1, who tirelessly helped during the testing and polishing phase on testnet with testing and repeated builds for all architectures. The developers are proud to present this release to the community and we believe this represents the starting point for a true renaissance for Gridcoin!
Most significantly, nodes calculate research rewards directly from the magnitudes in EACH superblock between stakes instead of using a two- or three- point average based on a CPID's current magnitude and the magnitude for the CPID when it last staked. For those long-timers in the community, this has been referred to as "Superblock Windows," and was first done in proof-of-concept form by @denravonska.
Network magnitude unit pinned to a static value of 0.25
Max research reward allowed per block raised to 16384 GRC (from 12750 GRC)
New CPIDs begin accruing research rewards from the first superblock that contains the CPID instead of from the time of the beacon advertisement
500 GRC research reward limit for a CPID's first stake
6-month expiration for unclaimed rewards
10-block spacing requirement between research reward claims
Rolling 5-day payment-per-day limit
Legacy tolerances for floating-point error and time drift
The need to include a valid copy of a CPID's magnitude in a claim
10-block emission adjustment interval for the magnitude unit
One-time beacon activation requires that participants temporarily change their usernames to a verification code at one whitelisted BOINC project
Verification codes of pending beacons expire after 3 days
Self-service beacon removal
Burn fee for beacon advertisement increased from 0.00001 GRC to 0.5 GRC
Rain addresses derived from beacon keys instead of a default wallet address
Beacon expiration determined as of the current block instead of the previous block
The ability for developers to remove beacons
The ability to sign research reward claims with non-current but unexpired beacons
As a reminder:
Beacons expire after 6 months pass (180 days)
Beacons can be renewed after 5 months pass (150 days)
Renewed beacons must be signed with the same key as the original beacon
Magnitudes less than 1 include two fractional places
Magnitudes greater than or equal to 1 but less than 10 include one fractional place
A valid superblock must match a scraper convergence
Superblock popularity election mechanics
Yes/no/abstain and single-choice response types (no user-facing support yet)
To create a poll, a maximum of 250 UTXOs for a single address must add up to 100000 GRC. These are selected from the largest downwards.
Burn fee for creating polls scaled by the number of UTXOs claimed
50 GRC for a poll contract
0.001 GRC per claimed UTXO
Burn fee for casting votes scaled by the number of UTXOs claimed
0.01 GRC for a vote contract
0.01 GRC to claim magnitude
0.01 GRC per claimed address
0.001 GRC per claimed UTXO
Maximum length of a poll title: 80 characters
Maximum length of a poll question: 100 characters
Maximum length of a poll discussion website URL: 100 characters
Maximum number of poll choices: 20
Maximum length of a poll choice label: 100 characters
Magnitude, CPID count, and participant count poll weight types
The ability for developers to remove polls and votes
[184.108.40.206] 2020-09-03, mandatory, "Fern"
Backport newer uint256 types from Bitcoin #1570 (@cyrossignol)
Implement project level rain for rainbymagnitude #1580 (@jamescowens)
Upgrade utilities (Update checker and snapshot downloadeapplication) #1576 (@iFoggz)
Provide fees collected in the block by the miner #1601 (@iFoggz)
Add support for generating legacy superblocks from scraper stats #1603 (@cyrossignol)
Port of the Bitcoin Logger to Gridcoin #1600 (@jamescowens)
Implement zapwallettxes #1605 (@jamescowens)
Implements a global event filter to suppress help question mark #1609 (@jamescowens)
Add next target difficulty to RPC output #1615 (@cyrossignol)
Add caching for block hashes to CBlock #1624 (@cyrossignol)
Make toolbars and tray icon red for testnet #1637 (@jamescowens)
Add an rpc call convergencereport #1643 (@jamescowens)
Implement newline filter on config file read in #1645 (@jamescowens)
Implement beacon status icon/button #1646 (@jamescowens)
Add gridcointestnet.png #1649 (@caraka)
Add precision to support magnitudes less than 1 #1651 (@cyrossignol)
Replace research accrual calculations with superblock snapshots #1657 (@cyrossignol)
Publish example gridcoinresearch.conf as a md document to the doc directory #1662 (@jamescowens)
Add options checkbox to disable transaction notifications #1666 (@jamescowens)
Add support for self-service beacon deletion #1695 (@cyrossignol)
Add support for type-specific contract fee amounts #1698 (@cyrossignol)
Add verifiedbeaconreport and pendingbeaconreport #1696 (@jamescowens)
Add preliminary testing option for block v11 height on testnet #1706 (@cyrossignol)
Add verified beacons manifest part to superblock validator #1711 (@cyrossignol)
Implement beacon, vote, and superblock display categories/icons in UI transaction model #1717 (@jamescowens)
Dragonchain Great Reddit Scaling Bake-Off Public Proposal
Dragonchain Public Proposal TL;DR:
Dragonchain has demonstrated twice Reddit’s entire total daily volume (votes, comments, and postsper Reddit 2019 Year in Review) in a 24-hour demo on an operational network. Every single transaction on Dragonchain is decentralized immediately through 5 levels of Dragon Net, and then secured with combined proof on Bitcoin, Ethereum, Ethereum Classic, and Binance Chain, via Interchain. At the time, in January 2020, the entire cost of the demo was approximately $25K on a single system (transaction fees locked at $0.0001/txn). With current fees (lowest fee $0.0000025/txn), this would cost as little as $625. Watch Joe walk through the entire proposal and answer questions onYouTube. This proposal is also available on the Dragonchain blog.
Hello Reddit and Ethereum community!
I’m Joe Roets, Founder & CEO of Dragonchain. When the team and I first heard about The Great Reddit Scaling Bake-Off we were intrigued. We believe we have the solutions Reddit seeks for its community points system and we have them at scale. For your consideration, we have submitted our proposal below. The team at Dragonchain and I welcome and look forward to your technical questions, philosophical feedback, and fair criticism, to build a scaling solution for Reddit that will empower its users. Because our architecture is unlike other blockchain platforms out there today, we expect to receive many questions while people try to grasp our project. I will answer all questions here in this thread on Reddit, and I've answered some questions in the stream on YouTube. We have seen good discussions so far in the competition. We hope that Reddit’s scaling solution will emerge from The Great Reddit Scaling Bake-Off and that Reddit will have great success with the implementation.
Dragonchain is a robust open source hybrid blockchain platform that has proven to withstand the passing of time since our inception in 2014. We have continued to evolve to harness the scalability of private nodes, yet take full advantage of the security of public decentralized networks, like Ethereum. We have a live, operational, and fully functional Interchain network integrating Bitcoin, Ethereum, Ethereum Classic, and ~700 independent Dragonchain nodes. Every transaction is secured to Ethereum, Bitcoin, and Ethereum Classic. Transactions are immediately usable on chain, and the first decentralization is seen within 20 seconds on Dragon Net. Security increases further to public networks ETH, BTC, and ETC within 10 minutes to 2 hours. Smart contracts can be written in any executable language, offering full freedom to existing developers. We invite any developer to watch the demo, play with our SDK’s, review open source code, and to help us move forward. Dragonchain specializes in scalable loyalty & rewards solutions and has built a decentralized social network on chain, with very affordable transaction costs. This experience can be combined with the insights Reddit and the Ethereum community have gained in the past couple of months to roll out the solution at a rapid pace.
Response and PoC
In The Great Reddit Scaling Bake-Off post, Reddit has asked for a series of demonstrations, requirements, and other considerations. In this section, we will attempt to answer all of these requests.
A live proof of concept showing hundreds of thousands of transactions
On Jan 7, 2020, Dragonchain hosted a 24-hour live demonstration during which a quarter of a billion (250 million+) transactions executed fully on an operational network. Every single transaction on Dragonchain is decentralized immediately through 5 levels of Dragon Net, and then secured with combined proof on Bitcoin, Ethereum, Ethereum Classic, and Binance Chain, via Interchain. This means that every single transaction is secured by, and traceable to these networks. An attack on this system would require a simultaneous attack on all of the Interchained networks. 24 hours in 4 minutes (YouTube): 24 hours in 4 minutes The demonstration was of a single business system, and any user is able to scale this further, by running multiple systems simultaneously. Our goals for the event were to demonstrate a consistent capacity greater than that of Visa over an extended time period. Tooling to reproduce our demo is available here: https://github.com/dragonchain/spirit-bomb
Source code (for on & off-chain components as well tooling used for the PoC). The source code does not have to be shared publicly, but if Reddit decides to use a particular solution it will need to be shared with Reddit at some point.
Dragonchain’s architecture attacks the scalability issue from multiple angles. Dragonchain is a hybrid blockchain platform, wherein every transaction is protected on a business node to the requirements of that business or purpose. A business node may be held completely private or may be exposed or replicated to any level of exposure desired. Every node has its own blockchain and is independently scalable. Dragonchain established Context Based Verification as its consensus model. Every transaction is immediately usable on a trust basis, and in time is provable to an increasing level of decentralized consensus. A transaction will have a level of decentralization to independently owned and deployed Dragonchain nodes (~700 nodes) within seconds, and full decentralization to BTC and ETH within minutes or hours. Level 5 nodes (Interchain nodes) function to secure all transactions to public or otherwise external chains such as Bitcoin and Ethereum. These nodes scale the system by aggregating multiple blocks into a single Interchain transaction on a cadence. This timing is configurable based upon average fees for each respective chain. For detailed information about Dragonchain’s architecture, and Context Based Verification, please refer to the Dragonchain Architecture Document.
An interesting feature of Dragonchain’s network consensus is its economics and scarcity model. Since Dragon Net nodes (L2-L4) are independent staking nodes, deployment to cloud platforms would allow any of these nodes to scale to take on a large percentage of the verification work. This is great for scalability, but not good for the economy, because there is no scarcity, and pricing would develop a downward spiral and result in fewer verification nodes. For this reason, Dragonchain uses TIME as scarcity. TIME is calculated as the number of Dragons held, multiplied by the number of days held. TIME influences the user’s access to features within the Dragonchain ecosystem. It takes into account both the Dragon balance and length of time each Dragon is held. TIME is staked by users against every verification node and dictates how much of the transaction fees are awarded to each participating node for every block. TIME also dictates the transaction fee itself for the business node. TIME is staked against a business node to set a deterministic transaction fee level (see transaction fee table below in Cost section). This is very interesting in a discussion about scaling because it guarantees independence for business implementation. No matter how much traffic appears on the entire network, a business is guaranteed to not see an increased transaction fee rate.
Dragonchain uses Docker and Kubernetes to allow the use of best practices traditional system scaling. Dragonchain offers managed nodes with an easy to use web based console interface. The user may also deploy a Dragonchain node within their own datacenter or favorite cloud platform. Users have deployed Dragonchain nodes on-prem on Amazon AWS, Google Cloud, MS Azure, and other hosting platforms around the world. Any executable code, anything you can write, can be written into a smart contract. This flexibility is what allows us to say that developers with no blockchain experience can use any code language to access the benefits of blockchain. Customers have used NodeJS, Python, Java, and even BASH shell script to write smart contracts on Dragonchain. With Docker containers, we achieve better separation of concerns, faster deployment, higher reliability, and lower response times. We chose Kubernetes for its self-healing features, ability to run multiple services on one server, and its large and thriving development community. It is resilient, scalable, and automated. OpenFaaS allows us to package smart contracts as Docker images for easy deployment. Contract deployment time is now bounded only by the size of the Docker image being deployed but remains fast even for reasonably large images. We also take advantage of Docker’s flexibility and its ability to support any language that can run on x86 architecture. Any image, public or private, can be run as a smart contract using Dragonchain.
Flexibility in Scaling
Dragonchain’s architecture considers interoperability and integration as key features. From inception, we had a goal to increase adoption via integration with real business use cases and traditional systems. We envision the ability for Reddit, in the future, to be able to integrate alternate content storage platforms or other financial services along with the token.
LBRY - To allow users to deploy content natively to LBRY
MakerDAO to allow users to lend small amounts backed by their Reddit community points.
STORJ/SIA to allow decentralized on chain storage of portions of content. These integrations or any other are relatively easy to integrate on Dragonchain with an Interchain implementation.
Cost estimates (on-chain and off-chain) For the purpose of this proposal, we assume that all transactions are on chain (posts, replies, and votes).
On the Dragonchain network, transaction costs are deterministic/predictable. By staking TIME on the business node (as described above) Reddit can reduce transaction costs to as low as $0.0000025 per transaction. Dragonchain Fees Table
How to run it
Building on Dragonchain is simple and requires no blockchain experience. Spin up a business node (L1) in our managed environment (AWS), run it in your own cloud environment, or on-prem in your own datacenter. Clear documentation will walk you through the steps of spinning up your first Dragonchain Level 1 Business node. Getting started is easy...
Download Dragonchain’s dctl
Input three commands into a terminal
Build an image
More information can be found in our Get started documents.
Dragonchain is an open source hybrid platform. Through Dragon Net, each chain combines the power of a public blockchain (like Ethereum) with the privacy of a private blockchain. Dragonchain organizes its network into five separate levels. A Level 1, or business node, is a totally private blockchain only accessible through the use of public/private keypairs. All business logic, including smart contracts, can be executed on this node directly and added to the chain. After creating a block, the Level 1 business node broadcasts a version stripped of sensitive private data to Dragon Net. Three Level 2 Validating nodes validate the transaction based on guidelines determined from the business. A Level 3 Diversity node checks that the level 2 nodes are from a diverse array of locations. A Level 4 Notary node, hosted by a KYC partner, then signs the validation record received from the Level 3 node. The transaction hash is ledgered to the Level 5 public chain to take advantage of the hash power of massive public networks. Dragon Net can be thought of as a “blockchain of blockchains”, where every level is a complete private blockchain. Because an L1 can send to multiple nodes on a single level, proof of existence is distributed among many places in the network. Eventually, proof of existence reaches level 5 and is published on a public network.
Dragonchain is open source and even though the platform is easy enough for developers to code in any language they are comfortable with, we do not have so large a developer community as Ethereum. We would like to see the Ethereum developer community (and any other communities) become familiar with our SDK’s, our solutions, and our platform, to unlock the full potential of our Ethereum Interchain. Long ago we decided to prioritize both Bitcoin and Ethereum Interchains. We envision an ecosystem that encompasses different projects to give developers the ability to take full advantage of all the opportunities blockchain offers to create decentralized solutions not only for Reddit but for all of our current platforms and systems. We believe that together we will take the adoption of blockchain further. We currently have additional Interchain with Ethereum Classic. We look forward to Interchain with other blockchains in the future. We invite all blockchains projects who believe in decentralization and security to Interchain with Dragonchain.
While we only have 700 nodes compared to 8,000 Ethereum and 10,000 Bitcoin nodes. We harness those 18,000 nodes to scale to extremely high levels of security. See Dragonchain metrics.
Some may consider the centralization of Dragonchain’s business nodes as an issue at first glance, however, the model is by design to protect business data. We do not consider this a drawback as these nodes can make any, none, or all data public. Depending upon the implementation, every subreddit could have control of its own business node, for potential business and enterprise offerings, bringing new alternative revenue streams to Reddit.
Costs and resources
Summary of cost & resource information for both on-chain & off-chain components used in the PoC, as well as cost & resource estimates for further scaling. If your PoC is not on mainnet, make note of any mainnet caveats (such as congestion issues).
Every transaction on the PoC system had a transaction fee of $0.0001 (one-hundredth of a cent USD). At 256MM transactions, the demo cost $25,600. With current operational fees, the same demonstration would cost $640 USD. For the demonstration, to achieve throughput to mimic a worldwide payments network, we modeled several clients in AWS and 4-5 business nodes to handle the traffic. The business nodes were tuned to handle higher throughput by adjusting memory and machine footprint on AWS. This flexibility is valuable to implementing a system such as envisioned by Reddit. Given that Reddit’s daily traffic (posts, replies, and votes) is less than half that of our demo, we would expect that the entire Reddit system could be handled on 2-5 business nodes using right-sized containers on AWS or similar environments. Verification was accomplished on the operational Dragon Net network with over 700 independently owned verification nodes running around the world at no cost to the business other than paid transaction fees.
This PoC should scale to the numbers below with minimal costs (both on & off-chain). There should also be a clear path to supporting hundreds of millions of users. Over a 5 day period, your scaling PoC should be able to handle: *100,000 point claims (minting & distributing points) *25,000 subscriptions *75,000 one-off points burning *100,000 transfers
During Dragonchain’s 24 hour demo, the above required numbers were reached within the first few minutes. Reddit’s total activity is 9000% more than Ethereum’s total transaction level. Even if you do not include votes, it is still 700% more than Ethereum’s current volume. Dragonchain has demonstrated that it can handle 250 million transactions a day, and it’s architecture allows for multiple systems to work at that level simultaneously. In our PoC, we demonstrate double the full capacity of Reddit, and every transaction was proven all the way to Bitcoin and Ethereum. Reddit Scaling on Ethereum
Solutions should not depend on any single third-party provider. We prefer solutions that do not depend on specific entities such as Reddit or another provider, and solutions with no single point of control or failure in off-chain components but recognize there are numerous trade-offs to consider
Dragonchain’s architecture calls for a hybrid approach. Private business nodes hold the sensitive data while the validation and verification of transactions for the business are decentralized within seconds and secured to public blockchains within 10 minutes to 2 hours. Nodes could potentially be controlled by owners of individual subreddits for more organic decentralization.
Billing is currently centralized - there is a path to federation and decentralization of a scaled billing solution.
Operational on-premises capabilities
Operational deployment to any datacenter
Over 700 independent Community Verification Nodes with proof of ownership
Operational Interchain (Interoperable to Bitcoin, Ethereum, and Ethereum Classic, open to more)
Usability Scaling solutions should have a simple end user experience.
Users shouldn't have to maintain any extra state/proofs, regularly monitor activity, keep track of extra keys, or sign anything other than their normal transactions
Dragonchain and its customers have demonstrated extraordinary usability as a feature in many applications, where users do not need to know that the system is backed by a live blockchain. Lyceum is one of these examples, where the progress of academy courses is being tracked, and successful completion of courses is rewarded with certificates on chain. Our @Save_The_Tweet bot is popular on Twitter. When used with one of the following hashtags - #please, #blockchain, #ThankYou, or #eternalize the tweet is saved through Eternal to multiple blockchains. A proof report is available for future reference. Other examples in use are DEN, our decentralized social media platform, and our console, where users can track their node rewards, view their TIME, and operate a business node. Examples:
Transactions complete in a reasonable amount of time (seconds or minutes, not hours or days)
All transactions are immediately usable on chain by the system. A transaction begins the path to decentralization at the conclusion of a 5-second block when it gets distributed across 5 separate community run nodes. Full decentralization occurs within 10 minutes to 2 hours depending on which interchain (Bitcoin, Ethereum, or Ethereum Classic) the transaction hits first. Within approximately 2 hours, the combined hash power of all interchained blockchains secures the transaction.
Free to use for end users (no gas fees, or fixed/minimal fees that Reddit can pay on their behalf)
With transaction pricing as low as $0.0000025 per transaction, it may be considered reasonable for Reddit to cover transaction fees for users. All of Reddit's Transactions on Blockchain (month) Community points can be earned by users and distributed directly to their Reddit account in batch (as per Reddit minting plan), and allow users to withdraw rewards to their Ethereum wallet whenever they wish. Withdrawal fees can be paid by either user or Reddit. This model has been operating inside the Dragonchain system since 2018, and many security and financial compliance features can be optionally added. We feel that this capability greatly enhances user experience because it is seamless to a regular user without cryptocurrency experience, yet flexible to a tech savvy user. With regard to currency or token transactions, these would occur on the Reddit network, verified to BTC and ETH. These transactions would incur the $0.0000025 transaction fee. To estimate this fee we use the monthly active Reddit users statista with a 60% adoption rate and an estimated 10 transactions per month average resulting in an approximate $720 cost across the system. Reddit could feasibly incur all associated internal network charges (mining/minting, transfer, burn) as these are very low and controllable fees. Reddit Internal Token Transaction Fees Reddit Ethereum Token Transaction Fees When we consider further the Ethereum fees that might be incurred, we have a few choices for a solution.
Offload all Ethereum transaction fees (user withdrawals) to interested users as they wish to withdraw tokens for external use or sale.
Cover Ethereum transaction fees by aggregating them on a timed schedule. Users would request withdrawal (from Reddit or individual subreddits), and they would be transacted on the Ethereum network every hour (or some other schedule).
In a combination of the above, customers could cover aggregated fees.
Integrate with alternate Ethereum roll up solutions or other proposals to aggregate minting and distribution transactions onto Ethereum.
Users should be able to view their balances & transactions via a blockchain explorer-style interface
From interfaces for users who have no knowledge of blockchain technology to users who are well versed in blockchain terms such as those present in a typical block explorer, a system powered by Dragonchain has flexibility on how to provide balances and transaction data to users. Transactions can be made viewable in an Eternal Proof Report, which displays raw data along with TIME staking information and traceability all the way to Bitcoin, Ethereum, and every other Interchained network. The report shows fields such as transaction ID, timestamp, block ID, multiple verifications, and Interchain proof. See example here. Node payouts within the Dragonchain console are listed in chronological order and can be further seen in either Dragons or USD. See example here. In our social media platform, Dragon Den, users can see, in real-time, their NRG and MTR balances. See example here. A new influencer app powered by Dragonchain, Raiinmaker, breaks down data into a user friendly interface that shows coin portfolio, redeemed rewards, and social scores per campaign. See example here.
Exiting is fast & simple
Withdrawing funds on Dragonchain’s console requires three clicks, however, withdrawal scenarios with more enhanced security features per Reddit’s discretion are obtainable.
Interoperability Compatibility with third party apps (wallets/contracts/etc) is necessary.
Proven interoperability at scale that surpasses the required specifications. Our entire platform consists of interoperable blockchains connected to each other and traditional systems. APIs are well documented. Third party permissions are possible with a simple smart contract without the end user being aware. No need to learn any specialized proprietary language. Any code base (not subsets) is usable within a Docker container. Interoperable with any blockchain or traditional APIs. We’ve witnessed relatively complex systems built by engineers with no blockchain or cryptocurrency experience. We’ve also demonstrated the creation of smart contracts within minutes built with BASH shell and Node.js. Please see our source code and API documentation.
Scaling solutions should be extensible and allow third parties to build on top of it Open source and extensible APIs should be well documented and stable
Third-party permissionless integrations should be possible & straightforward Smart contracts are Docker based, can be written in any language, use full language (not subsets), and can therefore be integrated with any system including traditional system APIs. Simple is better. Learning an uncommon or proprietary language should not be necessary.
Advanced knowledge of mathematics, cryptography, or L2 scaling should not be required. Compatibility with common utilities & toolchains is expected. Dragonchain business nodes and smart contracts leverage Docker to allow the use of literally any language or executable code. No proprietary language is necessary. We’ve witnessed relatively complex systems built by engineers with no blockchain or cryptocurrency experience. We’ve also demonstrated the creation of smart contracts within minutes built with BASH shell and Node.js.
Bonus Points: Show us how it works. Do you have an idea for a cool new use case for Community Points? Build it!
Community points could be awarded to Reddit users based upon TIME too, whereas the longer someone is part of a subreddit, the more community points someone naturally gained, even if not actively commenting or sharing new posts. A daily login could be required for these community points to be credited. This grants awards to readers too and incentivizes readers to create an account on Reddit if they browse the website often. This concept could also be leveraged to provide some level of reputation based upon duration and consistency of contribution to a community subreddit.
Dragonchain has already built a social media platform that harnesses community involvement. Dragon Den is a decentralized community built on the Dragonchain blockchain platform. Dragon Den is Dragonchain’s answer to fake news, trolling, and censorship. It incentivizes the creation and evaluation of quality content within communities. It could be described as being a shareholder of a subreddit or Reddit in its entirety. The more your subreddit is thriving, the more rewarding it will be. Den is currently in a public beta and in active development, though the real token economy is not live yet. There are different tokens for various purposes. Two tokens are Lair Ownership Rights (LOR) and Lair Ownership Tokens (LOT). LOT is a non-fungible token for ownership of a specific Lair. LOT will only be created and converted from LOR. Energy (NRG) and Matter (MTR) work jointly. Your MTR determines how much NRG you receive in a 24-hour period. Providing quality content, or evaluating content will earn MTR.
Security. Users have full ownership & control of their points.
All community points awarded based upon any type of activity or gift, are secured and provable to all Interchain networks (currently BTC, ETH, ETC). Users are free to spend and withdraw their points as they please, depending on the features Reddit wants to bring into production.
Balances and transactions cannot be forged, manipulated, or blocked by Reddit or anyone else
Users can withdraw their balance to their ERC20 wallet, directly through Reddit. Reddit can cover the fees on their behalf, or the user covers this with a portion of their balance.
Users should own their points and be able to get on-chain ERC20 tokens without permission from anyone else
Through our console users can withdraw their ERC20 rewards. This can be achieved on Reddit too. Here is a walkthrough of our console, though this does not show the quick withdrawal functionality, a user can withdraw at any time. https://www.youtube.com/watch?v=aNlTMxnfVHw
Points should be recoverable to on-chain ERC20 tokens even if all third-parties involved go offline
If necessary, signed transactions from the Reddit system (e.g. Reddit + Subreddit) can be sent to the Ethereum smart contract for minting.
A public, third-party review attesting to the soundness of the design should be available
To our knowledge, at least two large corporations, including a top 3 accounting firm, have conducted positive reviews. These reviews have never been made public, as Dragonchain did not pay or contract for these studies to be released.
Bonus points Public, third-party implementation review available or in progress
Compatibility with HSMs & hardware wallets
For the purpose of this proposal, all tokenization would be on the Ethereum network using standard token contracts and as such, would be able to leverage all hardware wallet and Ethereum ecosystem services.
Minting/distributing tokens is not performed by Reddit directly
This operation can be automated by smart contract on Ethereum. Subreddits can if desired have a role to play.
One off point burning, as well as recurring, non-interactive point burning (for subreddit memberships) should be possible and scalable
This is possible and scalable with interaction between Dragonchain Reddit system and Ethereum token contract(s).
Fully open-source solutions are strongly preferred
Dragonchain is fully open source (see section on Disney release after conclusion).
Whether it is today, or in the future, we would like to work together to bring secure flexibility to the highest standards. It is our hope to be considered by Ethereum, Reddit, and other integrative solutions so we may further discuss the possibilities of implementation. In our public demonstration, 256 million transactions were handled in our operational network on chain in 24 hours, for the low cost of $25K, which if run today would cost $625. Dragonchain’s interoperable foundation provides the atmosphere necessary to implement a frictionless community points system. Thank you for your consideration of our proposal. We look forward to working with the community to make something great!
Disney Releases Blockchain Platform as Open Source
The team at Disney created the Disney Private Blockchain Platform. The system was a hybrid interoperable blockchain platform for ledgering and smart contract development geared toward solving problems with blockchain adoption and usability. All objective evaluation would consider the team’s output a success. We released a list of use cases that we explored in some capacity at Disney, and our input on blockchain standardization as part of our participation in the W3C Blockchain Community Group. https://lists.w3.org/Archives/Public/public-blockchain/2016May/0052.html
In 2016, Roets proposed to release the platform as open source to spread the technology outside of Disney, as others within the W3C group were interested in the solutions that had been created inside of Disney. Following a long process, step by step, the team met requirements for release. Among the requirements, the team had to:
Obtain VP support and approval for the release
Verify ownership of the software to be released
Verify that no proprietary content would be released
Convince the organization that there was a value to the open source community
Convince the organization that there was a value to Disney
Offer the plan for ongoing maintenance of the project outside of Disney
Itemize competing projects
Verify no conflict of interest
Change the project name to not use the name Disney, any Disney character, or any other associated IP - proposed Dragonchain - approved
Obtain legal approval
Approval from corporate, parks, and other business units
Approval from multiple Disney patent groups Copyright holder defined by Disney (Disney Connected and Advanced Technologies)
Trademark searches conducted for the selected name Dragonchain
Obtain IT security approval
Manual review of OSS components conducted
OWASP Dependency and Vulnerability Check Conducted
Obtain technical (software) approval
Offer management, process, and financial plans for the maintenance of the project.
Meet list of items to be addressed before release
Remove all Disney project references and scripts
Create a public distribution list for email communications
Remove Roets’ direct and internal contact information
Create public Slack channel and move from Disney slack channels
Create proper labels for issue tracking
Rename internal private Github repository
Add informative description to Github page
Expand README.md with more specific information
Add information beyond current “Blockchains are Magic”
Add getting started sections and info on cloning/forking the project
Add installation details
Add uninstall process
Add unit, functional, and integration test information
Detail how to contribute and get involved
Describe the git workflow that the project will use
Move to public, non-Disney git repository (Github or Bitbucket)
Obtain Disney Open Source Committee approval for release
On top of meeting the above criteria, as part of the process, the maintainer of the project had to receive the codebase on their own personal email and create accounts for maintenance (e.g. Github) with non-Disney accounts. Given the fact that the project spanned multiple business units, Roets was individually responsible for its ongoing maintenance. Because of this, he proposed in the open source application to create a non-profit organization to hold the IP and maintain the project. This was approved by Disney. The Disney Open Source Committee approved the application known as OSSRELEASE-10, and the code was released on October 2, 2016. Disney decided to not issue a press release. Original OSSRELASE-10 document
Why Osana takes so long? (Programmer's point of view on current situation)
I decided to write a comment about «Why Osana takes so long?» somewhere and what can be done to shorten this time. It turned into a long essay. Here's TL;DR of it:
The cost of never paying down this technical debt is clear; eventually the cost to deliver functionality will become so slow that it is easy for a well-designed competitive software product to overtake the badly-designed software in terms of features. In my experience, badly designed software can also lead to a more stressed engineering workforce, in turn leading higher staff churn (which in turn affects costs and productivity when delivering features). Additionally, due to the complexity in a given codebase, the ability to accurately estimate work will also disappear. Junade Ali, Mastering PHP Design Patterns (2016)
Longer version: I am not sure if people here wanted an explanation from a real developer who works with C and with relatively large projects, but I am going to do it nonetheless. I am not much interested in Yandere Simulator nor in this genre in general, but this particular development has a lot to learn from for any fellow programmers and software engineers to ensure that they'll never end up in Alex's situation, especially considering that he is definitely not the first one to got himself knee-deep in the development hell (do you remember Star Citizen?) and he is definitely not the last one. On the one hand, people see that Alex works incredibly slowly, equivalent of, like, one hour per day, comparing it with, say, Papers, Please, the game that was developed in nine months from start to finish by one guy. On the other hand, Alex himself most likely thinks that he works until complete exhaustion each day. In fact, I highly suspect that both those sentences are correct! Because of the mistakes made during early development stages, which are highly unlikely to be fixed due to the pressure put on the developer right now and due to his overall approach to coding, cost to add any relatively large feature (e.g. Osana) can be pretty much comparable to the cost of creating a fan game from start to finish. Trust me, I've seen his leaked source code (don't tell anybody about that) and I know what I am talking about. The largest problem in Yandere Simulator right now is its super slow development. So, without further ado, let's talk about how «implementing the low hanging fruit» crippled the development and, more importantly, what would have been an ideal course of action from my point of view to get out. I'll try to explain things in the easiest terms possible.
else if's and lack any sort of refactoring in general
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. Antoine de Saint-Exupéry
This is why refactoring — activity of rewriting your old code so it does the same thing, but does it quicker, in a more generic way, in less lines or simpler — is so powerful. In my experience, you can only keep one module/class/whatever in your brain if it does not exceed ~1000 lines, maybe ~1500. Splitting 17000-line-long class into smaller classes probably won't improve performance at all, but it will make working with parts of this class way easier. Is it too late now to start refactoring? Of course NO: better late than never.
If you think that you wrote this code, so you'll always easily remember it, I have some bad news for you: you won't. In my experience, one week and that's it. That's why comments are so crucial. It is not necessary to put a ton of comments everywhere, but just a general idea will help you out in the future. Even if you think that It Just Works™ and you'll never ever need to fix it. Time spent to write and debug one line of code almost always exceeds time to write one comment in large-scale projects. Moreover, the best code is the code that is self-evident. In the example above, what the hell does (float) 6 mean? Why not wrap it around into the constant with a good, self-descriptive name? Again, it won't affect performance, since C# compiler is smart enough to silently remove this constant from the real code and place its value into the method invocation directly. Such constants are here for you. I rewrote my code above a little bit to illustrate this. With those comments, you don't have to remember your code at all, since its functionality is outlined in two tiny lines of comments above it. Moreover, even a person with zero knowledge in programming will figure out the purpose of this code. It took me less than half a minute to write those comments, but it'll probably save me quite a lot of time of figuring out «what was I thinking back then» one day. Is it too late now to start adding comments? Again, of course NO. Don't be lazy and redirect all your typing from «debunk» page (which pretty much does the opposite of debunking, but who am I to judge you here?) into some useful comments.
This is often neglected, but consider the following. You wrote some code, you ran your game, you saw a new bug. Was it introduced right now? Is it a problem in your older code which has shown up just because you have never actually used it until now? Where should you search for it? You have no idea, and you have one painful debugging session ahead. Just imagine how easier it would be if you've had some routines which automatically execute after each build and check that environment is still sane and nothing broke on a fundamental level. This is called unit testing, and yes, unit tests won't be able to catch all your bugs, but even getting 20% of bugs identified at the earlier stage is a huge boon to development speed. Is it too late now to start adding unit tests? Kinda YES and NO at the same time. Unit testing works best if it covers the majority of project's code. On the other side, a journey of a thousand miles begins with a single step. If you decide to start refactoring your code, writing a unit test before refactoring will help you to prove to yourself that you have not broken anything without the need of running the game at all.
This is basically pretty self-explanatory. You set this thing once, you forget about it. Static code analyzer is another «free estate» to speed up the development process by finding tiny little errors, mostly silly typos (do you think that you are good enough in finding them? Well, good luck catching x << 4; in place of x <<= 4; buried deep in C code by eye!). Again, this is not a silver bullet, it is another tool which will help you out with debugging a little bit along with the debugger, unit tests and other things. You need every little bit of help here. Is it too late now to hook up static code analyzer? Obviously NO.
Say, you want to build Osana, but then you decided to implement some feature, e.g. Snap Mode. By doing this you have maybe made your game a little bit better, but what you have just essentially done is complicated your life, because now you should also write Osana code for Snap Mode. The way game architecture is done right now, easter eggs code is deeply interleaved with game logic, which leads to code «spaghettifying», which in turn slows down the addition of new features, because one has to consider how this feature would work alongside each and every old feature and easter egg. Even if it is just gazing over one line per easter egg, it adds up to the mess, slowly but surely. A lot of people mention that developer should have been doing it in object-oritented way. However, there is no silver bullet in programming. It does not matter that much if you are doing it object-oriented way or usual procedural way; you can theoretically write, say, AI routines on functional (e.g. LISP)) or even logical language if you are brave enough (e.g. Prolog). You can even invent your own tiny programming language! The only thing that matters is code quality and avoiding the so-called shotgun surgery situation, which plagues Yandere Simulator from top to bottom right now. Is there a way of adding a new feature without interfering with your older code (e.g. by creating a child class which will encapsulate all the things you need, for example)? Go for it, this feature is basically «free» for you. Otherwise you'd better think twice before doing this, because you are going into the «technical debt» territory, borrowing your time from the future by saying «I'll maybe optimize it later» and «a thousand more lines probably won't slow me down in the future that much, right?». Technical debt will incur interest on its own that you'll have to pay. Basically, the entire situation around Osana right now is just a huge tale about how just «interest» incurred by technical debt can control the entire project, like the tail wiggling the dog. I won't elaborate here further, since it'll take me an even larger post to fully describe what's wrong about Yandere Simulator's code architecture. Is it too late to rebuild code architecture? Sadly, YES, although it should be possible to split Student class into descendants by using hooks for individual students. However, code architecture can be improved by a vast margin if you start removing easter eggs and features like Snap Mode that currently bloat Yandere Simulator. I know it is going to be painful, but it is the only way to improve code quality here and now. This will simplify the code, and this will make it easier for you to add the «real» features, like Osana or whatever you'd like to accomplish. If you'll ever want them back, you can track them down in Git history and re-implement them one by one, hopefully without performing the shotgun surgery this time.
Again, I won't be talking about the performance, since you can debug your game on 20 FPS as well as on 60 FPS, but this is a very different story. Yandere Simulator is huge. Once you fixed a bug, you want to test it, right? And your workflow right now probably looks like this:
Fix the code (unavoidable time loss)
Rebuild the project (can take a loooong time)
Load your game (can take a loooong time)
Test it (unavoidable time loss, unless another bug has popped up via unit testing, code analyzer etc.)
And you can fix it. For instance, I know that Yandere Simulator makes all the students' photos during loading. Why should that be done there? Why not either move it to project building stage by adding build hook so Unity does that for you during full project rebuild, or, even better, why not disable it completely or replace with «PLACEHOLDER» text for debug builds? Each second spent watching the loading screen will be rightfully interpreted as «son is not coding» by the community. Is it too late to reduce loading times? Hell NO.
Or any other continuous integration tool. «Rebuild a project» can take a long time too, and what can we do about that? Let me give you an idea. Buy a new PC. Get a 32-core Threadripper, 32 GB of fastest RAM you can afford and a cool motherboard which would support all of that (of course, Ryzen/i5/Celeron/i386/Raspberry Pi is fine too, but the faster, the better). The rest is not necessary, e.g. a barely functional second hand video card burned out by bitcoin mining is fine. You set up another PC in your room. You connect it to your network. You set up ramdisk to speed things up even more. You properly set up Jenkins) on this PC. From now on, Jenkins cares about the rest: tracking your Git repository, (re)building process, large and time-consuming unit tests, invoking static code analyzer, profiling, generating reports and whatever else you can and want to hook up. More importantly, you can fix another bug while Jenkins is rebuilding the project for the previous one et cetera. In general, continuous integration is a great technology to quickly track down errors that were introduced in previous versions, attempting to avoid those kinds of bug hunting sessions. I am highly unsure if continuous integration is needed for 10000-20000 source lines long projects, but things can be different as soon as we step into the 100k+ territory, and Yandere Simulator by now has approximately 150k+ source lines of code. I think that probably continuous integration might be well worth it for Yandere Simulator. Is it too late to add continuous integration?NO, albeit it is going to take some time and skills to set up.
Stop caring about the criticism
Stop comparing Alex to Scott Cawton. IMO Alex is very similar to the person known as SgtMarkIV, the developer of Brutal Doom, who is also a notorious edgelord who, for example, also once told somebody to kill himself, just like… However, being a horrible person, SgtMarkIV does his job. He simply does not care much about public opinion. That's the difference.
Taproot! Everybody wants to have it, somebody wants to make it, nobody knows how to get it! (If you are asking why everybody wants it, see: Technical: Taproot: Why Activate?) (Pedants: I mostly elide over lockin times) Briefly, Taproot is that neat new thing that gets us:
Multisignatures (n-of-n, k-of-n) that are just 1 signature (1-of-1) in length!! (MuSig/Schnorr)
Better privacy!! If all contract participants can agree, just use a multisignature. If there is a dispute, show the contract publicly and have the Bitcoin network resolve it (Taproot/MAST).
Activation lets devs work get back to work on the even newer stuff like!!!
Cross-input signature aggregation!! (transaction with multiple inputs can have a single signature for all inputs) --- needs Schnorr, but some more work needed to ensure that the interactions with SCRIPT are okay.
Block validation - Schnorr signatures for all taproot spends in a block can be validated in a single operation instead of for each transaction!! Speed up validation and maybe we can actually afford to increase block sizes (maybe)!!
SIGHASH_ANYPREVOUT - you know, for Decker-Russell-Osuntokun ("eltoo") magic!!!
OP_CHECKTEMPLATEVERIFY - vaulty vaults without requiring storing signatures, just transaction details!!
So yes, let's activate taproot!
The SegWit Wars
The biggest problem with activating Taproot is PTSD from the previous softfork, SegWit. Pieter Wuille, one of the authors of the current Taproot proposal, has consistently held the position that he will not discuss activation, and will accept whatever activation process is imposed on Taproot. Other developers have expressed similar opinions. So what happened with SegWit activation that was so traumatic? SegWit used the BIP9 activation method. Let's dive into BIP9!
bit - A field in the block header, the nVersion, has a number of bits. By setting a particular bit, the miner making the block indicates that it has upgraded its software to support a particular soft fork. The bit parameter for a BIP9 activation is which bit in this nVersion is used to indicate that the miner has upgraded software for a particular soft fork.
timeout - a time limit, expressed as an end date. If this timeout is reached without sufficient number of miners signaling that they upgraded, then the activation fails and Bitcoin Core goes back to the drawing board.
Now there are other parameters (name, starttime) but they are not anywhere near as important as the above two. A number that is not a parameter, is 95%. Basically, activation of a BIP9 softfork is considered as actually succeeding if at least 95% of blocks in the last 2 weeks had the specified bit in the nVersion set. If less than 95% had this bit set before the timeout, then the upgrade fails and never goes into the network. This is not a parameter: it is a constant defined by BIP9, and developers using BIP9 activation cannot change this. So, first some simple questions and their answers:
Why not just set a day when everyone starts imposing the new rules of the softfork?
This was done classically (in the days when Satoshi was still among us). But this might argued to put too much power to developers, since there would be no way to reject an upgrade without possible bad consequences. For example, developers might package an upgrade that the users do not want, together with vital security bugfixes. Either you live without vital security bugfixes and hire some other developers to fix it for you (which can be difficult, presumably the best developers are already the ones working on the codebase) or you get the vital security bugfixes and implicitly support the upgrade you might not want.
Sure, you could fork the code yourself (the ultimate threat in the FOSS world) and hire another set of developers who aren't assholes to do the dreary maintenance work of fixing security bugs, but Bitcoin needs strong bug-for-bug compatibility so everyone should really congregate around a single codebase.
Basically: even the devs do not want this power, because they fear being coerced into putting "upgrades" that are detrimental to users. Satoshi got a pass because nobody knew who he was and how to coerce him.
Suppose the threshold were lower, like 51%. If so, after activation, somebody can disrupt the Bitcoin network by creating a transaction that is valid under the pre-softfork rules, but are invalid under the post-softfork rules. Upgraded nodes would reject it, but 49% of miners would accept it and include it in a block (which makes the block invalid) And then the same 49% would accept the invalid block and build on top of that, possibly creating a short chain of doomed invalid blocks that confirm an invalid spend. This can confuse SPV wallets, who might see multiple confirmations of a transaction and accept the funds, but later find that in fact it is invalid under the now-activated softfork rules.
Thus, a very high threshold was imposed. 95% is considered safe. 50% is definitely not safe. Due to variance in the mining process, 80% could also be potentially unsafe (i.e. 80% of blocks signaling might have a good chance of coming from only 60% of miners), so a threshold of 95% was considered "safe enough for Bitcoin work".
Why have a timeout that disables the upgrade?
Before BIP9, what was used was either flag day or BIP34. BIP34 had no flag day of activation or a bit, instead, it was just a 95% threshold to signal an nVersion value greater than a specific value. Actually, it was two thresholds: at 75%, blocks with the new nVersion would have the new softfork rules imposed, but at 95% blocks with the old nVersion would be rejected (and only the new blocks, with the new softfork rules, were accepted). For one, between 75% and 95%, there was a situation where the softfork was only "partially imposed", only blocks signaling the new rules would actually have those rules, but blocks with the old rules were still valid. This was fine for BIP34, which only added rules for miners with negligible use for non-miners.
The reasons miners signalled support was because they felt they were being pressured to signal support. So they signalled support, with plans to actually upgrade later, but because of the widespread signalling, the new BIP66 version locked in before upgrade plans were finished. Thus, the timeout that disables the upgrade was added in BIP9 to allow miners an escape hatch.
The Great Battles of the SegWit Wars
SegWit not only fixed transaction malleability, it also created a practical softforkable blocksize increase that also rebalanced weights so that the cost of spending a UTXO is about the same as the cost of creating UTXOs (and spending UTXOs is "better" since it limits the size of the UTXO set that every fullnode has to maintain). So SegWit was written, the activation was decided to be BIP9, and then.... miner signalling stalled at below 75%. Thus were the Great SegWit Wars started.
BIP9 Feature Hostage
If you are a miner with at least 5% global hashpower, you can hold a BIP9-activated softfork hostage. You might even secretly want the softfork to actually push through. But you might want to extract concession from the users and the developers. Like removing the halvening. Or raising or even removing the block size caps (which helps larger miners more than smaller miners, making it easier to become a bigger fish that eats all the smaller fishes). Or whatever. With BIP9, you can hold the softfork hostage. You just hold out and refuse to signal. You tell everyone you will signal, if and only if certain concessions are given to you. This ability by miners to hold a feature hostage was enabled because of the miner-exit allowed by the timeout on BIP9. Prior to that, miners were considered little more than expendable security guards, paid for the risk they take to secure the network, but not special in the grand scheme of Bitcoin.
ASICBoost was a novel way of optimizing SHA256 mining, by taking advantage of the structure of the 80-byte header that is hashed in order to perform proof-of-work. The details of ASICBoost are out-of-scope here but you can read about it elsewhere Here is a short summary of the two types of ASICBoost, relevant to the activation discussion.
Overt ASICBoost - Manipulates the unused bits in nVersion to reduce power consumption in mining.
Covert ASICBoost - Manipulates the order of transactions in the block to reduce power consumption in mining.
Now, "overt" means "obvious", while "covert" means hidden. Overt ASICBoost is obvious because nVersion bits that are not currently in use for BIP9 activations are usually 0 by default, so setting those bits to 1 makes it obvious that you are doing something weird (namely, Overt ASICBoost). Covert ASICBoost is non-obvious because the order of transactions in a block are up to the miner anyway, so the miner rearranging the transactions in order to get lower power consumption is not going to be detected. Unfortunately, while Overt ASICBoost was compatible with SegWit, Covert ASICBoost was not. This is because, pre-SegWit, only the block header Merkle tree committed to the transaction ordering. However, with SegWit, another Merkle tree exists, which commits to transaction ordering as well. Covert ASICBoost would require more computation to manipulate two Merkle trees, obviating the power benefits of Covert ASICBoost anyway. Now, miners want to use ASICBoost (indeed, about 60->70% of current miners probably use the Overt ASICBoost nowadays; if you have a Bitcoin fullnode running you will see the logs with lots of "60 of last 100 blocks had unexpected versions" which is exactly what you would see with the nVersion manipulation that Overt ASICBoost does). But remember: ASICBoost was, at around the time, a novel improvement. Not all miners had ASICBoost hardware. Those who did, did not want it known that they had ASICBoost hardware, and wanted to do Covert ASICBoost! But Covert ASICBoost is incompatible with SegWit, because SegWit actually has two Merkle trees of transaction data, and Covert ASICBoost works by fudging around with transaction ordering in a block, and recomputing two Merkle Trees is more expensive than recomputing just one (and loses the ASICBoost advantage). Of course, those miners that wanted Covert ASICBoost did not want to openly admit that they had ASICBoost hardware, they wanted to keep their advantage secret because miners are strongly competitive in a very tight market. And doing ASICBoost Covertly was just the ticket, but they could not work post-SegWit. Fortunately, due to the BIP9 activation process, they could hold SegWit hostage while covertly taking advantage of Covert ASICBoost!
UASF: BIP148 and BIP8
When the incompatibility between Covert ASICBoost and SegWit was realized, still, activation of SegWit stalled, and miners were still not openly claiming that ASICBoost was related to non-activation of SegWit. Eventually, a new proposal was created: BIP148. With this rule, 3 months before the end of the SegWit timeout, nodes would reject blocks that did not signal SegWit. Thus, 3 months before SegWit timeout, BIP148 would force activation of SegWit. This proposal was not accepted by Bitcoin Core, due to the shortening of the timeout (it effectively times out 3 months before the initial SegWit timeout). Instead, a fork of Bitcoin Core was created which added the patch to comply with BIP148. This was claimed as a User Activated Soft Fork, UASF, since users could freely download the alternate fork rather than sticking with the developers of Bitcoin Core. Now, BIP148 effectively is just a BIP9 activation, except at its (earlier) timeout, the new rules would be activated anyway (instead of the BIP9-mandated behavior that the upgrade is cancelled at the end of the timeout). BIP148 was actually inspired by the BIP8 proposal (the link here is a historical version; BIP8 has been updated recently, precisely in preparation for Taproot activation). BIP8 is basically BIP9, but at the end of timeout, the softfork is activated anyway rather than cancelled. This removed the ability of miners to hold the softfork hostage. At best, they can delay the activation, but not stop it entirely by holding out as in BIP9. Of course, this implies risk that not all miners have upgraded before activation, leading to possible losses for SPV users, as well as again re-pressuring miners to signal activation, possibly without the miners actually upgrading their software to properly impose the new softfork rules.
BIP91, SegWit2X, and The Aftermath
BIP148 inspired countermeasures, possibly from the Covert ASiCBoost miners, possibly from concerned users who wanted to offer concessions to miners. To this day, the common name for BIP148 - UASF - remains an emotionally-charged rallying cry for parts of the Bitcoin community. One of these was SegWit2X. This was brokered in a deal between some Bitcoin personalities at a conference in New York, and thus part of the so-called "New York Agreement" or NYA, another emotionally-charged acronym. The text of the NYA was basically:
Set up a new activation threshold at 80% signalled at bit 4 (vs bit 1 for SegWit).
When this 80% signalling was reached, miners would require that bit 1 for SegWit be signalled to achive the 95% activation needed for SegWit.
If the bit 4 signalling reached 80%, increase the block weight limit from the SegWit 4000000 to the SegWit2X 8000000, 6 months after bit 1 activation.
The first item above was coded in BIP91. Unfortunately, if you read the BIP91, independently of NYA, you might come to the conclusion that BIP91 was only about lowering the threshold to 80%. In particular, BIP91 never mentions anything about the second point above, it never mentions that bit 4 80% threshold would also signal for a later hardfork increase in weight limit. Because of this, even though there are claims that NYA (SegWit2X) reached 80% dominance, a close reading of BIP91 shows that the 80% dominance was only for SegWit activation, without necessarily a later 2x capacity hardfork (SegWit2X). This ambiguity of bit 4 (NYA says it includes a 2x capacity hardfork, BIP91 says it does not) has continued to be a thorn in blocksize debates later. Economically speaking, Bitcoin futures between SegWit and SegWit2X showed strong economic dominance in favor of SegWit (SegWit2X futures were traded at a fraction in value of SegWit futures: I personally made a tidy but small amount of money betting against SegWit2X in the futures market), so suggesting that NYA achieved 80% dominance even in mining is laughable, but the NYA text that ties bit 4 to SegWit2X still exists. Historically, BIP91 triggered which caused SegWit to activate before the BIP148 shorter timeout. BIP148 proponents continue to hold this day that it was the BIP148 shorter timeout and no-compromises-activate-on-August-1 that made miners flock to BIP91 as a face-saving tactic that actually removed the second clause of NYA. NYA supporters keep pointing to the bit 4 text in the NYA and the historical activation of BIP91 as a failed promise by Bitcoin developers.
We have discussed BIP8: roughly, it has bit and timeout, if 95% of miners signal bit it activates, at the end of timeout it activates. (EDIT: BIP8 has had recent updates: at the end of timeout it can now activate or fail. For the most part, in the below text "BIP8", means BIP8-and-activate-at-timeout, and "BIP9" means BIP8-and-fail-at-timeout) So let's take a look at Modern Softfork Activation!
Modern Softfork Activation
This is a more complex activation method, composed of BIP9 and BIP8 as supcomponents.
First have a 12-month BIP9 (fail at timeout).
If the above fails to activate, have a 6-month discussion period during which users and developers and miners discuss whether to continue to step 3.
Have a 24-month BIP8 (activate at timeout).
The total above is 42 months, if you are counting: 3.5 years worst-case activation. The logic here is that if there are no problems, BIP9 will work just fine anyway. And if there are problems, the 6-month period should weed it out. Finally, miners cannot hold the feature hostage since the 24-month BIP8 period will exist anyway.
PSA: Being Resilient to Upgrades
Software is very birttle. Anyone who has been using software for a long time has experienced something like this:
You hear a new version of your favorite software has a nice new feature.
Excited, you install the new version.
You find that the new version has subtle incompatibilities with your current workflow.
You are sad and downgrade to the older version.
You find out that the new version has changed your files in incompatible ways that the old version cannot work with anymore.
You tearfully reinstall the newer version and figure out how to get your lost productivity now that you have to adapt to a new workflow
If you are a technically-competent user, you might codify your workflow into a bunch of programs. And then you upgrade one of the external pieces of software you are using, and find that it has a subtle incompatibility with your current workflow which is based on a bunch of simple programs you wrote yourself. And if those simple programs are used as the basis of some important production system, you hve just screwed up because you upgraded software on an important production system. And well, one of the issues with new softfork activation is that if not enough people (users and miners) upgrade to the newest Bitcoin software, the security of the new softfork rules are at risk. Upgrading software of any kind is always a risk, and the more software you build on top of the software-being-upgraded, the greater you risk your tower of software collapsing while you change its foundations. So if you have some complex Bitcoin-manipulating system with Bitcoin somewhere at the foundations, consider running two Bitcoin nodes:
One is a "stable-version" Bitcoin node. Once it has synced, set it up to connect=x.x.x.x to the second node below (so that your ISP bandwidth is only spent on the second node). Use this node to run all your software: it's a stable version that you don't change for long periods of time. Enable txiindex, disable pruning, whatever your software needs.
The other is an "always-up-to-date" Bitcoin Node. Keep its stoarge down with pruning (initially sync it off the "stable-version" node). You can't use blocksonly if your "stable-version" node needs to send transactions, but otherwise this "always-up-to-date" Bitcoin node can be kept as a low-resource node, so you can run both nodes in the same machine.
When a new Bitcoin version comes up, you just upgrade the "always-up-to-date" Bitcoin node. This protects you if a future softfork activates, you will only receive valid Bitcoin blocks and transactions. Since this node has nothing running on top of it, it is just a special peer of the "stable-version" node, any software incompatibilities with your system software do not exist. Your "stable-version" Bitcoin node remains the same version until you are ready to actually upgrade this node and are prepared to rewrite most of the software you have running on top of it due to version compatibility problems. When upgrading the "always-up-to-date", you can bring it down safely and then start it later. Your "stable-version" wil keep running, disconnected from the network, but otherwise still available for whatever queries. You do need some system to stop the "always-up-to-date" node if for any reason the "stable-version" goes down (otherwisee if the "always-up-to-date" advances its pruning window past what your "stable-version" has, the "stable-version" cannot sync afterwards), but if you are technically competent enough that you need to do this, you are technically competent enough to write such a trivial monitor program (EDIT: gmax notes you can adjust the pruning window by RPC commands to help with this as well). This recommendation is from gmaxwell on IRC, by the way.
Mining is the process of using a computer to perform complex calculations on blocks of data which maintain the Bitcoin network. Miners are rewarded for their efforts with a certain amount of ... Mining is a crucial part of the Bitcoin network. But to most Bitcoin holders it’s a relatively mysterious business. Mining is where Bitcoin connects the internet to the real world. A lot of… Step 1 - Get The Best Bitcoin Mining Hardware. Purchasing Bitcoins - In some cases, you may need to purchase mining hardware with bitcoins. Today, you can purchase most hardware on Amazon.You also may want to check the bitcoin charts. How To Start Bitcoin Mining. To begin mining bitcoins, you'll need to acquire bitcoin mining hardware.In the early days of bitcoin, it was possible to mine with ... While Bitcoin mining involves computers and computations, it’s not so simple as installing a program on your home computer and getting started anymore. Successful Bitcoin mining has turned into a big business involving lots of players and mining hardware. That said, the individual or small group can mine Bitcoin still, but it takes some work. There are several motivations for mining Bitcoin. As miners earn rewards in Bitcoin, their profits can change greatly on market conditions – making Bitcoin mining a high risk / high reward industry. Anyone can join the Bitcoin network and become a miner. In fact originally Bitcoin can be mined on all personal computers and commonly available hardware. However, in 2020, specialized hardware called Application Specific Integrated Circuits ...
Let us take a look at the entire process involved in buying shares of cloud mining power live in the market as well as how to specify a specific price! Sign ... We take a look at P106 mining specific card from Nvidia. This card is made for miners but there is no point to it compared to normal GTX 1060. With only 3 months of warranty and the same price it ... Today we will review Bitcoin, Ethereum, Dash, Litecoin, Zcash, and Grin mining, profitability, and best miners! Get your own ASIC miner today - https://amzn.to/2IVSEKj Mine SiaPrime on original ... 🟣 0.1 BTC Get $50 Free 🟣 0.2BTC Get $120 Free 🟣 0.5 BTC Ger $200 Free 🟩 BITCOIN BLUEPRINT 🟩 🚀 Over 1000 Members 🚀 🎓 Learn To Trade Profitably Today! https://www ... Mining is done by running extremely powerful computers (known as ASICs) that race against other miners in an attempt to guess a specific number. The first miner to guess the number gets to update ...