Technical Updates Archive

By Crystal Wiese – Director of Marketing

These are a consolidation of some historical technical posts that are no longer active. 
June 9th, 2015

Progress Summary

Factom is getting closer to delivering our first milestone. Since releasing explorer.factom.org a few weeks ago, our team has been working on backend updates. You can view our progress on the Factom Project GitHub profile.

We are targeting a pre-release testing version of the Factom client, which will allow third-parties to start building applications using Factom.

Our team is focusing on thoroughly testing and getting Factoids working, a critical requirement to complete our first milestone.

Things We’ve Learned

We have learned a lot from Bitcoin, and are going straight to something more like P2SH. Before the 3xxxx addresses were implemented in Bitcoin, when someone sent BTC to someone else, the sender paid a higher fee for the receiver’s security. If a company wanted to have three of five signatures, then the higher fees for the five pubkeys would be borne by the consumer. Bitcoin fixed this with P2SH, and Factoids use something akin to this from the beginning.  

Part of making the coin is generating a genesis block. We leveraged some code from the Ethereum project to build the Factoid genesis block. The Ethereum code looks at data from blockchain.info to build a genesis block. We wanted to be certain that the correct data was put into our genesis block. We compared this with data provided by Koinify. We also ran similar genesis transaction building code against a local BTCD node to test if the blockchain.info database had been corrupted and was feeding invalid data. We are happy to report all three sources validated each other.

Open source software promotes a culture of sharing. Ethereum was kind enough to lend some of their tools to the public, including our project. In turn, we are contributing back issues we have found to continue improving the code.

One of the disappointments we encountered in the past few weeks is the US Government, rather how slow they are. The USG held a crypto competition several years ago for SHA3. SHA3 was to be the next generation hash algorithm after SHA2, which is what Bitcoin uses. In 2012, USG announced a winner in the SHA3 competition. Since then they have been dragging their feet for the past three years on finalizing it.

We wanted to supplement our security of using SHA2 with cross checks of SHA3. This way if either SHA2 or 3 became easy to break, the other would remain to validate nothing had changed.

We were seeing some funny problems with the hashes being made with different libraries in different programming languages. After some digging, we found that USG had changed the SHA3 standard in 2014. Developers writing code for Factom would be using varied computer languages. Those different languages come with different libraries. The library developers have implemented different versions. Here are two examples even within one language (python) which disagree on what SHA3 is: pysha3 and spongeshaker. Most library developers are waiting until finalization of FIPS-202. Some warn against using their library until finalization.

Next Steps

We are concentrating on getting the blockchain data structures right since like Bitcoin those live on forever. If the definition of SHA3 changes, then the block definitions would change too. It seems unwise to build this into our product if the USG might change it again. We have decided to rethink the strategy for the extra security. (note, Bitcoin, as it stands, is also vulnerable to this issue, if what we are defending against with this extra security becomes a true concern.)

We are pushing forward with getting the first Factom milestone completed. Thanks to all of you that have supported our development and the technical community for continuing to review and test Factom along the way.

July 3rd, 2015

As of last night, we have a pre-release of Factom available online. This is a very limited version. We will be testing for robustness over the next few weeks. We expect several iterations before we have our release candidate available. We will need to break the pre-release version a few times before getting the robustness needed for our Beta.

If you are a “very brave” tester, are familiar with Go, and have a strong desire to help us test, then please reach out.

If you would like to help test the release candidate, drop us a line here. We will need a lot of help scrubbing out little bugs once the largest one have been removed.  

The pre-release version is a major step forward. This iteration reflects the main components of Milestone 1, a working Beta.  

This is a quick overview of what can be done:

  1. Factoids can move between addresses

  2. Factoids can buy entry credits

  3. Chains can be created

  4. Entries can be put in chains

  5. Entries can be read back

The largest improvements on the Alpha API vs. pre-release API are Factoids and entry credits are now working together. Factoids will be provided for those testing the system and in your wallet when you install it.

