The long awaited v0.6 soft-fork update is finally here! Among a host of technical updates over v0.5, the new release boasts a number of GUI (graphic user interface) updates as well as the proof of concept for a real pivot in development flow. I’ll get to the technical updates and development changes later, but for now let’s just talk about the design changes and how to get set up.
Peercoin-qt and the Merging of Peerunity
When Proof of Stake (PoS) was still new on the block, having a convenient screen for detailed minting information was useful, but not necessary. In order to provide such a visualization without risking the security of the high-stakes users, GUI design split into two separate implementations: Peercoin-qt, a client with just the core functionality, and Peerunity, a client with all the bells and whistles attached. With the years of field testing that Peerunity has undergone, it has now been deemed appropriate to merge the two clients together. With the release of v0.6, the advanced features of Peerunity have been absorbed into Peercoin-qt so there will only be the one client going forward. The Peercoin Team thinks this will make things much simpler for both the users and the developers. In fact, the whole look of the wallet has had a makeover. Let’s check it out!
Installing Peercoin-qt on a Fresh System
If you already have a Peercoin wallet installed on your system, you can skip this section. Otherwise, read on for more about how to use the v0.6 wallet:
Peercoin is extremely light weight with a blockchain that is less than 1 GB in size and memory requirements that are in the low hundreds of MB. This means that you could likely run a node on whatever computer you’re currently reading this article on (no mobile support yet, however). To get the latest version of the wallet head on over to https://peercoin.net/download and click the download button for your operating system. Then, install it as you would any program and once it loads you’ll see a spinning arrow in the bottom right corner of the window. If you mouse over this, you can see the blockchain downloading. Once it is complete (many hours) it will turn into a check mark and you’re all synced up! While that is finishing, you might want to encrypt your wallet from the ‘Settings’ menu, then backup your wallet from the ‘File’ menu. In the ‘Receive’ tab you’ll be able to make a ‘New Address’ that you can label whatever you want and send Peercoin to. Wait until you have finished syncing and have Peercoin in your wallet, then you can go ahead and ‘Decrypt Wallet for Minting Only’ from the ‘Settings’ menu. If you’re connected to the internet and keep the program running (you can have it ‘Minimize on Close’ in the ‘Settings>Options>Window’ menu) you will eventually mint brand new Peercoin! (Depending on how many coins you have, with a minimum of 30 days to mature.)
Updating to v0.6
If you already have a Peercoin wallet, you will have to clear your blockchain history because of the update to the leveldb database ported from Bitcoin. You will find your version of the chain in one of these places, depending on your operating system:
Now would be a good time to make a quick backup of your wallet by copying and pasting it to some other folder, like your desktop. Then, rename the folder to something like ‘ppcoin_backup’. Next, download and run the client from here: https://peercoin.net/download. Now shut the client down in order to copy and paste the wallet.dat file from the backup directory (or your desktop) to the new ‘Peercoin’ or ‘.peercoin’ that has appeared (overwriting the empty wallet file that was created). Finally, you can start the client again and once the blockchain downloads you should see your funds safe and sound. Leave the wallet locked (including for minting) until you’ve finished syncing and don’t delete your backup until everything looks right. See the above section (installing on a fresh system) if you need more help.
So what does v0.6 actually contain? Well, I’m glad you asked. Here’s what one of our developers, hrobeers, gave for a change log:
- Rebase to bitcoin v0.8 codebase (leveldb backend)
- 90% supermajority softfork including:
- BIP34: block height in coinbase
- Port of peerunity features into reference client
Peercoin v0.6 reworks how keys and values are stored by rebasing to Bitcoin v0.8 with leveldb. Peercoin has always followed the philosophy of adding Proof of Stake on to the existing framework of Proof of Work, trying to keep as much of the Bitcoin code intact as possible. This makes it easier to absorb beneficial performance enhancements that Bitcoin discovers, and that is precisely what was done here.
Because there are no consensus breaking protocol changes, v0.6 is being done as a softfork. This means that clients still running v0.5 will still receive blocks, but will be unable to mint or participate in the network. Still, we want everyone to be on the same page, so it will take a 90% supermajority threshold after the date of Tue 12 Dec 03:40:00 UTC 2017 to trigger the fork. You can watch the fork’s progress here.
In addition to attaching the block height to the coinbase transaction of each block via BIP34, the fork will include OP_CHECKLOCKTIMEVERIFY (CLTV). This opcode allows for the creation of time-dependent contracts. There are a number of instances where this is useful, many of which involve using CLTV as a way of expiring a multiple-signature contract or as part of a pay-to-script-hash output. You can read more about it on the BIP65 proposal page.
And finally, as has already been mentioned, there is a merging of Peercoin-qt and Peerunity. There is one more change that may seem small, both from a development perspective and from a user perspective. In the ‘Settings>Options>Main’ menu there is a little check box to ‘Enforce checkpoints’. Checkpointing, or referring to a central entity for the long term block history, was an area of contention early on in the Peercoin chain because in theory, if the person in control of the checkpoint acted maliciously, they could cause widespread issues with chain stability. With time, however, Peercoin’s distribution has improved and the developers are ready to give the users a direct and easily accessible way to turn off checkpointing. You can feel free to uncheck that box because if there is ever any extreme event that leads to a fork you can always check it again.
New Flow of Development
One of the reasons why Peercoin v0.6 is such a momentous update is because of the changes in the development team behind the update. The Peercoin Team is stronger and more diverse than ever, branching out far beyond the original founder Sunny King (SK), though it is important to note that SK had a very large part in putting forward this update. In fact, SK packaged and presented the work done on Peercoin up until then for an easy transition into publicly commented and implemented pull requests on github. You can keep up to date on the development branch on github.
There are now five people with commit access to the main branch: Sunny King, Sigmike, Peerchemist, Hrobeers, and Backpacker. There are a number of other developers and core team members and the effort to build a better Peercoin is going strong. Peercoin’s client updates always have been and will continue to be high-quality, but opening up the development flow may draw participation from new allies that we might not otherwise have known. The v0.6 update is a powerful token of achievement for a fresh collaboration of minds that believe in the success of Peercoin.