<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Davi Ortega</title>
    <description>The latest articles on DEV Community by Davi Ortega (@daviortega).</description>
    <link>https://dev.to/daviortega</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F209593%2F658ed2ec-9694-490c-bb8f-56307ae9c940.jpeg</url>
      <title>DEV Community: Davi Ortega</title>
      <link>https://dev.to/daviortega</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/daviortega"/>
    <language>en</language>
    <item>
      <title>Introducing DD-Devices</title>
      <dc:creator>Davi Ortega</dc:creator>
      <pubDate>Fri, 19 Feb 2021 22:54:07 +0000</pubDate>
      <link>https://dev.to/ddx/introducing-dd-devices-3399</link>
      <guid>https://dev.to/ddx/introducing-dd-devices-3399</guid>
      <description>&lt;p&gt;As part of the DDX project, we are building several gateways as an easier way to visualize the records posted on the FLO blockchain and OIP. Each gateway visualizes a specific type of data.&lt;/p&gt;

&lt;p&gt;We are here introducing the &lt;strong&gt;DD-Devices&lt;/strong&gt;. A gateway to visualize, and add oip records in the FLO blockchain that uses the &lt;code&gt;device&lt;/code&gt; record schema.&lt;/p&gt;

&lt;p&gt;This gateway is particularly useful to keep track of any type of public inventory.&lt;/p&gt;

