CryptoNote currencies announcements and official reviews

Re: Monero

Postby Febo » Wed Apr 08, 2015 1:40 am

Monero Monday Missives #20

December 8th, 2014

Hello, and welcome to our twentieth Monero Monday Missive! We're combining last week's one with this week's, as last week's Missive was pulled down shortly after being put up due to breaking issues in the Windows build of Monero (since resolved). Thank you for your patience!

Major Updates

Monero, recommended update, please take note of new download links:

Windows, 64-bit ( - SHA: facbeb2e408cf8b9a46534363eba161dbb047654
OS X, 64-bit ( - SHA: 7069de92083fb7831b063cc152e8f35508ff61bf
Linux, 64-bit ( - SHA: 16f3f55bcfbfae6135cbeda6574f651890a8be64
FreeBSD, 64-bit ( - SHA: 9fd0005b697e146a26a0bf9e3cd0c89b978f7fbd

NOTE: When opening your wallet with simplewallet for the first time with this update you will be prompted to choose a language for your mnemonic seed words, and you will be given a new 25 word mnemonic. You will always be able to restore from the old 24 word mnemonic seed, but it is of course recommended that you move to the newer, more robust mnemonic.

We are (finally) happy to release Monero We released last week, but due to a breaking Windows bug we pulled the announcement down until we solved the bug on the weekend. The major changes for include: OpenAlias support, per-kb fees, multi-language mnemonics, file-based checkpointing, MoneroPulse DNS checkpointing, a move from MSVC to an msys2 / mingw-w64 build environment for Windows, and brand new build CMake. adds some important fixes to the multi-language mnemonic system.

Due to the launch of MyMonero we feel it prudent to add a new section to the Missives, called "External Projects". This is a section to provide updates on other projects that are not an official part of the Monero Project or collectively created by the Monero Core Team, but is related to Monero in some way - thus OpenAlias would not be part of this section, but MyMonero would. If you have an update you would like included in this section, please email for inclusion the following Monday, or send any member of the Monero Core Team a message. If this section becomes overly full we may choose to shutter the section, so please keep updates brief and only those that are important. It is not a marketing area, and so every new mining pool launched or minor feature added to a pool will not be eligible for inclusion (although if you've done something cool, let us know;)

We're also quite happy to announce the addition of a new feature to Monero: Smart Mining. This is a feature that will evolve over time, but at its most basic it is something that will allow everyone running the client software to support the network in an unobtrusive manner. Smart Mining detects your CPU usage, and if your CPU is idle and you aren't on battery power (for laptops and/or connected UPS devices) it will begin mining. As soon you switch to battery power or your CPU activity picks up it will pause mining until it sees it is safe to start again. You still set your Monero address for Smart Mining, as always, and whilst your chances of solving a block may be relatively small (for now;) it is still an easy way to support the network without needing to purchase expensive equipment. This work is complete (for Linux) and is currently being tweaked to work on our other supported operating systems. Ongoing process can be followed here: ... art-mining

External Projects

MyMonero: the various modal windows, such as the login screen, should be displaying correctly across devices now. We are fixing the scroll issues which still plagues these on some devices. Just to make sure everyone is aware after the recent issues: the MyMonero code has unit tests using the Jasmine testing framework for JavaScript, as well as tests for other parts of the backend application. These tests are executed and checked for every commit. We also have had HTTP Strict Transport Security (HSTS) enabled from the beginning, and have various other things enabled for client-side security such as X-Frame-Options set to deny, X-XSS-Protection on, and X-Content-Type-Options set to nosniff.

I2PD: for those not aware, the i2pd project is a new implementation of the i2p protocol in C++, and is the software that Monero will use for its connection to the i2p network. The source code of the project can be found here: - the regular stream of commits is testament to the ongoing progress being made. The i2pd team will provide regular updates on i2p-specific functionality as it is added and the project grows to a point of maturity.

Dev Diary

Build: tests are now disabled when building the build-release, build-debug, or release-static targets. The default make target (all-release) will include tests, as will all test- targets, obviously.

Account: lots of fixes to multi-lang mnemonics, although UTF-8 on Windows still seems to be a bit shaky.

Core: all and changes have been covered over the past few Missives.
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm

Re: Monero

Postby Febo » Wed Apr 08, 2015 1:44 am

Monero Monday Missives #21

December 15th, 2014

Hello, and welcome to our twenty-first Monero Monday Missive!

Major Updates

We're aware of the slow startup issues on some Windows environments (over an hour for the daemon to startup for some people). We believe we've identified the problem, and will be rolling out a test fix in the next couple of days, for inclusion in

There have been a number of patches merged over the past week to fix issues with simplewallet's new multi-language mnemonics

External Projects

MyMonero: due to a very broad DDoS attack at the data center in which MyMonero is hosted (not targeted at MyMonero) the service was offline on Sunday for a 12 hour stretch. We are putting some effort in place to ensure this does not happen again in future. New features added this past week: a "copy to clipboard" helper is now available on the right of your Monero address on your dashboard, as well as on the login key review screen and account details screen. In addition, clicking on a transaction in the dashboard or your transaction history screens will show additional details, such as the payment ID used.

ForkGuard: added and

I2PD: massive progress was made this week adding support for the su3 router update format (the previous .sud / .su2 format being deprecated), which is used to deliver updates to all routers on the i2p network, including: router update alerts, plugin update alerts, reseed data, and news feed items. Details on the su3 format can be found here:

Dev Diary

Account: still more fixes to the restore paths and multi-lang mnemonics, known issues with UTF-8 on Windows remain

Core: libunbound lookups moved to a thread in order to trap for failing / slow DNS lookups
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm

Re: Monero

Postby Febo » Wed Apr 08, 2015 1:45 am

Monero Monday Missives #22 - Year in review

January 5th, 2015

Hello, and welcome to our twenty-second Monero Monday Missive!

This is our first Missive for 2015, after a 2 week break over the end of December. We'd like to earnestly thank everyone for their support over the course of this year, and for joining us on the start of our Monero journey. We'd also like to take this opportunity to look back on the past 8 months, and see where we got to.

State of Monero: 2014

As an open-source project, Monero is built on the back of volunteers, contributors, and donations. So let's start with a financial report.

For donations received over the year: we received 21 636.40655 XMR spread over 4343 transactions, and 8.04559 BTC spread over 25 transactions. Thus our average XMR donation is around 5 XMR, and our average BTC donation is around 0.32 BTC. As most of our costs are BTC based, XMR donations were traded into BTC where necessary (typically through OTC trades and not on-market), giving us a rough total of all receipts of 39.536205689 BTC (in XMR donations) + 8.04559 BTC (in BTC donations) = 47.581795689 BTC.

Expenditure for the year comprised of 3 totals as some costs could not be settled in BTC or were preferably settled in XMR. Our expenditure was 190.513492 BTC + 1 891.31 XMR + US $5 732.80, which is around the 212 BTC mark. Thus the shortfall of 164.5 BTC was paid out of the Core Team's own pockets in the hopes of recovering the funds later on (ie. just in case anyone was wondering, not only do the core team not get paid at all, but we've put a significant amount of funds into Monero).

So, what did our ~212 BTC get spent on over the year? Or, in other words, what did we accomplish? Here's a bit of a taste before we dig into the nitty-gritty:


Core Development

Well, let's start by excluding a lot of development done in branches on forks, and focusing on the master branch of the git repo. We inherited the Monero project pretty much from the end of April, with thankful_for_today's last commit on April 30th, 2014.

In order to see what we did with some pragmatism we took two folders, one containing the Monero source on April 30th at that last commit, and one containing the Monero source on December 31st. We removed everything in the external/ folder, except the CMakeLists.txt, so that we weren't including external libraries in our count. We then used Araxis Merge to produce a diff report between the two folders (plus Github's compare tool to give us additional information). We then subtracted the license changes we made earlier this year (208 files were affected, which means that for each we have to remove 2 lines from the "removed" count, 1 line from the "changed" count, and 28 lines from the "inserted" count). The summary is below, and whilst it obviously precludes things like where we made several changes to the same line of code, or missteps we reverted, it gives a very general indication of the effort.

35 weeks of development (245 days) since Monero was inherited by the Core Team
594 separate commits
11 contributors
10 221 modified lines
12 706 new lines
32 lines removed
Now may be thinking "wow, that's like 94 lines of code a day!", but it's important to remember that included in this are documentation and code comments, mnemonic word lists for several languages, as well as changes made to Bytecoin early on that we merged in.

However, it doesn't diminish the gargantuan effort that went into the Monero core over the year, and we are truly grateful to all who have been involved. Some of the highlights of work that was committed to the Monero core master repo over the past 8 months, in chronological order, include -


got Monero building and running on OS X

removed purposely obfuscated hashing loop
added a 'diff' daemon command to show current estimated difficulty and hash rate
more hashing optimisations, including AES-NI support
new wallet RPC commands: save_bc, getaddress; new daemon RPC commands: mining_status
enabled checkpointing and checkpoint verification
fixed the block reward penalty mechanism and dynamic block sizing
new wallet RPC commands: incoming_transfers
fixed exit flags, added --exit-after-cmd simplewallet flag

added payment IDs to simplewallet's 'transfer' RPC command
added Doxyfile for code documentation
refactored parts of simplewallet
added Electrum-style mnemonics to simplewallet
got Monero building and running on Arch Linux
further improvements to hashing algorithm, including huge pages and AES-NI key expansion
added tx auto-splitting and changed transaction creation semantics internally

new wallet RPC command: get_bulk_payments; new daemon RPC command: get_connections
new README, license changes to BSD 3-clause

optional height parameter for simplewallet refresh
fixed wallet restore from seed
new wallet RPC command: query_key; new wallet commands: seed, viewkey
stopped a major spam attack dead in its tracks
highly sophisticated attack causes the network to fork for 30 minutes, urgently and immediately patched

blob checkpointing added (over and above normal block hash checkpointing)
got Monero building and running on FreeBSD
major documentation of several C classes
new versioning system to allow for rapid identification of build commit
started enforcing GPG signed commits and merges, initial GPG keys added
testnet launched
dropped support for Visual Studio, added support for mingw-w64 + msys2
DNS resolver (libunbound) added, initial OpenAlias support
dynamic file-based checkpointing added
multi-language mnemonics introduced for wallets
new wordlists: Portuguese, and Spanish (first 4 letters unique)
DNS checkpointing added for rapid checkpoint alert / enforcement

reworked log level choices
new wordlists: English (first 3 letters unique), as well as Japanese (first 4 letters unique)
PoW algorithm fully documented
switched to RapidJSON for JSON parsing
changed wallet file format (encrypted JSON)
massive CMake overhaul begun by KitWare, the creators of CMake

per-kb transaction fees introduced
CMake overhaul completed, dynamic and static builds finally working again on all platforms

bug fixes, bug fixes, and more bug fixes
The Monero Research Lab

Another major effort has been the Monero Research Lab, the MRL. In addition to the members of the core team, the triplets (Surae / Sarang / Shen Noether, obviously pseudonyms) spent months reviewing the CryptoNote whitepaper, publishing a synopsis of their review, and then building on that by doing extensive Monero research and finally producing several important research bulletins. From the ground-breaking chain reaction attacks in MRL-0001 to the deep dive explanation of Monero Ring Signatures in MRL-0003 (and the accompanying Python implementation) it has been 8 months of remarkable output for a group of people that at best only knew of each other very peripherally.

The Monero Research Lab members have also engaged regularly with Bitcoin researchers, including a mutually beneficial friendship with Andrew Poelstra who is included in the group of the "MRL Friends".

Between the whitepaper annotations, the review, and the MRL research bulletins published in 2014, 655 lines of python were released and over 25 000 words were written, all of which was the culmination of over 197 000 words spent in intense academic discussion.

The academics in the MRL also had an opportunity to meet up with Riccardo Spagni (fluffypony) and Tom Winget (tewinget) towards the end of the year, in a weekend of epic nerdiness that included a trip to a natural history museum and getting stuck on the side of the highway with no petrol due to a faulty gauge. Don't worry, the emergency petrol fill up wasn't paid for by donations;)


The Monero web infrastructure consists of 4 key components: web hosting, testing infrastructure, seeding, and download hosting.

Our web hosting serves the Monero website, the Monero forum, the Monero Research Lab site, and so on.

Testing infrastructure consists of a Mac Mini hosted at MacStadium, as well as a beefy testing box hosted at Hetzner in Germany, on which we have a number of VMs for the various operating systems and variants we target. Our QA lead contributor, Gazby, who has recently started will be bringing the testing infrastructure up to scratch, and adding things like Jenkins for nightly builds and Gitian for deterministic signed releases.

Seeding infrastructure consists of several geographically separated boxes that keep the records updated with active seed nodes.

Download hosting consists of several servers scattered across the globe (3x USA, 2x UK, 1x Germany), and it serves all static content including the blockchain downloads, Monero binaries, MRL publications, and so on. The Monero blockchain alone is downloaded hundreds of times in a month, with our bandwidth usage regularly exceeding 2tb a month across the download nodes. Obviously this provision is not cheap, which is why your continued assistance to this project is greatly appreciated.


An important project that the Monero Core Team created and developed is OpenAlias. Monero addresses are ugly, complex, and not really human readable. But then, too, so are Bitcoin addresses. Typically most cryptocurrencies attempt to solve this by having some sort of centralised register, say they've developed "aliasing", and call it a day. For Monero, this approach simply wasn't good enough.

To understand why it is important one must first understand "Zooko's Triangle". Zooko Wilcox-O'Hearn, the incredible brain that contributed so much to the Tahoe-LAFS distributed file system (and which was first released May 2nd, 2007), posited that any naming or aliasing system has three goals or desirable traits (and we're just going to quote Wikipedia here) -

Human-meaningful: The quality of meaningfulness and memorability to the users of the naming system. Domain names and nicknaming are naming systems that are highly memorable.
Decentralized: The lack of a centralized authority for determining the meaning of a name. Instead, measures such as a Web of trust are used.
Secure: The quality that there is one, unique and specific entity to which the name maps. For instance, domain names are unique because there is just one party able to prove that they are the owner of each domain name.
Zooko initially concluded that it was impossible for a naming system to have all 3, and at best it could hope to have 2 of the 3. Subsequently, systems such as Namecoin and Twister proved that it was, in fact, possible to have all 3.

Despite that, most of the aliasing / naming implementations that exist today seem to fail on the decentralised aspect (eg. requiring that a block is solved to register an alias centralises it in the hands of the large mining pools, and also limits the number of aliases that can be created a day), and almost always fail on the long-term goal of "human-meaningful".

We say the latter because a limited aliasing system where globally unique nicknames are chosen invariably devolves to a post-land-grab scenario where so many variants of "bob" have been acquired that a user is forced to chose bob0923840129832 as his alias, which really doesn't solve the naming issue at all. In addition, it forces the cryptocurrency creator to be the one responsible for solving alias disputes, and in many cases aliases are permanent and cannot be changed if you lose your private key.

OpenAlias is different. Not only does it "square Zooko's triangle" (still a unique and difficult to accomplish task), but it allows for the offloading of decentralisation to Namecoin or GNUnet or similar, whilst still allowing for the offloading of conflict resolution to existing systems such as ICANN's ADR (Alternative Dispute Resolution). Best of all, it leverages the fact that so many people and companies already own their own domain names, so there is no need for additional complexity.

Monero has implemented OpenAlias on quite a basic level, and will be improving its support as time goes on. The OpenAlias project has also not been standing still, and has been working on several sub-projects.

GUI and Database

With the two attacks we thwarted in 2014, the GUI development had to take a bit of a backseat. On the other hand, the blockchain database implementation has progressed nicely, and is currently being rebased to the latest master and tests are being updated and created for it.

The GUI code alone already consists of 5 213 lines of QML and over 100 lines of C++, and that is well before anything is wired up. The blockchainDB code consists of over 60 commits on the implementation alone (over and above the tons of commits to create the generic classes and implement all the functionality prior to that), with over 5 500 lines of code already part of it. It truly has been a monumental engineering task.

Monero Forum

A project guided and directed by the Core Team, although primarily written by a contributor (Eddieh), the forum grew out of an interesting need. On the one hand, Monero is still in its infancy, and the Monero sub-Reddit would likely have sufficed for quite some time. On the other hand, there was a general pressure for us to have our own forum, our own home.

So why didn't we just use something off-the-shelf? There were several reasons. The primary reason is that most forum software (SimpleMachines, phpBB, Vanilla, etc.) is either too clunky or too old to really be workable in a modern context. And, too, it would be something we would have to live with for a long time (see: Bitcointalk, for instance). Customising existing forum software to suit our needs would not have been cheap (see: Bitcointalk again). Thus a decision was made to see if we could find someone to pursue creating something fresh for us as a peripheral exercise.

After 6311 lines of PHP, 1226 lines of CSS, and 135 lines of JavaScript, we're proud of what we've produced. Instead of using antiquated content systems like BBCode, we have MarkDown. Instead of pages and pages of threads, we have infinite scrolling and threaded views. Instead of fundamentally flawed trust systems like "default trust" we have a synchronised copy of the Bitcoin-OTC Web of Trust, allowing users with existing WoT accounts to immediately have their trust groups accessible on the Monero Forum for trading. Instead of only meaningless sorting by date (which we have!) we have posts sorted by weight. Since weight is a product both of post age, insightful/irrelevant votes, and your trust relationship to the poster, you are already able to visit a thread and only see comments that are relevant to you, with all other comments collapsed. We are actively massaging more usefulness out of the weighting, but it is core and fundamental to the forum.

Obviously this is a project that still has a LONG way to go to reach maturity. With that in mind, don't forget that you are key to this: if there's something about the forum you don't like, or a feature you want, or a bug you've found, put it in the Meta section of the forum (until we have a github repo that you can post issues to).

The Monero Missives

Our first Missive was put out on Monday, June 2nd, 2014, and has been instrumental in collating and bringing together various little snippets and pieces of work and threads every week. In the 30 weeks from that first one till the end of the year we put them on pause for 4 weeks during the attacks in August, and took a 2 week break at the end of the year. The remaining 24 weeks had 21 Missives in them, giving quite a bit of coverage and keeping our userbase as informed as possible. Some Missives are easy and only take us two or three hours to put together.

Some Missives are substantially harder due to time constraints, dependencies, research (see: this Missive you're reading, for instance;) or just the sheer amount of stuff that is going on. In total, the 21 Missives we put out over the past 8 months contained nearly 16 000 words over 689 sentences!

And just for fun, this Missive took several days to put together (not all day, every day, mind you) and unsurprisingly ends up being our largest Missive by far, at 3 450 words and 111 sentences!

Other Core Team Projects

The two other projects the Core Team released in the year are the Monero DNS seeder (xmr-seeder), and URS, a Unique Ring Signature signing tool written in Go. Both of them are active contributions to the Monero infrastructure, and continue to be useful and fundamental on a daily basis.

External Projects: 2014

The Monero Core team and core contributors obviously aren't the only ones working on Monero-related projects. Some highlights from the year include:

Node CryptoNote Pool

When Monero first started there was no open-source pool software for it. Through the collective efforts of zone117x and lucasjones, an open-source pool was developed and released. It was an incredible undertaking, given the monstrous lack of documentation and code comments in the CryptoNote source, and we owe them a debt of thanks.

i2pd Development Partnership

Initially this started as a partnership with the i2p team, with a view to getting i2pcpp to a workable stage. When i2pcpp stalled, and on advice from the i2p team, we form the Privacy Solutions working group between Monero, AnonCoin, members of the i2p team, and the i2pd developers.

The focus for the past few months has been on i2pd, which has made amazing progress. Since the launch of the PrivacySolutions partnership at the end of July, a series of 692 commits has brought i2pd up to a stage where it can maintain relatively stable connections to the i2p network.

ForkGuard and MoneroClub

Both services launched and operated by Atrides, ForkGuard provides realtime information on the current block height for pools and services that run full Monero nodes, and MoneroClub is a listing of localised Monero and fiat OTC trade offers. Atrides isn't stopping there, and for his next project he's looking to produce a Monero fork of OpenBazaar!


Owned by Riccardo Spagni (fluffypony) and Risto Pietilä (rpietila), and operated by fluffypony, MyMonero is the first web-based client for Monero. In doing so it closes a major end-user usability gap, and goes a long way towards making Monero useful and usable.

Crypto Kingdom

Created and started by his lordship, King Risto, Crypto Kingdom is a retro-style virtual world game where players can interact, build, create, and so on. An online playable version is in the works, and as Monero is driving the in-game resources and currency it is well on its way to becoming a fully-fledged microeconomy!

Looking Forward: 2015

We have a lot in the pipeline for 2015. A few things that we'd like to highlight that you can look forward to:

more MRL academic goodness, including some of the work started at our MRL mini-meetup from 2014
a finalised, working, tested blockchain DB implementation using LMDB
i2p integration
some additional blockchain DB implementations
finalisation and release of the Monero core GUI
the release of smart mining functionality
the finalisation of a complete overhaul of the RPC functionality
HTTPS and simple auth support for RPC servers
a new, unified, well-documented RPC interface
blocknotify and walletnotify equivalents in the daemon and wallet client
a complete replacement of the wallet/server IPC with 0MQ
multi-signature transactions
open-sourcing the Monero Forum software
the release of some OpenAlias sub-projects
And, undoubtedly, much more both for Monero core and related external projects.

Of course, none of this would be possible without donations from our users, and we are most appreciative and grateful to those that have donated thus far. We hope that over the next year you will continue to help and assist us - and don't forget our donation addresses are powered by OpenAlias, both XMR and BTC donation addresses are on

Thank you for a great 2014, and here's to a great 2015!
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm

Re: Monero

Postby Febo » Wed Apr 08, 2015 1:50 am


We are moving to a new Missive format, it is now in the form of a podcast!

To download the podcast directly please use this link to the MP3, or use the HTML5 player on the blog post.

Community members are encouraged to transcribe it so that non-English speakers can benefit as well. A brief summary of the points discussed is:

The release of the new website, and the move to the domain

The publication of MRL-0004, Improving Obfuscation in the CryptoNote Protocol

Monero's design and development goals

Dev Diaries and External Projects will resume being covered from next week. Until then!
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm

Re: Monero

Postby Febo » Wed Apr 08, 2015 1:58 am

To download the podcast directly please use this link to the MP3, or use the HTML5 player on the blog post.

A brief summary of the points discussed follows, and a full transcription of the podcast is on the blog post (currently WIP).

In this week's podcast we restart dev diaries, and focus on two things:

Updates on blockchainDB, including rationale, performance considerations, and future steps

Moving away from the old RPC system for talking to the daemon, to a 0MQ-based IPC system

Technical note: in order to make this Missive a little more accessible, given its technical nature, we have taken some liberties in using the term "RPC" to refer to the JSON RPC API 2.0 over HTTP system used when currently communicating with the daemon, and "IPC" to refer to a complete replacement of that subsystem with 0MQ subsystem based on their Router/Dealer pattern, using the zmq_tcp transport for compatability.
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm

Re: Monero

Postby Febo » Wed Apr 08, 2015 2:00 am

To download the podcast directly please use this link to the MP3, this link to the AAC/MP4 or or use the HTML5 player on the blog post.

A brief summary of the points discussed follows, a full transcription of the podcast is outstanding (can be submitted via Github Issues).

In this week's podcast we cover external projects, with an interview with the team.

MyMonero has added existing wallet import functionality. Just use your 25 word mnemonic from simplewallet when logging in, and after paying the 10 XMR once-off fee your wallet will be available in MyMonero.

An interview with two members of the team, binaryFate and Krongle, discussing some of the system's inner workings and challenges they've faced.

Until next week!
Posts: 23
Joined: Mon Aug 18, 2014 9:57 pm


Return to Announcements

Who is online

Users browsing this forum: No registered users and 1 guest