The Stage

What is a side project, even the most interesting and challenging one without a lot of fun 🤸? We don’t want to spend our free time with boring stuff, do we? What brings us joy is what pushes good side projects forward. The fun aspect is what I’d like to focus on today and drift away a bit from the technicalities behind Cinode 🙃. There will be a bit of a source code at the end so you may want to scroll down if you’re not interested in the fun part 😉.

Will it Cinode...

My recent experiment around Cinode was about checking how it works in different execution environments. Cinode is written in the Go language so is should be trivial to run it on many CPU architectures and operating systems. Let’s see how it works in practice though. So today I’d like to share the results of my recent test where I tried to run Cinode on Raspberry Pi Zero W and La Frite.

Build your own node

Today we will do an exercise and I will show how to create own Cinode dataset form a static web page. For the source of http page let’s use a simple blog similar to the one you’re viewing right now. In the example below I’m using hugo but it can be any statically-generated web page. Even a hand-written html will work fine here 😉. To make things simple (well, that was my goal, what’s the result you must judge yourself) I’ve prepared ready-to-use docker images.

What is Cinode - Summary so far

Cinode received a lot of improvements and reached some milestones recently thus I wanted to take a step back and create a summary of Cinode as it is right now. If you know nothing about Cinode - then this post is especially for you. Let’s start with some high-level technical overview followed by Q&A to clarify details. Layers, layers everywhere Cinode is a layered protocol with three main layers: public, private and publisher.

Try Cinode yourself

Today we’ll do a small exercise - I want you to see Cinode in action for yourself. For that I wanted to make the Cinode data format a bit more stable so that certain magic values used in this post will keep working for at least some time. I’m pretty sure this is now the case - and even if I find some critical bug, I did some preparations to be able to maintain backwards compatibility.