Poets have always been great story tellers, and amazing conversationalist, and not unlike their human equivalents the Po.et project is similar. Take for example.

In previous post, we talked about documents being protected. I had experimented with encrypting data and uploading it to the Po.et testnet, pulling that data, decrypting that data and then reconstituting it in it’s datastructure. *too easy*…..but this leads to another experiment. Images.

Now images are kinda fuzzy and not the best example as there is many different formats, etc. However, essentially, images are just files, just 1’s and 0’s….so, let’s consider this. We can move an encrypted document content into the testnet, so, let’s do that on a more dynamic and valuable scale…. an image can be encoded into a base64 string. So, taking our test tool “Igloo” we move our image into a base64 encoded string. Too easy.

Now, I’ve taken Igloo and made it also be able to download files using GetWork. But that’s kinda kids play. BUT after using CreateWork, we now have an image in it’s most basic form in the testnet. HOWEVER, here’s where the real fun comes into play.

Note: In preview mode, WordPress displays this image, however published it strips it, it’s the Po.et logo (WorkID: 60846ed5f5bc0e4bcd92a6cef4c007e936d309fdd889d4de6f97216b925ea2df)

This image is from the blockchain. Yes, one day it may die (if testnet get’s shut down), however, it’s the real deal. Not a file stored on WordPress’ servers. Not from my machine, but as a document. Essentially turning Po.et from a timestamping “service” into a CDN.

I’m curious to see what happens when they release the image capabilities for Frost…but I believe this is the direction this is heading. I’m using Alec Chan’s FrostSharp inside of a ASP.NET MVC site with this much code.



public static string APIKey = Properties.Settings.Default.APIKey;

public static Configuration Config = new Configuration();

public static bool logging = false;

public static FrostSharp.Frost client = new FrostSharp.Frost(APIKey, Config, logging);

public static async Task RetrieveContentByWorkID(string WorkID)

{

WorkAttributes attributes = await client.GetWork(WorkID);

return attributes.Content;

}

Insider of my controller I submit to retrieve content by workID, and return the string via my ViewModel. I’m sure there’s 100’s of ways to do this, however, the fact remains… I’ve essentially offloaded the storage, and the network transfer to the blockchain, immutable, and unable to be destroyed in any fashion (shy of a complete site attack).

Able to take a file locally, upload it to a forever entity, and bring it to any platform is a great story. I’m curious to see where else we can go with this, however, the more and more I explore, the higher hopes I have for it.