1
0
mirror of https://github.com/kremalicious/blog.git synced 2024-11-22 18:00:06 +01:00
blog/.jest/__fixtures__/posts.json

357 lines
72 KiB
JSON
Raw Normal View History

2019-11-24 14:29:25 +01:00
{
"allMarkdownRemark": {
2022-11-19 23:00:38 +01:00
"edges": [
{
"node": {
"id": "6effe45d-0884-527c-9fba-6f7f567979fd",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-03-orszaghaz-ii.md",
"html": "<p>Inside the Hungarian Parliament Building in Budapest, Hungary.</p>",
"excerpt": "Inside the Hungarian Parliament Building in Budapest, Hungary.",
"frontmatter": {
"title": "Országház II",
"linkurl": null,
"tags": null,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-03-orszaghaz-ii-2dbcf257b4bdf625c24fede935d32425.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg",
"srcSet": "/static/2dbcf257b4bdf625c24fede935d32425/23780/2019-11-03-orszaghaz-ii.jpg 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/02ed9/2019-11-03-orszaghaz-ii.jpg 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/ac974/2019-11-03-orszaghaz-ii.jpg 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/12c26/2019-11-03-orszaghaz-ii.jpg 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg 3793w",
"srcWebp": "/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp",
"srcSetWebp": "/static/2dbcf257b4bdf625c24fede935d32425/b0720/2019-11-03-orszaghaz-ii.webp 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/f6188/2019-11-03-orszaghaz-ii.webp 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/7c0bb/2019-11-03-orszaghaz-ii.webp 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/d1e4e/2019-11-03-orszaghaz-ii.webp 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/0a478/2019-11-03-orszaghaz-ii.webp 3793w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg",
"originalName": "2019-11-03-orszaghaz-ii.jpg",
"presentationWidth": 400,
"presentationHeight": 300
}
}
}
},
"fields": {
"slug": "/orszaghaz-ii/",
"date": "November 03, 2019",
"type": "photo"
}
}
},
{
"node": {
"id": "c80697e5-681d-5fcc-9dab-c3a3821ff0b1",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-02-orszaghaz-i.md",
"html": "<p>The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.</p>",
"excerpt": "The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.",
"frontmatter": {
"title": "Országház I",
"linkurl": null,
"tags": null,
"featured": true,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-02-orszaghaz-i-36d87329aeeda296ae923606e5a4a785.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg",
"srcSet": "/static/36d87329aeeda296ae923606e5a4a785/23780/2019-11-02-orszaghaz-i.jpg 100w,\n/static/36d87329aeeda296ae923606e5a4a785/02ed9/2019-11-02-orszaghaz-i.jpg 200w,\n/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg 400w,\n/static/36d87329aeeda296ae923606e5a4a785/ac974/2019-11-02-orszaghaz-i.jpg 600w,\n/static/36d87329aeeda296ae923606e5a4a785/12c26/2019-11-02-orszaghaz-i.jpg 800w,\n/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg 3708w",
"srcWebp": "/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp",
"srcSetWebp": "/static/36d87329aeeda296ae923606e5a4a785/b0720/2019-11-02-orszaghaz-i.webp 100w,\n/static/36d87329aeeda296ae923606e5a4a785/f6188/2019-11-02-orszaghaz-i.webp 200w,\n/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp 400w,\n/static/36d87329aeeda296ae923606e5a4a785/7c0bb/2019-11-02-orszaghaz-i.webp 600w,\n/static/36d87329aeeda296ae923606e5a4a785/d1e4e/2019-11-02-orszaghaz-i.webp 800w,\n/static/36d87329aeeda296ae923606e5a4a785/730f8/2019-11-02-orszaghaz-i.webp 3708w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg",
"originalName": "2019-11-02-orszaghaz-i.jpg",
"presentationWidth": 400,
"presentationHeight": 297
}
}
}
},
"fields": {
"slug": "/orszaghaz-i/",
"date": "November 02, 2019",
"type": "photo"
}
}
},
{
"node": {
"id": "2e2c9611-be7b-5bc0-a72b-6c63e2072b5a",
"fileAbsolutePath": "/Users/m/Code/blog/content/posts/2019-10-24-ocean-protocol-and-ipfs-sitting-in-the-merkle-tree/index.md",
"html": "<p>IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting.</p>\n<hr>\n<blockquote>\n<p>This article was originally posted <a href=\"https://blog.oceanprotocol.com/ocean-ipfs-integration-store-asset-files-43c623c356d7\">on Medium in the Ocean Protocol blog</a>.</p>\n</blockquote>\n<hr>\n<h2 id=\"-going-decentralized\"><a href=\"#-going-decentralized\" aria-label=\" going decentralized permalink\" class=\"anchor\"><span>#</span></a>✨ Going Decentralized</h2>\n<p>With Ocean Protocol, you can use centralized storage services like S3, Azure Storage, or your own On-Premise storage to store and retrieve your asset files through <a href=\"https://docs.oceanprotocol.com/concepts/components/#osmosis-drivers\">Osmosis drivers in Brizo</a>.</p>\n<p>But storing asset files in a centralized service poses multiple problems:</p>\n<ul>\n<li>one entity controls the data</li>\n<li>one entity is legally responsible for all stored data</li>\n<li>creates a single point of failure</li>\n<li>if service goes offline, asset files cant be consumed</li>\n<li>opening up possibilities of censorship by the entity running the service, or the service itself</li>\n<li>if files are moved to another location within the same service, existing URLs break</li>\n</ul>\n<p>Initially created to store and efficiently move scientific data sets, the <a href=\"https://ipfs.io/\">InterPlanetary File System (IPFS)</a> solves all those issues with its goal of transforming the vastly centralized web into a distributed peer-to-peer network.</p>\n<p>Files are distributed among multiple nodes, eliminating the single point of failure, legal, and censorship issues. By using content-based instead of location-based addressing of files, URLs wont break if files are moved.</p>\n<p>So we defined <a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\">OEP-15</a> to make the <code>ipfs://</code> protocol a first-class citizen in the Ocean Protocol stack, allowing you to store asset files on IPFS, and use their native IPFS URLs during the publish process.</p>\n<ul>\n<li><a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\"><strong>OEP-15: oceanprotocol/OEPs</strong></a></li>\n</ul>\n<p>In short, every component in the Ocean Protocol stack now supports publishing and consuming of asset files stored in IPFS which includes support for native IPFS URLs, referencing files with their Content Identifiers (CIDs).</p>\n<h2 id=\"-ipfs-in-commons-marketplace\"><a href=\"#%EF%B8%8F-ipfs-in-commons-marketplace\" aria-label=\" ipfs in commons marketplace permalink\" class=\"anchor\"><span>#</span></a>⛲️ IPFS in Commons Marketplace</h2>\n<p>Every file stored on IPFS is public by default, so it made perfect sense using this in our <a href=\"https://commons.oceanprotocol.com\">Commons Marketplace</a> first. We went through <a href=\"https://github.com/oceanprotocol/commons/pull/191\">multiple prototypes</a> to end up with our final setup.</p>\n<p>During the publish flow you will find an extended <em>Files</em> section for adding a file from an existing URL, and for adding a local file from your device to IPFS.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n <span\n class=\"gatsby-resp-image-wrapper\"\n style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px;\"\n >\n <a\n class=\"gatsby-resp-image-link\"\n href=\"/static/5ec4122379d5c270cd7d899b02d8512e/67be7/add-url.png\"\n style=\"display: block\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <span\n class=\"gatsby-resp-image-background-image\"\n style=\"padding-bottom: 49.59128065395095%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsSAAALEgHS3X78AAABK0lEQVQoz5VR207CQBDl/79FXww8aMSEmGBiwpsKLeX+AtKWYvc+lzpbML4Y1Mns7OzMnpzZsx1mVkpZY5t/GhF1GuZaqfL44QNY55W1LgTjvLFOGzn4S2AkaoipMmgDOggHBZVGF4gYpSfdC+DYRwQfGm5rEonP+Y8YZnGxCJbNO7+ab
"excerpt": "IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting. This article was originally posted on Medium in the Ocean Protocol blog. ✨ Going Decentralized With Ocean Protocol, you can use…",
"frontmatter": {
"title": "Ocean Protocol and IPFS, Sitting In The Merkle Tree",
"linkurl": null,
"tags": ["oceanprotocol", "blockchain", "design", "ipfs", "web3"],
"image": {
"childImageSharp": {
"original": {
"src": "/static/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser-f724bdaae38e81ec90b01ec6b8412cc8.png"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"srcSet": "/static/f724bdaae38e81ec90b01ec6b8412cc8/90a60/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/c23b6/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a9eb1/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/9a629/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 2000w",
"srcWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp",
"srcSetWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/b0720/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/f6188/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/7c0bb/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/d1e4e/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/eb8cf/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 2000w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"originalName": "ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"presentationWidth": 400,
"presentationHeight": 140
}
}
}
},
"fields": {
"slug": "/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree",
"date": "October 24, 2019",
"type": "post"
}
}
}
]
},
"allArticles": {
"edges": [
{
"node": {
"id": "6effe45d-0884-527c-9fba-6f7f567979fd",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-03-orszaghaz-ii.md",
"html": "<p>Inside the Hungarian Parliament Building in Budapest, Hungary.</p>",
"excerpt": "Inside the Hungarian Parliament Building in Budapest, Hungary.",
"frontmatter": {
"title": "Országház II",
"linkurl": null,
"tags": null,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-03-orszaghaz-ii-2dbcf257b4bdf625c24fede935d32425.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg",
"srcSet": "/static/2dbcf257b4bdf625c24fede935d32425/23780/2019-11-03-orszaghaz-ii.jpg 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/02ed9/2019-11-03-orszaghaz-ii.jpg 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/ac974/2019-11-03-orszaghaz-ii.jpg 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/12c26/2019-11-03-orszaghaz-ii.jpg 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg 3793w",
"srcWebp": "/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp",
"srcSetWebp": "/static/2dbcf257b4bdf625c24fede935d32425/b0720/2019-11-03-orszaghaz-ii.webp 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/f6188/2019-11-03-orszaghaz-ii.webp 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/7c0bb/2019-11-03-orszaghaz-ii.webp 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/d1e4e/2019-11-03-orszaghaz-ii.webp 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/0a478/2019-11-03-orszaghaz-ii.webp 3793w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg",
"originalName": "2019-11-03-orszaghaz-ii.jpg",
"presentationWidth": 400,
"presentationHeight": 300
}
}
}
},
"fields": {
"slug": "/orszaghaz-ii/",
"date": "November 03, 2019",
"type": "photo"
}
}
},
{
"node": {
"id": "c80697e5-681d-5fcc-9dab-c3a3821ff0b1",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-02-orszaghaz-i.md",
"html": "<p>The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.</p>",
"excerpt": "The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.",
"frontmatter": {
"title": "Országház I",
"linkurl": null,
"tags": null,
"featured": true,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-02-orszaghaz-i-36d87329aeeda296ae923606e5a4a785.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg",
"srcSet": "/static/36d87329aeeda296ae923606e5a4a785/23780/2019-11-02-orszaghaz-i.jpg 100w,\n/static/36d87329aeeda296ae923606e5a4a785/02ed9/2019-11-02-orszaghaz-i.jpg 200w,\n/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg 400w,\n/static/36d87329aeeda296ae923606e5a4a785/ac974/2019-11-02-orszaghaz-i.jpg 600w,\n/static/36d87329aeeda296ae923606e5a4a785/12c26/2019-11-02-orszaghaz-i.jpg 800w,\n/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg 3708w",
"srcWebp": "/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp",
"srcSetWebp": "/static/36d87329aeeda296ae923606e5a4a785/b0720/2019-11-02-orszaghaz-i.webp 100w,\n/static/36d87329aeeda296ae923606e5a4a785/f6188/2019-11-02-orszaghaz-i.webp 200w,\n/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp 400w,\n/static/36d87329aeeda296ae923606e5a4a785/7c0bb/2019-11-02-orszaghaz-i.webp 600w,\n/static/36d87329aeeda296ae923606e5a4a785/d1e4e/2019-11-02-orszaghaz-i.webp 800w,\n/static/36d87329aeeda296ae923606e5a4a785/730f8/2019-11-02-orszaghaz-i.webp 3708w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg",
"originalName": "2019-11-02-orszaghaz-i.jpg",
"presentationWidth": 400,
"presentationHeight": 297
}
}
}
},
"fields": {
"slug": "/orszaghaz-i/",
"date": "November 02, 2019",
"type": "photo"
}
}
},
{
"node": {
"id": "2e2c9611-be7b-5bc0-a72b-6c63e2072b5a",
"fileAbsolutePath": "/Users/m/Code/blog/content/posts/2019-10-24-ocean-protocol-and-ipfs-sitting-in-the-merkle-tree/index.md",
"html": "<p>IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting.</p>\n<hr>\n<blockquote>\n<p>This article was originally posted <a href=\"https://blog.oceanprotocol.com/ocean-ipfs-integration-store-asset-files-43c623c356d7\">on Medium in the Ocean Protocol blog</a>.</p>\n</blockquote>\n<hr>\n<h2 id=\"-going-decentralized\"><a href=\"#-going-decentralized\" aria-label=\" going decentralized permalink\" class=\"anchor\"><span>#</span></a>✨ Going Decentralized</h2>\n<p>With Ocean Protocol, you can use centralized storage services like S3, Azure Storage, or your own On-Premise storage to store and retrieve your asset files through <a href=\"https://docs.oceanprotocol.com/concepts/components/#osmosis-drivers\">Osmosis drivers in Brizo</a>.</p>\n<p>But storing asset files in a centralized service poses multiple problems:</p>\n<ul>\n<li>one entity controls the data</li>\n<li>one entity is legally responsible for all stored data</li>\n<li>creates a single point of failure</li>\n<li>if service goes offline, asset files cant be consumed</li>\n<li>opening up possibilities of censorship by the entity running the service, or the service itself</li>\n<li>if files are moved to another location within the same service, existing URLs break</li>\n</ul>\n<p>Initially created to store and efficiently move scientific data sets, the <a href=\"https://ipfs.io/\">InterPlanetary File System (IPFS)</a> solves all those issues with its goal of transforming the vastly centralized web into a distributed peer-to-peer network.</p>\n<p>Files are distributed among multiple nodes, eliminating the single point of failure, legal, and censorship issues. By using content-based instead of location-based addressing of files, URLs wont break if files are moved.</p>\n<p>So we defined <a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\">OEP-15</a> to make the <code>ipfs://</code> protocol a first-class citizen in the Ocean Protocol stack, allowing you to store asset files on IPFS, and use their native IPFS URLs during the publish process.</p>\n<ul>\n<li><a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\"><strong>OEP-15: oceanprotocol/OEPs</strong></a></li>\n</ul>\n<p>In short, every component in the Ocean Protocol stack now supports publishing and consuming of asset files stored in IPFS which includes support for native IPFS URLs, referencing files with their Content Identifiers (CIDs).</p>\n<h2 id=\"-ipfs-in-commons-marketplace\"><a href=\"#%EF%B8%8F-ipfs-in-commons-marketplace\" aria-label=\" ipfs in commons marketplace permalink\" class=\"anchor\"><span>#</span></a>⛲️ IPFS in Commons Marketplace</h2>\n<p>Every file stored on IPFS is public by default, so it made perfect sense using this in our <a href=\"https://commons.oceanprotocol.com\">Commons Marketplace</a> first. We went through <a href=\"https://github.com/oceanprotocol/commons/pull/191\">multiple prototypes</a> to end up with our final setup.</p>\n<p>During the publish flow you will find an extended <em>Files</em> section for adding a file from an existing URL, and for adding a local file from your device to IPFS.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n <span\n class=\"gatsby-resp-image-wrapper\"\n style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px;\"\n >\n <a\n class=\"gatsby-resp-image-link\"\n href=\"/static/5ec4122379d5c270cd7d899b02d8512e/67be7/add-url.png\"\n style=\"display: block\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <span\n class=\"gatsby-resp-image-background-image\"\n style=\"padding-bottom: 49.59128065395095%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsSAAALEgHS3X78AAABK0lEQVQoz5VR207CQBDl/79FXww8aMSEmGBiwpsKLeX+AtKWYvc+lzpbML4Y1Mns7OzMnpzZsx1mVkpZY5t/GhF1GuZaqfL44QNY55W1LgTjvLFOGzn4S2AkaoipMmgDOggHBZVGF4gYpSfdC+DYRwQfGm5rEonP+Y8YZnGxCJbNO7+ab
"excerpt": "IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting. This article was originally posted on Medium in the Ocean Protocol blog. ✨ Going Decentralized With Ocean Protocol, you can use…",
"frontmatter": {
"title": "Ocean Protocol and IPFS, Sitting In The Merkle Tree",
"linkurl": null,
"tags": ["oceanprotocol", "blockchain", "design", "ipfs", "web3"],
"image": {
"childImageSharp": {
"original": {
"src": "/static/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser-f724bdaae38e81ec90b01ec6b8412cc8.png"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"srcSet": "/static/f724bdaae38e81ec90b01ec6b8412cc8/90a60/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/c23b6/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a9eb1/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/9a629/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 2000w",
"srcWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp",
"srcSetWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/b0720/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/f6188/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/7c0bb/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/d1e4e/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/eb8cf/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 2000w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"originalName": "ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"presentationWidth": 400,
"presentationHeight": 140
}
}
}
},
"fields": {
"slug": "/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree",
"date": "October 24, 2019",
"type": "post"
}
}
}
]
},
"allPhotos": {
2019-11-24 14:29:25 +01:00
"edges": [
{
"node": {
"id": "6effe45d-0884-527c-9fba-6f7f567979fd",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-03-orszaghaz-ii.md",
"html": "<p>Inside the Hungarian Parliament Building in Budapest, Hungary.</p>",
"excerpt": "Inside the Hungarian Parliament Building in Budapest, Hungary.",
"frontmatter": {
"title": "Országház II",
2021-03-01 00:36:51 +01:00
2019-11-24 14:29:25 +01:00
"linkurl": null,
"tags": null,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-03-orszaghaz-ii-2dbcf257b4bdf625c24fede935d32425.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg",
"srcSet": "/static/2dbcf257b4bdf625c24fede935d32425/23780/2019-11-03-orszaghaz-ii.jpg 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/02ed9/2019-11-03-orszaghaz-ii.jpg 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/ef7a0/2019-11-03-orszaghaz-ii.jpg 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/ac974/2019-11-03-orszaghaz-ii.jpg 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/12c26/2019-11-03-orszaghaz-ii.jpg 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg 3793w",
"srcWebp": "/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp",
"srcSetWebp": "/static/2dbcf257b4bdf625c24fede935d32425/b0720/2019-11-03-orszaghaz-ii.webp 100w,\n/static/2dbcf257b4bdf625c24fede935d32425/f6188/2019-11-03-orszaghaz-ii.webp 200w,\n/static/2dbcf257b4bdf625c24fede935d32425/a93fc/2019-11-03-orszaghaz-ii.webp 400w,\n/static/2dbcf257b4bdf625c24fede935d32425/7c0bb/2019-11-03-orszaghaz-ii.webp 600w,\n/static/2dbcf257b4bdf625c24fede935d32425/d1e4e/2019-11-03-orszaghaz-ii.webp 800w,\n/static/2dbcf257b4bdf625c24fede935d32425/0a478/2019-11-03-orszaghaz-ii.webp 3793w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/2dbcf257b4bdf625c24fede935d32425/24914/2019-11-03-orszaghaz-ii.jpg",
"originalName": "2019-11-03-orszaghaz-ii.jpg",
"presentationWidth": 400,
"presentationHeight": 300
}
}
}
},
"fields": {
"slug": "/orszaghaz-ii/",
2021-03-01 00:36:51 +01:00
"date": "November 03, 2019",
"type": "photo"
2019-11-24 14:29:25 +01:00
}
}
},
{
"node": {
"id": "c80697e5-681d-5fcc-9dab-c3a3821ff0b1",
"fileAbsolutePath": "/Users/m/Code/blog/content/photos/2019-11-02-orszaghaz-i.md",
"html": "<p>The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.</p>",
"excerpt": "The Hungarian Parliament Building seen from across the Danube in Budapest, Hungary.",
"frontmatter": {
"title": "Országház I",
"linkurl": null,
"tags": null,
"featured": true,
"image": {
"childImageSharp": {
"original": {
"src": "/static/2019-11-02-orszaghaz-i-36d87329aeeda296ae923606e5a4a785.jpg"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg",
"srcSet": "/static/36d87329aeeda296ae923606e5a4a785/23780/2019-11-02-orszaghaz-i.jpg 100w,\n/static/36d87329aeeda296ae923606e5a4a785/02ed9/2019-11-02-orszaghaz-i.jpg 200w,\n/static/36d87329aeeda296ae923606e5a4a785/ef7a0/2019-11-02-orszaghaz-i.jpg 400w,\n/static/36d87329aeeda296ae923606e5a4a785/ac974/2019-11-02-orszaghaz-i.jpg 600w,\n/static/36d87329aeeda296ae923606e5a4a785/12c26/2019-11-02-orszaghaz-i.jpg 800w,\n/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg 3708w",
"srcWebp": "/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp",
"srcSetWebp": "/static/36d87329aeeda296ae923606e5a4a785/b0720/2019-11-02-orszaghaz-i.webp 100w,\n/static/36d87329aeeda296ae923606e5a4a785/f6188/2019-11-02-orszaghaz-i.webp 200w,\n/static/36d87329aeeda296ae923606e5a4a785/a93fc/2019-11-02-orszaghaz-i.webp 400w,\n/static/36d87329aeeda296ae923606e5a4a785/7c0bb/2019-11-02-orszaghaz-i.webp 600w,\n/static/36d87329aeeda296ae923606e5a4a785/d1e4e/2019-11-02-orszaghaz-i.webp 800w,\n/static/36d87329aeeda296ae923606e5a4a785/730f8/2019-11-02-orszaghaz-i.webp 3708w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/36d87329aeeda296ae923606e5a4a785/b9e8b/2019-11-02-orszaghaz-i.jpg",
"originalName": "2019-11-02-orszaghaz-i.jpg",
"presentationWidth": 400,
"presentationHeight": 297
}
}
}
},
"fields": {
"slug": "/orszaghaz-i/",
2021-03-01 00:36:51 +01:00
"date": "November 02, 2019",
"type": "photo"
2019-11-24 14:29:25 +01:00
}
}
},
{
"node": {
"id": "2e2c9611-be7b-5bc0-a72b-6c63e2072b5a",
"fileAbsolutePath": "/Users/m/Code/blog/content/posts/2019-10-24-ocean-protocol-and-ipfs-sitting-in-the-merkle-tree/index.md",
"html": "<p>IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting.</p>\n<hr>\n<blockquote>\n<p>This article was originally posted <a href=\"https://blog.oceanprotocol.com/ocean-ipfs-integration-store-asset-files-43c623c356d7\">on Medium in the Ocean Protocol blog</a>.</p>\n</blockquote>\n<hr>\n<h2 id=\"-going-decentralized\"><a href=\"#-going-decentralized\" aria-label=\" going decentralized permalink\" class=\"anchor\"><span>#</span></a>✨ Going Decentralized</h2>\n<p>With Ocean Protocol, you can use centralized storage services like S3, Azure Storage, or your own On-Premise storage to store and retrieve your asset files through <a href=\"https://docs.oceanprotocol.com/concepts/components/#osmosis-drivers\">Osmosis drivers in Brizo</a>.</p>\n<p>But storing asset files in a centralized service poses multiple problems:</p>\n<ul>\n<li>one entity controls the data</li>\n<li>one entity is legally responsible for all stored data</li>\n<li>creates a single point of failure</li>\n<li>if service goes offline, asset files cant be consumed</li>\n<li>opening up possibilities of censorship by the entity running the service, or the service itself</li>\n<li>if files are moved to another location within the same service, existing URLs break</li>\n</ul>\n<p>Initially created to store and efficiently move scientific data sets, the <a href=\"https://ipfs.io/\">InterPlanetary File System (IPFS)</a> solves all those issues with its goal of transforming the vastly centralized web into a distributed peer-to-peer network.</p>\n<p>Files are distributed among multiple nodes, eliminating the single point of failure, legal, and censorship issues. By using content-based instead of location-based addressing of files, URLs wont break if files are moved.</p>\n<p>So we defined <a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\">OEP-15</a> to make the <code>ipfs://</code> protocol a first-class citizen in the Ocean Protocol stack, allowing you to store asset files on IPFS, and use their native IPFS URLs during the publish process.</p>\n<ul>\n<li><a href=\"https://github.com/oceanprotocol/OEPs/tree/master/15\"><strong>OEP-15: oceanprotocol/OEPs</strong></a></li>\n</ul>\n<p>In short, every component in the Ocean Protocol stack now supports publishing and consuming of asset files stored in IPFS which includes support for native IPFS URLs, referencing files with their Content Identifiers (CIDs).</p>\n<h2 id=\"-ipfs-in-commons-marketplace\"><a href=\"#%EF%B8%8F-ipfs-in-commons-marketplace\" aria-label=\" ipfs in commons marketplace permalink\" class=\"anchor\"><span>#</span></a>⛲️ IPFS in Commons Marketplace</h2>\n<p>Every file stored on IPFS is public by default, so it made perfect sense using this in our <a href=\"https://commons.oceanprotocol.com\">Commons Marketplace</a> first. We went through <a href=\"https://github.com/oceanprotocol/commons/pull/191\">multiple prototypes</a> to end up with our final setup.</p>\n<p>During the publish flow you will find an extended <em>Files</em> section for adding a file from an existing URL, and for adding a local file from your device to IPFS.</p>\n<p><figure class=\"gatsby-resp-image-figure\" style=\"\">\n <span\n class=\"gatsby-resp-image-wrapper\"\n style=\"position: relative; display: block; margin-left: auto; margin-right: auto; max-width: 630px;\"\n >\n <a\n class=\"gatsby-resp-image-link\"\n href=\"/static/5ec4122379d5c270cd7d899b02d8512e/67be7/add-url.png\"\n style=\"display: block\"\n target=\"_blank\"\n rel=\"noopener\"\n >\n <span\n class=\"gatsby-resp-image-background-image\"\n style=\"padding-bottom: 49.59128065395095%; position: relative; bottom: 0; left: 0; background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAIAAAA7N+mxAAAACXBIWXMAAAsSAAALEgHS3X78AAABK0lEQVQoz5VR207CQBDl/79FXww8aMSEmGBiwpsKLeX+AtKWYvc+lzpbML4Y1Mns7OzMnpzZsx1mVkpZY5t/GhF1GuZaqfL44QNY55W1LgTjvLFOGzn4S2AkaoipMmgDOggHBZVGF4gYpSfdC+DYRwQfGm5rEonP+Y8YZnGxCJbNO7+ab
"excerpt": "IPFS is now integrated into the Ocean Protocol stack, allowing you to take advantage of decentralized asset file hosting. This article was originally posted on Medium in the Ocean Protocol blog. ✨ Going Decentralized With Ocean Protocol, you can use…",
"frontmatter": {
"title": "Ocean Protocol and IPFS, Sitting In The Merkle Tree",
2021-03-01 00:36:51 +01:00
2019-11-24 14:29:25 +01:00
"linkurl": null,
"tags": ["oceanprotocol", "blockchain", "design", "ipfs", "web3"],
"image": {
"childImageSharp": {
"original": {
"src": "/static/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser-f724bdaae38e81ec90b01ec6b8412cc8.png"
},
"fluid": {
"aspectRatio": 2.3255813953488373,
"src": "/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"srcSet": "/static/f724bdaae38e81ec90b01ec6b8412cc8/90a60/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/c23b6/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/687f7/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a9eb1/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/9a629/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png 2000w",
"srcWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp",
"srcSetWebp": "/static/f724bdaae38e81ec90b01ec6b8412cc8/b0720/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 100w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/f6188/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 200w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/a93fc/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 400w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/7c0bb/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 600w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/d1e4e/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 800w,\n/static/f724bdaae38e81ec90b01ec6b8412cc8/eb8cf/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.webp 2000w",
"sizes": "(max-width: 400px) 100vw, 400px",
"originalImg": "/static/f724bdaae38e81ec90b01ec6b8412cc8/5956c/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"originalName": "ocean-protocol-and-ipfs-sitting-in-the-merkle-tree-teaser.png",
"presentationWidth": 400,
"presentationHeight": 140
}
}
}
},
"fields": {
"slug": "/ocean-protocol-and-ipfs-sitting-in-the-merkle-tree",
2021-03-01 00:36:51 +01:00
"date": "October 24, 2019",
"type": "post"
2019-11-24 14:29:25 +01:00
}
}
}
]
}
}