Once debugging has been completed, we will make the “Release Candidate 1” available for further Beta testing by the broader community. Having Factom and the Factoids safe and secure is a top priority for our team. This testing period is very important as we approach the delivery of milestone one and the launching of the live Beta network.

Thank you for being an awesome and supportive community.

The Factom Foundation Team

August 6th, 2015

Technical Update: Progress On RC1

We are a little closer to RC2 this week. Our amazing community testers found a difficult problem last week. The problem occurred when a large amounts of entries were added.The load tests would cause all the peers connected to the server, to be simultaneously disconnected. The development team found two bugs in the system that were working together in the peer to peer network layer. Having identified these issues, we can resolve both of them and move forward. We greatly appreciate the hard work of everyone in the community who have been contributing to this project.

There is a lot of excitement building around Factom and we have received  a ton of great questions about our team and Factom. We would like to Thank ZapChain for helping facilitate this. Here are  some of our favorite queries from last week.

What is your “25 words or less elevator speech” about Factom? Why should a Bitcoin miner and enthusiast such as myself be interested? I’m am not an entrepreneur. If don’t have a massive amount of data to store. If just wanted to understand what Factom is.

Factom lets you write arbitrary Data into its ledger, which is anchored to Bitcoin. Now you can prove records, and trade assets against Bitcoin’s Ledger. (25 words)

Why should a Bitcoin miner and enthusiast such as myself be interested?

Because Factom’s anchors and “commit before you reveal” architecture enables Bitcoin’s very rigid ledger to include arbitrary records as well. Protocols like Counterparty, Omni, and Colored Coins can move to Factom Chains and not compete with Bitcoin Transactions.

Other protocols can be developed on ledgers that share Bitcoin’s Proof of Work without the potential of destabilizing Bitcoin since Factom places a Merkle Root into the Bitcoin blockchain, not hashes of specific transactions. So an attack on a Factom Entry will merely delay its inclusion, not cause a reversal of a transaction.

Factom also provides immutable ledgers protected directly by Bitcoin that can be used to solve problems that are not coins. Like securing the records and reports by subcontractors. Such techniques in management could have prevented the Deep Horizon oil spill. When parties are accountable, then they are manageable.

Moving Bitcoin beyond its coin to allow its Proof of Work to secure nearly limitless records will vastly advance Bitcoin in the economy.

“Factom" just sounds cool to say! Factom, Factom, Factom….

Yep it is.

Can you explain what Factom does above and beyond what all the other put-hash-in-op_return-output products do? There are many of these out there, and they have worked for a long time, what is your added value apart from the fact that you seem to have a way to allow multiple data to be time stamped with one hash – which only seems to solve some sort of capacity problem which at present is not there at least.

Thank you for the question. Yes, Factom solves a capacity problem, blockchain bloat, and cuts the cost. We have seen interest from several large corporations and governments that are interested in securing large amounts of information in a ledger that can’t be backdated.

Many people on a reddit discussion [1] compared permissioned ledger as a private intranet vs public internet and claim that read-only database can achieve the same as blockchains more efficiently, using 1990 cryptography and digital signatures. Why do you think they make such claiming?

When several people try and solve the same problem, multiple solutions are developed. Some of these solutions are better suited to different content and core issues. The market will decide what works best.

What does “scalable data layer” actually means in simple words?

Factom combines data from many sources, and secures them every 10 minutes in the Bitcoin blockchain with a single hash. Rather than be limited by Bitcoin’s own capacity, users of Factom can place whatever they want, and however much they want into Factom, which creates a cryptographic proof of their data against Bitcoin. Single hashes secure effectively unlimited data.

How do you manage time for yourself, as I think your life is too much busy?

Everyone is different. What has worked for me is not working on the weekend. This allows me to recharge and be more effective throughout my week. Hope that helps.

Is the Factom data layer immutable once entries are part of a directory block? If so, how would it be possible remove entries as in the snippet below? Confused about that aspect.

