Internship at TheLedger

My first venture into BigchainDB ànd the wonderful embarkment of my 12-week internship at TheLedger.

Artus Vranken
wearetheledger
4 min readMar 16, 2018

--

It’s been a very interesting week. I learned a lot, wrote a small POC, ànd kicked a soccer ball again for the first time in probably 3 years. But let’s not get ahead of myself.

TheLedger banner from their homepage: theledger.be

Last week, I started my internship at TheLedger, a company that not only develops blockchain applications but also trains firms to use these new technologies. I’ve been excellently coached from day one by Michiel and Andries, whom I owe a lot of thanks. It’s been a really educational few days and hopefully my following posts will reflect how much new information I was already allowed to digest at such a nice workplace.

I started the week not really sure what to expect; I’ve done quite some internships already, but never IT-related. However, the people over at TheLedger introduced me to the topics I need to get accustomed to and afterwards gave me the freedom to explore these topics at my own pace.

I’ve been encouraged to write blogposts about my progress, and hopefully this one will spark a whole chain (hehe, get it?) of follow-up posts in the future.

If you want to learn something, read about it. If you want to understand something, write about it. If you want to master something, teach it.
- Yogi Bhajan

What is BigchainDB?

BigchainDB banner from their homepage: bigchaindb.com

BigchainDB is a distributed database, with added blockchain characteristics. This means that, on top of being distributed, data added to a BigchainDB network is immutable and tied to a certain owner (or a certain list of owners). This results in a convenient and fool-proof method of proving ownership over data. I’m not going to re-explain what the people over at BigchainDB already explained in their docs, but I’d like to focus on a specific aspect of which I had some issue understanding from the start.

Transactions, transactions, transactions. (And assets)

When I started reading the BigchainDB documentation, I had never worked with it before. This means that I had no clue how data, appended to the network, looked like. It took me a great deal of testing and prodding before I figured out how the stream of data was structured. Understanding this basic principle of BigchainDB is a major hurdle one has to overcome before being able to even begin working it.

I’ve had to struggle with it, hopefully I can prevent you from struggling with it:

A regular database stores information in tables, lists or whatever traditional format you can imagine. Data in BigchainDB is not stored this way. Data in the BigchainDB is stored in transactions. Each transaction is linked to one immutable asset, but they transform or append to earlier metadata included in previous transactions of that asset. You can see transactions as a linked (or chained) list of objects, each with their own values. There are two types of transactions:

  • CREATE Transactions: This transaction creates a new asset on the network. It’s the start of a whole chain of transactions that handle this asset. There can be only one CREATE transaction per asset, and an asset can never be altered, it is immutable. However, this is an important feature of BigchainDB. But how can I update information about my asset? That’s where TRANSFER transactions come into play:
  • TRANSFER Transactions: This transaction is used to update the information of an asset and to transfer (hence the name) ownership of an asset. TRANSFER transactions build upon previous transactions. We’ll touch this subject more in depth in a later tutorial.

Remember: first, you issue a CREATE transaction, and then you iterate on this object using TRANSFER transactions.

If you want to explore the current assets and transactions that are stored on the BigchainDB Testnet, you can use the small (but incredibly handy) tool I wrote this week:

I have no clue who Frank is, but apparently he has a lot of assets he thought should be stored on the BigchainDB Testnet.

My conclusion

The week flew by, the 5 days were over before I could even say ‘consensus algorithm’. I now have 11 more weeks to go, but I won’t be counting them. I’ll be posting a new blogpost in the near future where we will build a small application on BigchainDB, and hopefully cultivate more interest in this technology.

--

--

Artus Vranken
wearetheledger

I'm a developer, passionate about coffee ☕️ and IT 💻. Follow me on GitHub 👉 https://github.com/artus