Canonical Ledgers Q4 2018 Report

Previous Updates
Secured
-----------------------------------
ORIGINAL PLEDGES START
-----------------------------------
-DEVELOPMENT

--Develop Factom Discord Tipbot

--Publish InfluxData configurations for collecting stats from multiple factomd nodes to a central time series database

--Explore writing a Telegraf plugin specifically for factomd

--Create an alternative service for directly purchasing Entry Credits with USD or other cryptocurrencies

--Identify and develop high value integrations for Factom

--Submit pull requests to the Factom codebase

--Explore collaborating on development of Factom based digital identities

--Continue to maintain the factomd, factom-walletd, and factom-cli Arch Linux packages in the Arch User Repository

-TESTNET

--Two Testnet nodes

--Develop Testnet infrastructure tools

- PLEDGED EFFICIENCY

2 nodes: 50%
1 node: 25%
-----------------------------------
ORIGINAL PLEDGES END
-----------------------------------
-----------------------------------
Relevant links:
- Forum Q+A
- Aggregated pledges
- Application
- Supporting documents
-----------------------------------
-----------------------------------
Secured
Updated originally posted here.

**
Here is a summary of where we are at regarding the pledges we made during our campaign.

--Develop Factom Discord Tipbot

This has been completed since the end of May and the code can be found here. Unfortunately, due to the fact that we would be considered a money transmitter in the US, we have not been able to deploy this bot on the Factom Discord server. We are in talks with another ANO about them hosting and running the tipbot, but this hasn't been a high priority for them. In August we made a number of additions at this ANO's request to help reduce any potential for efficient money laundering through the tipbot. These changes limit the daily withdrawal and tip amount per user, and disables tipping for users with account balances that exceed an upper limit. We are still hoping to see the tipbot be deployed on the Factom Discord server, but this really depends on another ANO stepping up to run it. Please contact us if you are interested.

Despite not being able to actually deploy this project, it taught us a lot about building reliable applications that integrate with Factom. We have leveraged this knowledge in several other projects.

--Publish InfluxData configurations for collecting stats from multiple factomd nodes to a central time series database

Much of our non-sensitive server configurations can be found in our pkgbuilds BitBucket repository. We use Arch Linux for our OS so these are scripts to build packages that we install on our servers. However, the individual configuration files can be found in that repo and used generically on other Linux distros.

In addition to our telegraf configuration files for collecting runtime data from factomd, and our alerting TICK scripts, we have also developed a systemd unit file for running the factomd docker container as a systemd service and a script for upgrading the factomd docker containerwhen using this systemd service. It could easily be edited to work without use of the systemd service. This is being used by at least one other ANO. Please feel free to direct any technical questions about these tools to Adam on Discord.

While on the topic of other helpful tools we have developed, we would like to also mention the command line completion program that we created for factom-cli, as well as fct-address-monitord, an alternative accounting program written in golang for tracking FCT deposits, recording their fair market value, and adding it to a bitcoin.tax account. Some features of this tool include a systemd unit file for running it, a SQLite database for recorded transactions, the ability to specify a blockheight to start scanning from, built in command line completion, and not needing to run factom-walletd alongside it. The repo still needs a README but, again, please feel free to reach out to Adam on discord if you have any technical questions.

--Explore writing a Telegraf plugin specifically for factomd

We were looking into this at the time of applying to be an ANO. We quickly determined that we could collect all of the data we needed with the existing plugins for telegraf. Since it appears that we are the only ANO using the InfluxData stack for our monitoring, we decided not to pursue this project.

--Create an alternative service for directly purchasing Entry Credits with USD or other cryptocurrencies

We were on the cusp of releasing such a site, however DeFacto beat us to the punch, and they did a great job so we are glad they did. Fortunately they were able to benefit from the work we had already done on the Factomize forum add-on in PHP for integrating Factom. This became a very low priority and at this time we don't have plans to launch such a site.

--Identify and develop high value integrations for Factom

We were fortunate to be approached by David Chapman to develop the Factomize Forum add-on. We completed this project and are proud to say that it is being used on this very post. I'm sure you are all familiar with it at this time. We are very pleased to see our work being improved on by Factomize's developers. You can read more about the add-on project here.

At the moment we are contributing to another project that we are not at liberty to discuss. We hope that it will be announced in the coming months.

--Submit pull requests to the Factom codebase

We have submitted a total of 9 PRs against the four main FactomProject repos. These are all very small PRs that improve documentation or fix a minor bug. They can be found at the following links:
- factom
- factomd
- factom-walletd
- factom-cli
We took a break from submitting and updating PRs because of Factom Inc's inability to merge PRs. Recently they announced they have a proper Contributor License Agreement so we will be taking another look at how to contribute directly to the Factom codebase. We will be rebasing these PRs on the latest commits in the master branch with the CLA signed.

We are actively discussing strategies with Factom Inc on how to increase outside developer involvement with the Factom codebase.

--Explore collaborating on development of Factom based digital identities

This was something we were in talks with Factomatic about collaborating on right around the time we applied. However this never came to fruition for a variety of reasons, mostly due to more important projects taking precedent for both us and Factomatic and poor timing to make a collaboration work. We don't have plans to pursue this further at this time.

--Continue to maintain the factomd, factom-walletd, and factom-cli Arch Linux packages in the Arch User Repository

These PKGBUILDs have been kept up to date. You can find them here. They build the software from source and include systemd unit files for running them as a systemd service. They do not use the Docker images because Arch Linux strives to be a minimalist distribution, and most Arch Linux users would prefer to run the software directly.

--Two Testnet nodes

Up until about 3 weeks ago we ran three testnet nodes and tried to make them work in a guard node configuration. This worked for awhile but we started to run into issues attempting to get the guard node setup to work due to what we believe may be issues with applying the SpecialPeers config option in the config file. This isn't an issue that got much attention from the factomd devs and probably rightly so as guard nodes are not part of the current recommended setup.

In any case, in order to reduce our hosting costs due to a severe down market relative to what we initially anticipated when we applied, we opted to shutdown the two additional testnet nodes we had been running since we didn't see a lot of benefit to us or the community from running them. When we update, we spin one up, update, sync, brainswap, update the original, brainswap back, etc. but in general we just run one now. However, this week we did increase the size of our testnet node's server.

--Develop Testnet infrastructure tools

We have published a testload generator that we are still improving. We plan to add FCT transaction load, a way to randomly distribute load across multiple factomd endpoints, and data collection sometime in the next month.

- PLEDGED EFFICIENCY

2 nodes: 50%

Our efficiency has always been 50% and we have no plans to decrease it.


Some additional things we have spent our time on that give back to the community:

- Adam is a sponsor for the Factom Inc development grant and will likely continue in this role through their next grant, if it is voted for. Additionally Adam has been advocating for improved community developer relations and support from Factom Inc, and we are working with Inc on strategies to bring more developers up to speed on the necessary technical details of the Factom codebase.

- Sam is a guide and is the chair of the exchange committee.
Current Update: Canonical Ledgers Q4 2018 Report