Great question, Factom does not act as storage for user content. We use a digital fingerprint of data, not the data itself in the higher level data structures. We take a hash of user data and store it in the blockchain. Factom allows a user to prove that content existed at a definite time and in a particular way. That said, censorship is very hard and perhaps nearly impossible. No data in the Directory Blocks, nor the Entry Blocks will be plain text. The Entries themselves can contain any information, but Entries containing offensive material can be identified and removed from any system using Factom. Even though Factom secures information, that does not mean users are forced to hold the offensive material.

As always, thank you for being an awesome and supportive community.

The Factom Foundation Team

August 20th, 2015

The Factom client core developers have just launched the Release Candidate 2 (RC2) version of the Factom Beta. If you are a tech savvy tester, we invite you to download RC2. Please find the installation instructions here.

RC2 includes

  • Better Factom block syncing & downloading

  • Tested for high numbers of entries

  • Improved server to client messaging and error handling

  • Some limited code refactoring and reorganization

Last release candidate before Factom Genesis version

We expect RC2 to be the last major development step before reaching our first milestone–release of the live Beta known as “Factom Genesis”. Factom Genesis will be released once we have a thoroughly tested RC2. The development team has been working very hard to knock all the “dust” off.

Next steps & launch party

To celebrate all the hard work and dedication over the past year, Factom will be hosting a launch party. If you are in the Austin area and would like to join us at “The Beginning of Time” RSVP here. Highlights will include Paul and Peter speaking about the project, recorded and broadcast to the community, and holding a Q&A on Zapchain. Factom will also be making a special announcement revealing the first non-profit project we are undertaking with new partners.

For everyone that has Factoids

You will be able to utilize Factoids with the release of the Factom Genesis client. We will release Factom Genesis after we finish testing RC2, and it meets all the milestone one requirements. Cryptsy and ShapeShift will be some of the first places where you will be able to exchange Factoids. Many exchanges have expressed interest in listing Factoids. Stay tuned for more announcements regarding exchanges over the next few weeks. We are working towards making Factom user-friendly. Our partnership with Netki was the first step. With the release of Factom Genesis, there will be a command line wallet available. If you are not a developer, it is best to hold onto your Factoids until a more user-friendly wallet is released. Having Factom accessible and usable by everyone is a top priority, and we are moving towards this goal.

Releasing milestone 1 funding from the software sale

We’re very proud to have developed our project under the ‘gold standard’ for software development in our industry. Factom incorporated multi-signature protection, vested milestones, true developer accountability, and extensive due diligence into our project. Once the 3rd party Technical Evaluators approve the first milestone, we will receive the first portion of the funds. These funds will allow us to work towards the second milestone. Until this point, this project has been developed through volunteer efforts and with support from our corporate partner, Factom Inc. No funds from the software sale have been released at this point.

Factom is an open source project, which is made possible through community participation. We are very grateful to all the community testers and developers that have been helping build a robust and stable Factom. If you have not taken a look at our code, everything we have been working on can be found in our GitHub repositories.

Thanks for being an awesome and supportive community, as always.

The Factom Team

September 1st, 2015

Factom has reached their first milestone today. Factom Genesis, the beta version of their software. To celebrate the newest iteration of the their software, they have secured “The Universal Declaration of Human Rights” in 443 different translations to the bitcoin blockchain.

The bitcoin blockchain had limited capacity outside itself until Factom. They have created a platform that allows identity, sensitive corporate records, and much more to be “Factomized” into the blockchain for iron-clad security and unbreakable records.

Factom is the first technology that allows every corporation and government to piggyback off of the security of the blockchain. Identity, sensitive corporate records, titles and all the books in Gutenberg Library have already been Factomized using the Alpha version of their software.

A world with greater transparency and accountability is on our doorstep. Blockchain technology is changing every industry it touches and is the topic of discussion on the mind of executives and VCs everywhere.

This young, open source project has garnered attention from governments, VCs, and fortune 500’s that want to capitalize on bitcoin. Recently they were inducted into the fintech incubator at Plug and Play and are raising seed funding for their corporate branch, Factom Inc.

