Skip to content

Latest commit

 

History

History
119 lines (84 loc) · 4.52 KB

2018-02-16.md

File metadata and controls

119 lines (84 loc) · 4.52 KB

Mint Development Update 2018-02-16

Hello Mighty Minters!

The price of MintCoin rose this week, with the long-standing 7 satoshi wall finally giving way and seemingly arriving at a comfortable new 10 satoshi wall. This of course makes us all happy, but you can follow market changes anywhere! What we really want is to dig into the details of the MintCoin technologies, right?

This week saw our intrepid MintCoin developer sick for a few days. Luckily this was not enough to prevent all progress being made on the wallet and other MintCoin technologies.

Capitalizing MintCoin

What's in a name? That which we call a mint
By any other word would smell as minty fresh;

- William Shakespeare if he was alive today, probably

While working on the coin it occurred to me that I saw MintCoin being called both "Mintcoin" and "MintCoin". After a short discussion Minty All Day mentioned that he preferred "mintcoin". In true democratic fashion, he put up a Twitter poll and let the Internet decide:

https://twitter.com/MintcoinTeam/status/963874560318717952

The results are clear: MintCoin (capital 'M', capital 'C') received 73% of the votes.

From this day forward, we will use MintCoin as the official capitalization for MintCoin.

Fix for Assertion Failure on Exit

The wallet was exiting with an assertion failure on shutdown:

mintcoind: /usr/include/boost/thread/pthread/recursive_mutex.hpp:113: void boost::recursive_mutex::lock(): Assertion `!pthread_mutex_lock(&m)' failed.

An assertion is a check that software developers sometimes add to programs to prevent them from doing something unexpected. If a user encounters them then it is a bug.

In this case, probably nothing was done for a long time because this happened when the program was shutting down so did not seem to cause any harm. I decided that any assertion failure is a cause for worry, and dug into the problem. You can follow the debugging here if you are curious for the details:

shane-kerr/Mintcoin-Desktop-Wallet#6

The end result is that the wallet was temporarily forgetting about threads trying to connect to other nodes - on purpose - to allow the wallet to exit faster. Unfortunately this also ended up corrupting memory!

It is possible that this could have far worse impact than just a scary message, so I added a fix. The drawback is that the wallet can take up to 5 seconds to shutdown - a small price to pay to avoid running through invalid memory.

Pushing Fixes Upstream

I started the process of getting the fixes and other changes that I have been working on pushed upstream, into the official MintCoin repository on GitHub. Minty All Day is the gatekeeper, and has been cautious about merging changes without proper review. Right now that seems to be the limiting factor on getting new code into the MintCoin wallet.

If you can read C++ code, please contact Minty All Day or me (Shane Kerr) and we can figure out how to get a proper review.

Security Audit

I was approached by a couple of people who have done work with security audits of code. They said they would be willing to provide such an audit for the MintCoin codebase, which would be awesome. Keep your fingers crossed, and stay tuned!

Goal Recap

The main focus now is getting a new version of the wallet that we can publish which contains updated builds and all of the fixes that we can. In order for that to happen, we need:

  • Updated documentation
  • A Windows wallet build
  • A macOS wallet build
  • Merging the changes upstream (or forking the repository)

Things that would be nice:

  • ARM wallet build (for example, for Raspberry Pi)
  • A continuous integration (CI) environment
  • Updated DNS peer discovery
  • Speeding up the initial sync

Things that should be done someday:

  • Wallet code automated testing
  • Reducing the memory footprint

As always, if you would like to help, please either contact us or just fork the code on GitHub and start hacking.

Until next update, stay minty fresh!

Your Minty Pal, Shane Kerr

Copying

Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.