&lt;p&gt;The DDX version of the DD-Devices gateway is kindly hosted by Netlify and the code is on gitlab.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;For the OIP ☀️ nerds: The &lt;code&gt;device&lt;/code&gt; record schema (&lt;code&gt;oip://tmpl_4FEB49C9&lt;/code&gt;) that extends &lt;code&gt;basic&lt;/code&gt; (&lt;code&gt;oip://tmpl_20AD45E7&lt;/code&gt;).&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What is new?
&lt;/h2&gt;

&lt;p&gt;Under the hood, the code is much simpler to adapt to new gateways but for the user here are some new features:&lt;/p&gt;

&lt;h3&gt;
  
  
  Ownership
&lt;/h3&gt;

&lt;p&gt;When loading the mnemonics of the FLO wallet in the &lt;code&gt;/keys&lt;/code&gt; page it will take a little longer. DDX will search for the first 60 addresses.&lt;/p&gt;

&lt;p&gt;DDX will compare the signatures of the records it displays and mark with a little green key if they match any of the 60 addresses it discovered from the wallet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Q12zm5uv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ajw4ug5q7rm3qjod9z9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Q12zm5uv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ajw4ug5q7rm3qjod9z9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The green key means shows that the loaded mnemonics owns that record&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It also shows in the record individual page.&lt;/p&gt;

&lt;p&gt;The record page brings two other new features: &lt;strong&gt;Printing&lt;/strong&gt; and &lt;strong&gt;Generate QR-code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T9ZjyHi_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vchcujsoiphb9r9gxzn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T9ZjyHi_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0vchcujsoiphb9r9gxzn.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now we can easily print the record and its QR code. In terms of inventory, we can print the QR-code and attach it to the physical device. A simple scan will bring up the &lt;code&gt;OipRef&lt;/code&gt; that can be used to resolve the record information.&lt;/p&gt;

&lt;p&gt;The gateway is online at:&lt;br&gt;
&lt;a href="//device.ddx.rocks"&gt;device.ddx.rocks&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ddx</category>
      <category>oip</category>
      <category>javascript</category>
      <category>blockchain</category>
    </item>
    <item>
      <title>Record Templates file descriptors</title>
      <dc:creator>Davi Ortega</dc:creator>
      <pubDate>Fri, 04 Dec 2020 21:16:29 +0000</pubDate>
      <link>https://dev.to/ddx/record-templates-file-descriptors-3eo7</link>
      <guid>https://dev.to/ddx/record-templates-file-descriptors-3eo7</guid>
      <description>&lt;p&gt;Record templates are the records in the DDX ecosystem that defines the schema of a particular table.&lt;/p&gt;

&lt;p&gt;Following the Open Index Protocol (OIP), when we publish a record template, the protocol builds a file descriptor.&lt;/p&gt;

&lt;p&gt;We can use the OIP public API to get a file descriptor of an existing record template.&lt;/p&gt;

&lt;h2&gt;
  
  
  Organization template
&lt;/h2&gt;

&lt;p&gt;The recommended DDX template for organizations, institutions, groups and etc resides on the FLO blockchain here:&lt;/p&gt;

&lt;p&gt;&lt;a href="http://network.flo.cash/tx/05e5eea349e2d2788f835b3cd46843e08e5acf6664f764297fe806f7e9198b57"&gt;&lt;code&gt;05e5eea349e2d2788f835b3cd46843e08e5acf6664f764297fe806f7e9198b57&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And we can use the OIP API to get the info already assembled and decoded here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://api.oip.io/oip/o5/template/get/05E5EEA3"&gt;https://api.oip.io/oip/o5/template/get/05E5EEA3&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you want to know more about the OIP API check &lt;a href="https://github.com/oipwg/oip/blob/master/api.md"&gt;this documentation&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;One of the fields is the &lt;code&gt;file_descriptor_set&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;For the &lt;code&gt;organization&lt;/code&gt; template the &lt;code&gt;file_descriptor_set&lt;/code&gt; is:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;CncKB3AucHJvdG8SEm9pcFByb3RvLnRlbXBsYXRlcyJQCgFQEhAKCGxvY2F0aW9uGAEgASgJEiQKFnBhcmVudE9yZ2FuaXphdGlvbkxpc3QYAiADKAsyBFR4aWQaEwoEVHhpZBILCgNyYXcYASABKAxiBnByb3RvMw
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;How do we get the info about the template from here?&lt;/p&gt;

&lt;p&gt;The hard answer is a combination of protobuf and base64 decoding, but the easy answer is to use the package:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.npmjs.com/package/oip-protobufjs"&gt;&lt;code&gt;oip-protobufjs&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using &lt;code&gt;oip-protobufjs&lt;/code&gt; to read a file descriptor
&lt;/h2&gt;

&lt;p&gt;Let's assume we already have &lt;code&gt;node&lt;/code&gt; and &lt;code&gt;npm&lt;/code&gt; installed.&lt;/p&gt;

&lt;p&gt;First, we create a project&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;oip-read-template
&lt;span class="nb"&gt;cd &lt;/span&gt;oip-read-template
npm init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now let's install the packages:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @babel/runtime oip-protobufjs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's make a file called &lt;code&gt;app.js&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;touch &lt;/span&gt;app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The contents of app.js should be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;decodeDescriptor&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;oip-protobufjs/lib/builders&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;descriptor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;CncKB3AucHJvdG8SEm9pcFByb3RvLnRlbXBsYXRlcyJQCgFQEhAKCGxvY2F0aW9uGAEgASgJEiQKFnBhcmVudE9yZ2FuaXphdGlvbkxpc3QYAiADKAsyBFR4aWQaEwoEVHhpZBILCgNyYXcYASABKAxiBnByb3RvMw&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;info&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;decodeDescriptor&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;descriptor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;info&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it, 4 lines. Save it and run.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node app.js
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If everything went ok, it should have shown a bunch of info regarding the organization template, for example its fields, the data type that is supposed to be in each field and etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final considerations
&lt;/h2&gt;

&lt;p&gt;We can use the OIP API and the &lt;code&gt;oip-protobufjs&lt;/code&gt; to get information on the fly about how to read and write records of any template in the DDX system.&lt;/p&gt;

&lt;p&gt;We could run an instance of the FLO blockchain and the OIP daemon locally and we would have full interrupted access to the data in the DDX system, as long as we have an Internet connection, completely independent from anyone.&lt;/p&gt;

&lt;p&gt;Also, the template &lt;code&gt;05E5EEA3&lt;/code&gt; for &lt;em&gt;organizations&lt;/em&gt; is a recommended template. Nobody is obligated to use it and anyone can build another one if they wish or use this one. Another option is to extend this template which will be the subject of another post where we cover the concept of &lt;strong&gt;Hierarchical Templates&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Stay tuned for the next posts!&lt;br&gt;
☀️ + ⚜️ = 🚀🚀🚀&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>database</category>
      <category>oip</category>
      <category>ddx</category>
    </item>
    <item>
      <title>DDX-project </title>
      <dc:creator>Davi Ortega</dc:creator>
      <pubDate>Sat, 28 Nov 2020 17:04:18 +0000</pubDate>
      <link>https://dev.to/ddx/ddx-project-5a8j</link>
      <guid>https://dev.to/ddx/ddx-project-5a8j</guid>
      <description>&lt;h2&gt;
  
  
  Introductions
&lt;/h2&gt;

&lt;p&gt;DDX stands for Distribute Database of Anything. It is an experimental project that uses the &lt;a href="//openindexprotocol.com"&gt;Open Index Protocol (OIP)&lt;/a&gt; to read and write the metadata of real-world records to the &lt;a href="//flo.cash"&gt;FLO blockchain&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The major goal is to build a truly public digital space on the internet that is affordable, secure, and accessible.&lt;/p&gt;

&lt;p&gt;It is in its infancy but also under heavy development by the &lt;a href="//jensenlab.caltech.edu"&gt;Jensen Lab at Caltech&lt;/a&gt; and &lt;a href="https://www.alexandrialabs.com"&gt;Alexandria Labs&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Definitions
&lt;/h2&gt;

&lt;p&gt;Let's chat about some of the jargons we will use for herein:&lt;/p&gt;

&lt;h3&gt;
  
  
  Records
&lt;/h3&gt;

&lt;p&gt;We call &lt;strong&gt;records&lt;/strong&gt; any metadata of a real-world data or &lt;em&gt;thing&lt;/em&gt;. For example, if you have a cat, then you can make a &lt;code&gt;record&lt;/code&gt; of your cat. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;name:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Sophie"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;description:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Short hair, indoor"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;dataOfBirth:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2012&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;that is what we call a &lt;em&gt;record of Sophie as a cat&lt;/em&gt; in the OIP context. It is the metadata about Sophie.&lt;/p&gt;

&lt;h3&gt;
  
  
  Record Templates
&lt;/h3&gt;

&lt;p&gt;As in most projects aiming to become a repository of data, DDX has a way to organize information. We call it &lt;strong&gt;record templates&lt;/strong&gt;. These record templates are basically the metadata schema of a particular type of data. For example, a schema for records of the type &lt;code&gt;cat&lt;/code&gt; would be:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;name:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;description:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"string"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="err"&gt;dateOfBirth:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"date"&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It basically defines the fields of the records of type &lt;code&gt;cat&lt;/code&gt; and explains what type of data should be in it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Index Protocol (OIP)
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9rghqnE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h8lhjy14a55cvt799ory.jpe" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9rghqnE2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h8lhjy14a55cvt799ory.jpe" alt="oip logo" width="20%"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The ideas of &lt;code&gt;records&lt;/code&gt; and &lt;code&gt;record templates&lt;/code&gt; are the building blocks of DDX. In the DDX ecosystem, this information is stored in the FLO blockchain using the Open Index Protocol.&lt;/p&gt;

&lt;p&gt;The OIP defines how we write &lt;code&gt;records&lt;/code&gt; and &lt;code&gt;record templates&lt;/code&gt; to the blockchain. It also refines how we read them.&lt;/p&gt;

&lt;p&gt;In another post we will go through it in more detail, but for now, OIP uses a mix of encoders (including Google's &lt;a href="https://developers.google.com/protocol-buffers/"&gt;protobuf&lt;/a&gt; to serialize data and add to the FLO blockchain.&lt;/p&gt;

&lt;p&gt;This task of adding information to the blockchain is facilitated by the FLO data field called &lt;code&gt;floData&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TPT5itKs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wgnawfo4yxik4rpak679.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TPT5itKs--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/wgnawfo4yxik4rpak679.jpeg" alt="flo logo" width="20%"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The FLO blockchain is a OG blockchain launched in 2013 with no ICO, no pre-mining and remains active to this day.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BNv3AHWk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6c16b3slefa3x0f09854.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BNv3AHWk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/6c16b3slefa3x0f09854.png" alt="alexandria logo" width="40%"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Alexandria Labs built a daemon that monitor the FLO blockchain for transactions with &lt;code&gt;floData&lt;/code&gt; that follows the OIP standards and dynamically builds an &lt;a href="//elastic.co"&gt;ElasticSearch&lt;/a&gt; instance with the records according to the record templates it finds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GrRvg5Ai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2afmqemq9ng3ue8n55z4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GrRvg5Ai--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/2afmqemq9ng3ue8n55z4.png" alt="alexandria logo" width="33%"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The daemon also exposes a REST API so the content of the database can be easily searchable.&lt;/p&gt;

&lt;p&gt;The Alexandria team keep a public instance of this REST API at &lt;a href="//api.oip.io"&gt;api.oip.io&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And documentation on how to query it can be found here:&lt;br&gt;
&lt;a href="https://github.com/oipwg/oip/blob/master/api.md"&gt;https://github.com/oipwg/oip/blob/master/api.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  DDX and OIP
&lt;/h2&gt;

&lt;p&gt;Now that we defined the basics, let's wrap it up.&lt;/p&gt;

&lt;p&gt;Think of DDX as a database of anything and each &lt;code&gt;record template&lt;/code&gt; as the schema of a table in this database.&lt;/p&gt;

&lt;p&gt;If we want to add a new "table" on DDX, all we need to do is to follow these 3 simple steps:&lt;/p&gt;

&lt;p&gt;1- Define a schema&lt;br&gt;
2- Encode following the Open Index Protocol standard&lt;br&gt;
3- Broadcast it to the FLO blockchain&lt;/p&gt;

&lt;p&gt;To add a record in this new table all we need to do is to follow another 3 simple steps:&lt;/p&gt;

&lt;p&gt;1- Build a record with the metadata according the schema defined by the template&lt;br&gt;
2- Encode it following the Open Index Protocol standards&lt;br&gt;
3- Broadcast it to the FLO blockchain&lt;/p&gt;

&lt;p&gt;We are working on supporting software to facilitate these steps and how to perform them will be the subject of the next posts.&lt;/p&gt;

&lt;p&gt;Some of the code can be found here:&lt;br&gt;
&lt;a href="https://github.com/oipwg/"&gt;OIP&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  DDX-gateways
&lt;/h2&gt;

&lt;p&gt;We are also working on a series of gateways to facilitate the interaction of humans and this data: the DDX-gateways. They are client-side static react apps that use public API to read and &lt;strong&gt;write&lt;/strong&gt; data on the blockchain.&lt;/p&gt;

&lt;p&gt;There are two of them online now:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9ViXXvE7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g75nahx9syz6rppsy7bs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9ViXXvE7--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/g75nahx9syz6rppsy7bs.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="//people.ddx.rocks"&gt;DD-People&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Euvh6MuH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oh9kqm1g0popbm0zzt4y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Euvh6MuH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/oh9kqm1g0popbm0zzt4y.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="//org.ddx.rocks"&gt;DD-Organizations&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final remarks
&lt;/h2&gt;

&lt;p&gt;This was a very brief kick-off overview of the DDX-project and how it leverages the OIP and FLO blockchain to build a persistent, truly public, digital space on the Internet.&lt;/p&gt;

&lt;p&gt;Stay tuned for the next posts! &lt;/p&gt;

&lt;p&gt;☀️ + ⚜️ = 🚀🚀🚀&lt;/p&gt;

</description>
      <category>database</category>
      <category>blockchain</category>
      <category>opensource</category>
      <category>javascript</category>
    </item>
  </channel>
</rss>