Plug and Play is a platform for innovation that connects forward-thinking corporations with startups that are influencing the financial industries. Factom was selected from around 1,000 fintech startup applications from across the world. As part of this program they will be have access to USAA, Citi Ventures, Capital One, Deutsche Bank, JCB, Banco Original, Intuit, Assurant.

Factom is at the forefront of blockchain revolution, shaping the future of blockchain technologies. It is the first technology to solve real-world business problems using Bitcoin. With a single anchor into the bitcoin blockchain, millions of records become secure in real-time. Once Factomized, information becomes impossible to modify, delete, or backdate. It is unhackable and unbreakable by design.

A future where corporations and governments secure their sensitive information and systems using Bitcoin is here. Ironically,  bitcoin was once the bane of their existence; now it stands to save them.

How to Check Your Factoid Balance

We are updating our instructions for the Factom Genesis. Here is a step by step guide to check your Factoid balance for Mac, Linux, and Windows with our new app, Factom Keymaker. Note that you will require your Koinify wallet 12 word passphrase to get your Factoid Address with our keymaker.

Step #1 – Go to Factom’s Keymaker app on GitHub. There you will find binaries for Windows, Mac, and Linux.

Step #2 – Download the one for your OS.

Step #3 – Save it to a folder of your choice on your local hard drive.

Step #4 – Pick the instructions for your OS.

Linux

Locate the keymaker-linux file you just downloaded in your terminal. We need to first assign execute privileges to the executable by typing the following command:

chmod 775 keymaker-linux

image

Then type the following command to run the keymaker program:

./keymaker-linux

image

Enter your 12 words Koinify passphrase and hit enter.

image

You should then see your Factoid Address displayed.

image

Copy the Factoid Address that is shown in the Terminal window by selecting the text with your mouse then right click and select copy.

image

Scroll down to continue on to Step #5

Mac

Locate the keymaker-mac app you just downloaded with the Finder and your mouse. We need to first assign execute privileges to the app so open a Terminal window (located in /Applications/Utilities/Terminal.app) and type:

chmod 775

Then drag and drop the keymaker-mac app to the Terminal window. You should see the below displayed in Terminal. Hit enter after that.

image

Then double click the keymaker-mac app, when the app launches you will be prompted to enter your 12 words Koinify passphrase.

image

Enter your 12 words Koinify passphrase and hit enter.

image

You should then see your Factoid Address displayed.

image

Copy the Factoid Address that is shown in the Terminal window by selecting the text with your mouse then right click and select copy.

image

Scroll down to continue on to Step #5

Windows

Open a command prompt (CMD.exe) and browse to the folder that contains keymaker.exe, for example, by typing: C: (or whatever letter your hard drive is); then you can type:

cd c:UsersYourUsernameDesktop

If you can’t locate the keymaker.exe this way, just locate it with Windows Explorer and your mouse then drag and drop it to the CMD window. You should see the below on your CMD window.

image

Once the file has been located in your CMD window simply hit enter and the app should run.

When the app launches you will be prompted to enter your 12 words Koinify Passphrase.

image

Enter your 12 words Koinify passphrase and hit enter.

image

You should then see your Factoid Address displayed.

image

Copy the Factoid Address that is shown in the CMD window by selecting the text with your mouse then right click on the top bar then select Edit/Copy.

image

Step #5 – Go to http://explorer.factom.org and paste your Factoid Address in the search bar.

image

Step #6 – See your Factoid Balance.

image

In other news

At the most basic level, Factom is a truth engine. We use math to prove existence. Factom is the mathematical area to prove the existence of digital data. In this spirit, we have chosen the integral with double stroke to represent our software licence. “⨎” is a mathematical symbol for integral and it’s great that it looks like a little “f” for Factoid.

New jobs at Factom

Working at Factom means being surrounded by colleagues who are dedicated to serving our community and having a lot of fun while we do it. Our work is about service, integrity, and joy. Building the world’s most honest systems takes a special type of person. If you think you would make a great fit for Factom, we have three spots open in Austin.

Front End Developer – Creative and artistic with Javascript skills, Web services, CSS, GUI development. Web development and Web application development. Austin-based is preferred.

