Kdb+ and Factom: Securing data on the blockchain with qfactom

13 Sep 2017 | , , , ,
Share on:

By Jeremy Lucid

Blockchain applications are proliferating in the financial services industry and Kx technology is increasingly being used in these systems to provide high-speed data analytics, like by the Bitcoin Mercantile Exchange (BitMEX) and by financial technology firm Cobalt DL.

One such blockchain application, which kdb+ can readily integrate with for the purpose of securing data records, is Factom.  Factom (protocol) is an open-source project, developed by the Factom Foundation, which allows anyone to publish data to the Factom blockchain. In doing so, users can create their own immutable ledgers to store arbitrary records, thus extending the technology beyond the domain of digital currencies. To date, use cases include ledgers to store land entitlement records, mortgage records, IoT data and health records.

All data entries made to Factom are ordered into chains and time stamped by the Factom Network. Every ten minutes  these entries are combined to form a Merkle Tree, whose root is then published to the Bitcoin blockchain. By storing the Merkle Root within Bitcoin (see anchoring), Factom leverages the security of Bitcoin to render its own chain entries immutable. With this approach, Factom creates a scalable data layer solution on top of Bitcoin without bloating the blockchain, see whitepaper.

By combining the speed and scalability of kdb+, with the security and scalability of Factom, millions of records can be secured and validated quickly and safely.

qfactom, is a kdb+ wrapper library designed to interact with the Factom blockchain via its client and wallet applications.

The library provides convenient functions to create, publish data to, and read data from, Factom chains for the purpose of creating immutable audit trails and validating data.

This wiki pages demonstrate all major functionality.  Examples include: (1) a mock IoT device which creates a Factom chain to secure all the data records it publishes; (2) a q process which extracts the IoT chain entries for data validation, and (3) a demonstration of how to extract market price data from existing Factom chains.


A comparison of Python and q for data problem solving

8 May 2019 | ,

This article takes a simple, real-life problem and analyzes different solutions in Python and q. The problem leads us to discover nice areas of both programming languages, including vector operations, Einstein summation, adverbs and functional form of select statements. Each solution has lessons that deepen our IT knowledge, especially when we consider performance.