Technical Update: Factom v0.3.5

Technical Updates | February 11, 2016
Home » Company » Blog » Technical Update: Factom v0.3.5

Our dev team has released improved Factom binaries and installers, follow the guides available at for step by step guides on how to install and use our software. Below is a breakdown on what the changes are.

Main fix: Factomd now works past block 22880
A quirk of Milestone1 code caused some unexpected behavior. Existing client software will crash if restarted after downloading past block 22880. If users (like exchanges) did not shut down factomd, they would not have seen this problem, and functioned normally. Only when restarting would this bug have manifested itself. All users must upgrade to restart.

No Factoids have been lost, and the chain is still safely secured by bitcoin.

If you see this error, it is time to update to factomd v0.3.5. You can tell the version by running factom-cli properties (but see the last note too).

panic: Error in initializing dChain:000000000000000000000000000000000000000000000000000000000000000c DBHeight:22880 i:22881

(for those unable to upgrade to the latest factomd, a workaround is to delete the databases in the .factom/ldb/* folder. This will cause factom to re-download the blockchain and will process the latest blocks. Closing and re-running factomd will cause the above panic)

This is the patch to fix the bug for the curious.

Koinify Import Note
Factom-cli importing has changed slightly for the Koinify 12 words and paper wallets (Fs keys).

Use the command “factom-cli importaddress” instead of “factom-cli generateaddress”. Also, the similar “factom-cli newaddress” command has been deprecated.

Lesser, but also important fixes
Compiling from source now works again.

The source code repository was shut down recently. Any project which used libraries hosted there (including factomd) stopped being buildable. We switched to alternate repositories for the missing code. This update allows developers to simultaneously pull and build factom using the friendly ‘go get’ commands.

Minor annoyance resolved
Windows users of factomd had error messages complaining about log files. Internally, when two different subsets of factomd accessed the same log file. It now writes to two different log files and the error is gone.

Developer focused updates
API updates

  • Our fctwallet can now build the chain and entry commit data structures.  API users now no longer have to do bitwise manipulation to place data into Factom.
  • A new fctwallet API call has been added to programmatically determine the txid before submission.
  • Factom now also has a call to verify address validity.

This update also added the ability to use a remote factomd.  fctwallet and factom-cli are now able to access a factomd node on a remote server, allowing medium trust applications to be built. Communication between fctwallet and factomd does not need to be secret. No private keys are passed between the two programs, only signed public data. This will allow multiple users to be able to share a single factomd instance.

Advanced Config File User’s Note
If you have made any changes to your .factom/factomd.conf file, it will have been renamed to .factom/old_pre035_factomd.conf with the latest installer. Non-advanced users who have not made changes to this file will use the default internal configurations.

Linux and Windows
Only advanced users will have created the file factomd.conf in the .factom directory.

If you have a config file and use fctwallet, it must be updated with new options. Please add this to the bottom the factomd.conf file:

FactomdAddress                   = localhost
FactomdPort                          = 8088

If the config file is not updated, factom-cli and fctwallet will not show balances and will result in these errors:

$ factom-cli properties
Failed to retrieve properties
$ factom-cli balances
Error printing addresses
Command Failed:  Server Error
$ factom-cli list all
Failed to parse the response from factomd: Server Error

Also API calls will result in:

$ curl -X GET “http://localhost:8089/v1/factoid-get-fee/”
{“Response”:“Get http://:0/v1/factoid-get-fee/: dial tcp :0: getsockopt: connection refused”,“Success”:false}

Thanks for being an awesome and supportive community.

The Factom Foundation Team

POSTED: February 11, 2016 BY Tanner Evans IN Technical Updates