Test Engineer – Able to dig into backend code, compare binary structures against specifications. Automated testing experience a plus. Ability to write scripts and understand command line tools. Able to use Linux, Windows, Mac. Austin-based required.

Engineer – C/C++, Java or Go, Go preferred. Multi-language experience preferred. Key-Value Databases like Bolt or Leveldb a plus. Understanding of cryptocurrency and blockchain technology a plus. Backend programming, Web Services, Networking. Degree and/or significant work experience required. Austin-based required.

If you believe you would make a great fit, please reach out.

Thanks for being an awesome and supportive community.

The Factom Foundation Team

September 11th, 2015

Factom Genesis is running strong. We have 1200+ blocks. Check out our latest here.

We are integrating Factom with Docker. It is an open platform for distributed applications that will make Factom easier to use. Once Docker is installed on your device you will be able to simply click a button to download the Factom client and our wallet. It’s like magic. We expect the integration to be complete early next week.

Thanks for being an awesome and supportive community.

The Factom Foundation Team

September 17th,  2015

Our Dev Team has created easy to use Factom Binaries together with installers for Windows, Mac, and Linux. There are three binaries required to run Factom: factomd, fctwallet, and factom-cli, they wrap up Factom in stand-alone executables that contain everything you need to run. Code, runtime, system tools, and system libraries are all held within the binaries. This guarantees that Factom will always run the same, regardless of the environment it is running on. This means simplified and easier to use Factom. To get started, you will need to follow the “Factom Binaries Install Guide” available at http://factom.org/howto.

Work is in progress to have Factom available via Docker soon and we will release an announcement in due course.

Thanks for being an awesome and supportive community.

The Factom Foundation Team

October 8th, 2015

Factoids on Poloniex

We are thrilled to announce that Poloniex is the first exchange to trade the Factoids software tokens. “FCT Factom” is the ticker for Factoids on Poloniex. Poloniex has a talented team of developers, we enjoyed working with them on the Factom integration.  

Thanks to Poloniex, we now also have price discovery for Factoids. Entry credits into our system will now dynamically move with the price of Factoids and stabilise the cost of entry for users of Factom.

“We are excited to add Factom to the Poloniex platform as part of our commitment to bringing innovative new projects to the market.” Said Tristan D’Agosta, CEO of Poloniex Exchange.

Factoids on Indexes

Factoids have also been listed on two indexes so it will be easier to keep track of market movements, capitalization and total supply. We are listed on CoinMarketCap and WorldCoinIndex.

Latest Binaries and Installers v0.3.3

Our Dev Team has released improved Factom binaries and installers, follow this guide to upgrade to the latest v0.3.3.

New Developers Sandbox Guide

Get in and start playing with Factom. Our new sandbox guide makes it easier for you to access an environment that isolates untested code changes and explore development on our system.

In Other News

We have migrated the Project Gutenberg from our Alpha version of Factom to our Beta. It is now protected by PGP cryptographic signatures, as well as being indexed by Factom into the blockchain. Look it up on the Factom Explorer here.

Thanks for being an awesome and supportive community.

The Factom Foundation Team

March 29th, 2016

We are thrilled to announce new Factom binaries and installers. They are now available on GitHub for Windows, Mac and Linux. We have improved security, reliability, and compatibility. The new binaries also have a faster test environment setup and in-house integration/deployment. To get started, follow our guides for step by step instructions on how to install and use our software.

“With this release we have developed techniques to locally simulate nodes in China. This will allow us to test and debug problems arising from transoceanic networks.” – Brian Deery, Chief Scientist

“Now configuring both local and remote factomd is easier and faster. In a matter of seconds, all the entries of a user chain can be obtained by running one simple cli command.” – Veena Gondkar, Senior QA Analyst

We are nearing our second milestone. As you may have noticed, we have launched the Factom Store, where you can purchase Entry Credits. We will soon be testing other aspects of our second milestone. You can see our progress here. If you are interested in becoming a Community Tester, please email brian@factom.org.

Thanks for being an awesome and supportive community,

The Factom Team

Release Notes for 0.3.6.0

Syncup acceleration

We fixed a bug that was slowing our system in China. Upgrade factomd on your node to resolve this issue.

Point to trusted remote factomd

You can now run a trusted factomd node. It allows multiple clients to share a single blockchain instance. Using a trusted factomd node does not require sharing private keys and limits attacks. It trades convenience for trustlessness. It also allows cloud service providers to host a local blockchain node which served an API to its clients.

User friendly setup for inter-company sandbox

Developers can now setup a local federated server to do local testing. Realistic setup are also now available on the federated server on the LAN. factomd must be recompiled to allow the local client to download the blockchain from the LAN. This release gives the option in the config file to specify the local server. See how to setup a sandbox here.

Experimental partial Netki support

Last year, Factom announced it would integrate the Netki wallet name resolution. We have added preliminary read support for the Factom Command Line Wallet in this release. Use the “-r” command flag to lookup a Factom address to send Factoids or Entry Credits.

Golang 1.6 support

Factom can now be compiled using the latest version of Golang.

Vendorized all dependency packages

All 3rd party packages are now pulled from the FactomProject repository, so users do not have to worry about these packages introducing malicious or latent bugs. This allows only Golang and Google 3rd party repositories to pull when compiling Factom.

API changes for fctwallet

Factoid block search ranges can be specified in the API, allowing faster automated searches for new transactions.

The compose-chain-submit and compose-entry-submit calls have been updated to take hex data instead of ascii data in the extID fields. This allows for arbitrary data to be used as an extID instead of just text.

The Factoid-sub-fee API call has been added. This is the opposite of the addfee call. Subfee allows users to deduct an output by the correct fee amount. It will help when emptying an address.

Updates to factom-cli

All entries can be requested, including the first entry in the chain. Updated command “get chain” to “get chainhead”. We also exposed the subfee command in the cli wallet.

Updates to walletapp

You now no longer need to navigate to the terminal window to launch walletapp on the mac. We built a shortcut: double click on walletapp in the mac environment for the HTML files.

Config file error tolerance

We have resolved the tolerance level for factom.conf file, including missing lines.

April 28th, 2016
We are thrilled to release new Factom binaries and installers. They are now available on GitHub for Windows, Mac and Linux. Version 0.3.7.0 is an update touching primarily network improvements.

“Factomd was having trouble with the Great Firewall of China (GFW). We were finally able to track down what was causing factomd to fall behind from synchronization. Version 0.3.7.0 no longer falls behind when the GFW resets connections.” – Brian Deery, Chief Scientist

“Version 0.3.7.0 contains a number of infrastructure improvements which will expedite future continuous integration and database management functions.” – D. Robert Baker, Process Integration Manager

To get started, follow our guides for step by step instructions on how to install and use our software.

Milestone #2 is just around the corner. The next evolution of Factom moves us from one federated server to eight. The servers will build blocks collaboratively and rely on individual messages. Milestone #2 will also result in quicker confirmations when submitting data to be factomized, as well as faster Factoid confirmations.

If you are interested in becoming a Community Tester, please email brian@factom.org.

Thanks for being an awesome and supportive community,

The Factom Team

Recent Posts

Factom Inc.'s Team Expands by Hiring CMO

Factom Inc.'s Team Expands by Hiring CMO

Posted: December 12, 2017 In Press Releases

Factom, Inc., a Blockchain as-a-Service (BaaS) technology company, today announced that Jay Smith has been appointed Chief Marketing Officer (CMO).

Factom Inc.’s Growth Triggers Leadership Team Expansion

Factom Inc.’s Growth Triggers Leadership Team Expansion

Posted: November 7, 2017 In Press Releases

Factom Inc.’s Growth Triggers Leadership Team Expansion

Factom Harmony

Factom Harmony

Posted: March 2, 2017 In Press Releases

Factom Harmony is a commercial product for the mortgage industry. It is built on the Factom Apollo data management solution and allows users to store and create permanent mortgage records.