710 lines
70 KiB
HTML
710 lines
70 KiB
HTML
<!DOCTYPE html><html data-wf-page="669ac798eea89addcd56e444" data-wf-site="669696d6af77a83985da8ffd" lang="en" data-wf-collection="669ac798eea89addcd56e416" data-wf-item-slug="how-laconic-network-uses-ipld"><head><meta charset="utf-8"/><title>How Laconic Network Uses IPLD | Laconic Network</title><meta content="Laconic Network Blog" name="description"/><meta content="How Laconic Network Uses IPLD | Laconic Network" property="og:title"/><meta content="Laconic Network Blog" property="og:description"/><meta content="../images/how-laconic-network-uses-ipld.png" property="og:image"/><meta content="How Laconic Network Uses IPLD | Laconic Network" property="twitter:title"/><meta content="Laconic Network Blog" property="twitter:description"/><meta content="../images/how-laconic-network-uses-ipld.png" property="twitter:image"/><meta property="og:type" content="website"/><meta content="summary_large_image" name="twitter:card"/><meta content="width=device-width, initial-scale=1" name="viewport"/><meta content="Webflow" name="generator"/><link href="../css/laconic-staging.webflow.ac960b332.min.css" rel="stylesheet" type="text/css"/><script type="text/javascript">!function(o,c){var n=c.documentElement,t=" w-mod-";n.className+=t+"js",("ontouchstart"in o||o.DocumentTouch&&c instanceof DocumentTouch)&&(n.className+=t+"touch")}(window,document);</script><link href="../images/favicon.png" rel="shortcut icon" type="image/x-icon"/><link href="../images/app-icon.png" rel="apple-touch-icon"/><script>
|
||
(function() {
|
||
const storedTheme = localStorage.getItem('theme');
|
||
const root = document.documentElement;
|
||
if (storedTheme) {
|
||
root.setAttribute('data-theme', storedTheme);
|
||
} else {
|
||
root.setAttribute('data-theme', 'dark');
|
||
}
|
||
})();
|
||
</script></head><body><div aria-hidden="true" class="page-wrapper"><div class="global-styles w-embed"><style>
|
||
|
||
:root {
|
||
color-scheme: dark;
|
||
--duration-normal: 0.525s;
|
||
--duration-fast: 0.262s;
|
||
--ease: cubic-bezier(0.165, 0.84, 0.44, 1);
|
||
--ease-button: cubic-bezier(0.3, 1, 0.8, 1);
|
||
--normal-transition: var(--duration-fast) var(--ease);
|
||
--main-padding-top: max(13px, 0.6770833333vw);
|
||
--main-padding-side: max(16px, 2.96875vw);
|
||
--header-height: max(70px, 3.6979166667vw);
|
||
--header-height-mobile: 79px;
|
||
--logo: url("path-to-dark-theme-image.jpg");
|
||
}
|
||
|
||
:root[data-theme="light"] {
|
||
color-scheme: light;
|
||
--theme--color-accent: #0000f4;
|
||
--theme--color-accent-boke: #0000f4;
|
||
--theme--color-black: #fbfbfb;
|
||
--theme--color-white: #040404;
|
||
--theme--color-grey: #565656;
|
||
--theme--color-grey-light: #8e8e8e;
|
||
--theme--color-grey-lightness: #dedede;
|
||
--logo: url("path-to-dark-theme-image.jpg");
|
||
}
|
||
|
||
::selection {
|
||
background-color: #0000f4;
|
||
color: #040404;
|
||
}
|
||
|
||
body {
|
||
transition: all var(--normal-transition);
|
||
}
|
||
|
||
|
||
/**
|
||
*** Light Mode Styles
|
||
**/
|
||
|
||
html[data-theme="light"] .button.benefits,
|
||
html[data-theme="light"] .button.primary,
|
||
html[data-theme="light"] .button.community{
|
||
color: var(--theme--color-black);
|
||
}
|
||
|
||
html[data-theme="light"] .noise-component {
|
||
opacity: 0.35;
|
||
}
|
||
|
||
html[data-theme="light"] .benefits_ball {
|
||
mix-blend-mode: darken;
|
||
background-color: var(--theme--color-black);
|
||
box-shadow: 0 4px 115px 15px #0000f4, 0 0 70px 20px var(--theme--color-black),
|
||
inset -39px -20px 100px rgba(0, 0, 244, 0.73);
|
||
}
|
||
|
||
html[data-theme="light"] .hero_gradient,
|
||
html[data-theme="light"] .section_blog-hero,
|
||
html[data-theme="light"] .section_blog-post-hero {
|
||
background-image: linear-gradient( 180deg, var(--theme--color-black) 1%, var(--theme--color-black) 65%);
|
||
}
|
||
|
||
html[data-theme="light"] ._404_background-gradient,
|
||
html[data-theme="light"] .product-hero_gradient,
|
||
html[data-theme="light"] .partner-hero_gradient {
|
||
visibility: hidden;
|
||
}
|
||
|
||
html[data-theme="light"] .footer_toggle {
|
||
justify-content: flex-end;
|
||
}
|
||
|
||
html[data-theme="light"] .network_feature-image {
|
||
-webkit-filter: invert(100%);
|
||
filter: invert(100%);
|
||
}
|
||
|
||
html[data-theme="light"] {
|
||
.network_desktop-image,
|
||
.network_mobile-image,
|
||
.community-hero_mobile-image,
|
||
.app_desktop-image,
|
||
.app_mobile-image,
|
||
.product-hero_video-container,
|
||
.partner-hero_video-container,
|
||
.partner-hero_mobile-image-container,
|
||
.opportunities_image,
|
||
.opportunities_mobile-image {
|
||
mix-blend-mode: darken;
|
||
}
|
||
}
|
||
|
||
|
||
html[data-theme="light"] .product-hero_mobile-image-container {
|
||
mix-blend-mode: darken;
|
||
-webkit-filter: brightness(110%);
|
||
filter: brightness(110%);
|
||
}
|
||
|
||
|
||
.product-hero_gradient,
|
||
.partner-hero_gradient {
|
||
background: linear-gradient(
|
||
180deg,
|
||
rgba(0, 0, 244, 0.9) 1.63%,
|
||
rgba(0, 0, 244, 0) 99.89%
|
||
);
|
||
}
|
||
|
||
.community-hero_gradient{
|
||
|
||
background: linear-gradient(180deg, rgba(0, 0, 244, .9) 1.63%, rgba(0, 0, 244, 0) 99.89%);
|
||
}
|
||
|
||
.events_gradient{
|
||
background: linear-gradient(180deg, hsla(0, 0%, 90%, 0), hsla(0, 0%, 100%, .39) 51%, hsla(0, 0%, 95%, 0) 89.23%);
|
||
|
||
}
|
||
|
||
.stack_gradient {
|
||
position: absolute;
|
||
right: 0;
|
||
bottom: max(300px, 30.7291666667vw);
|
||
left: 0;
|
||
opacity: 0.4;
|
||
z-index: -1;
|
||
margin-left: 0;
|
||
background: linear-gradient(
|
||
180deg,
|
||
hsla(0, 0%, 90%, 0),
|
||
hsla(0, 0%, 95%, 0.5) 48.91%,
|
||
hsla(0, 0%, 95%, 0) 89.23%
|
||
);
|
||
width: 100%;
|
||
height: max(180px, 18.2291666667vw);
|
||
content: "";
|
||
pointer-events: none;
|
||
-webkit-user-select: none;
|
||
user-select: none;
|
||
}
|
||
|
||
.partner-hero_video {
|
||
-webkit-mask-size: 250% 100%;
|
||
mask-size: 250% 100%;
|
||
-webkit-mask-position: center center;
|
||
mask-position: center center;
|
||
-webkit-mask-repeat: no-repeat;
|
||
mask-repeat: no-repeat;
|
||
-webkit-mask-image: radial-gradient(
|
||
ellipse,
|
||
#030303 40%,
|
||
rgba(3, 3, 3, 0) 85%,
|
||
rgba(3, 3, 3, 0) 100%
|
||
);
|
||
mask-image: radial-gradient(
|
||
ellipse,
|
||
#030303 40%,
|
||
rgba(3, 3, 3, 0) 85%,
|
||
rgba(3, 3, 3, 0) 100%
|
||
);
|
||
}
|
||
|
||
@keyframes noise_grain {
|
||
0% {
|
||
-webkit-transform: translate(20%, -15%);
|
||
transform: translate(20%, -15%);
|
||
}
|
||
10% {
|
||
-webkit-transform: translate(-20%, -15%);
|
||
transform: translate(-20%, -15%);
|
||
}
|
||
20% {
|
||
-webkit-transform: translate(20%, -5%);
|
||
transform: translate(20%, -5%);
|
||
}
|
||
30% {
|
||
-webkit-transform: translate(-20%, -5%);
|
||
transform: translate(-20%, -5%);
|
||
}
|
||
40% {
|
||
-webkit-transform: translate(20%, 5%);
|
||
transform: translate(20%, 5%);
|
||
}
|
||
50% {
|
||
-webkit-transform: translate(-20%, 5%);
|
||
transform: translate(-20%, 5%);
|
||
}
|
||
60% {
|
||
-webkit-transform: translate(20%, 15%);
|
||
transform: translate(20%, 15%);
|
||
}
|
||
70% {
|
||
-webkit-transform: translate(-20%, 15%);
|
||
transform: translate(-20%, 15%);
|
||
}
|
||
80% {
|
||
-webkit-transform: translate(20%, 5%);
|
||
transform: translate(20%, 5%);
|
||
}
|
||
90% {
|
||
-webkit-transform: translate(-20%, 5%);
|
||
transform: translate(-20%, 5%);
|
||
}
|
||
100% {
|
||
-webkit-transform: translate(20%, -5%);
|
||
transform: translate(20%, -5%);
|
||
}
|
||
}
|
||
|
||
.social_subheader:before{
|
||
display: block;
|
||
position: absolute;
|
||
-webkit-transform: translate(-220%, -50%);
|
||
transform: translate(-220%, -50%);
|
||
border-bottom: max(2px, .1041666667vw) solid blue;
|
||
width: max(15px, 1.25vw);
|
||
height: max(15px, .9375vw);
|
||
content: "";
|
||
}
|
||
|
||
.opportunities_block:nth-child(2n) {
|
||
grid-template-columns: auto max(50px, 15.625vw);
|
||
}
|
||
|
||
.opportunities_block:nth-child(2n) .opportunities_image {
|
||
grid-area: 1 / 2 / 2 / 3;
|
||
}
|
||
|
||
.opportunities_block:last-child {
|
||
padding-bottom: max(60px, 6.25vw);
|
||
border-bottom: max(1px, 0.0520833333vw) solid var(--theme--color-grey-light);
|
||
}
|
||
|
||
.opportunities_block:not(:first-child) {
|
||
margin-top: max(30px, 4.4791666667vw);
|
||
}
|
||
|
||
.stack_item:before {
|
||
padding-top: 0.4166666667vw;
|
||
font-size: max(10px, 0.625vw);
|
||
content: "0" counter(custom) " ";
|
||
}
|
||
|
||
.section_app div:first-child {
|
||
position: relative;
|
||
width: 67.7083333333vw;
|
||
}
|
||
|
||
.section_app .app_container {
|
||
display: flex;
|
||
z-index: 2;
|
||
}
|
||
|
||
.legal_rich-text li::marker {
|
||
color: var(--theme--color-accent);
|
||
}
|
||
|
||
.benefits_benefit-icon:before {
|
||
position: absolute;
|
||
top: 0;
|
||
left: 0;
|
||
opacity: 0.5;
|
||
background: linear-gradient(
|
||
134.38deg,
|
||
var(--theme--color-white) 4.91%,
|
||
var(--theme--color-black) 108.92%
|
||
);
|
||
content: "";
|
||
z-index: -1;
|
||
width: max(38px, 1.9791666667vw);
|
||
height: max(27px, 1.40625vw);
|
||
}
|
||
|
||
.blog-post_rich-text li::before {
|
||
content: "";
|
||
position: absolute;
|
||
border-radius: 50%;
|
||
height: 8px !important;
|
||
width: 8px !important;
|
||
margin-top: max(8px, 0.78125vw) !important;
|
||
background: var(--theme--color-accent) !important;
|
||
left: 0 !important;
|
||
}
|
||
|
||
.blog-post_rich-text li::marker {
|
||
content: "";
|
||
}
|
||
|
||
.section_hero:before {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
-webkit-transform: translate(-50%, -50%);
|
||
transform: translate(-50%, -50%);
|
||
z-index: -1;
|
||
background: linear-gradient(
|
||
0deg,
|
||
var(--theme--color-black) 15%,
|
||
rgba(9, 9, 121, 0) 50%,
|
||
var(--theme--color-black) 100%
|
||
),
|
||
linear-gradient(
|
||
90deg,
|
||
var(--theme--color-black) 0,
|
||
hsla(0, 0%, 100%, 0) 10%,
|
||
hsla(0, 0%, 100%, 0) 50%,
|
||
hsla(0, 0%, 100%, 0) 90%,
|
||
var(--theme--color-black) 100%
|
||
);
|
||
width: 101%;
|
||
height: 101%;
|
||
aspect-ratio: 16/9;
|
||
content: "";
|
||
pointer-events: none;
|
||
}
|
||
|
||
.section_hero:after {
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
-webkit-transform: translate(-50%, -50%);
|
||
transform: translate(-50%, -50%);
|
||
z-index: -1;
|
||
background: linear-gradient(
|
||
0deg,
|
||
var(--theme--color-black) 15%,
|
||
rgba(9, 9, 121, 0) 50%,
|
||
var(--theme--color-black) 100%
|
||
),
|
||
linear-gradient(
|
||
90deg,
|
||
var(--theme--color-black) 0,
|
||
hsla(0, 0%, 100%, 0) 10%,
|
||
hsla(0, 0%, 100%, 0) 50%,
|
||
hsla(0, 0%, 100%, 0) 90%,
|
||
var(--theme--color-black) 100%
|
||
);
|
||
width: 101%;
|
||
height: 101%;
|
||
content: "";
|
||
pointer-events: none;
|
||
}
|
||
|
||
.section_404:before {
|
||
background: radial-gradient(
|
||
ellipse farthest-corner at center center,
|
||
rgba(4, 4, 4, 0.25) 55%,
|
||
var(--theme--color-black) 0
|
||
);
|
||
width: 120%;
|
||
height: 115%;
|
||
filter: blur(max(40px, 4.1666666667vw));
|
||
will-change: filter, transform;
|
||
aspect-ratio: 16 / 9;
|
||
position: absolute;
|
||
top: 50%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
z-index: -1;
|
||
content: "";
|
||
pointer-events: none;
|
||
}
|
||
|
||
html[data-theme="light"] .section_404:before {
|
||
width: 120%;
|
||
height: 115%;
|
||
background: linear-gradient(
|
||
0deg,
|
||
var(--theme--color-black) 15%,
|
||
rgba(9, 9, 121, 0) 50%,
|
||
var(--theme--color-black) 100%
|
||
);
|
||
}
|
||
|
||
/* Get rid of top margin on first element in any rich text element */
|
||
.w-richtext > :not(div):first-child,
|
||
.w-richtext > div:first-child > :first-child {
|
||
margin-top: 0 !important;
|
||
}
|
||
|
||
/* Get rid of bottom margin on last element in any rich text element */
|
||
.w-richtext > :last-child,
|
||
.w-richtext ol li:last-child,
|
||
.w-richtext ul li:last-child {
|
||
margin-bottom: 0 !important;
|
||
}
|
||
|
||
.blog_card-title {
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.blog_preview,
|
||
.blog_summary,
|
||
.latest-news_summary {
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 4;
|
||
-webkit-box-orient: vertical;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.blog_link-text:before,
|
||
.nav_link:before,
|
||
.footer_link:before {
|
||
position: absolute;
|
||
top: 100%;
|
||
left: 0;
|
||
right: 0;
|
||
opacity: 0;
|
||
width: 0;
|
||
background-image: repeating-linear-gradient(
|
||
0deg,
|
||
currentcolor,
|
||
currentcolor 100%,
|
||
transparent 0,
|
||
transparent 0,
|
||
currentcolor 0
|
||
),
|
||
repeating-linear-gradient(
|
||
90deg,
|
||
currentcolor,
|
||
currentcolor 100%,
|
||
transparent 0,
|
||
transparent 0,
|
||
currentcolor 0
|
||
),
|
||
repeating-linear-gradient(
|
||
currentcolor,
|
||
currentcolor 100%,
|
||
transparent 0,
|
||
transparent 0,
|
||
currentcolor 0
|
||
),
|
||
repeating-linear-gradient(
|
||
270deg,
|
||
currentcolor,
|
||
currentcolor 100%,
|
||
transparent 0,
|
||
transparent 0,
|
||
currentcolor 0
|
||
);
|
||
background-position: 0 0, 0 0, 100% 0, 0 100%;
|
||
background-repeat: no-repeat;
|
||
background-size: 0 100%, 100% 0, 0 100%, 100% 2px;
|
||
height: max(1px, 0.0520833333vw);
|
||
-webkit-animation: link_border__mvlME var(--duration-normal) linear infinite;
|
||
animation: link_border__mvlME var(--duration-normal) linear infinite;
|
||
content: "";
|
||
pointer-events: none;
|
||
transition: all var(--duration-normal) var(--ease);
|
||
}
|
||
|
||
.nav_link:hover::before,
|
||
.blog_link-text:hover::before,
|
||
.footer_link:hover::before {
|
||
width: 100%;
|
||
opacity: 1;
|
||
transition: all var(--duration-normal) var(--ease);
|
||
}
|
||
|
||
.blog-hero_card:hover .blog_hero-card-image-container {
|
||
-webkit-filter: brightness(125%);
|
||
filter: brightness(125%);
|
||
transition: -webkit-filter var(--duration-normal);
|
||
transition: filter var(--duration-normal);
|
||
transition: filter var(--duration-normal),
|
||
-webkit-filter var(--duration-normal);
|
||
}
|
||
|
||
.blog_card:hover .blog_card-image-container {
|
||
-webkit-filter: brightness(125%);
|
||
filter: brightness(125%);
|
||
transition: -webkit-filter var(--duration-normal);
|
||
transition: filter var(--duration-normal);
|
||
transition: filter var(--duration-normal),
|
||
-webkit-filter var(--duration-normal);
|
||
}
|
||
|
||
.blog_link:hover .blog_link-icon {
|
||
-webkit-transform: rotate(45deg) scale(1.15);
|
||
transform: rotate(45deg) scale(1.15);
|
||
}
|
||
|
||
.blog_link-icon {
|
||
transition: transform var(--normal-transition),
|
||
-webkit-transform var(--normal-transition);
|
||
}
|
||
|
||
@media (min-width: 1600px) {
|
||
.blog_grid {
|
||
grid-template-columns: repeat(3, 1fr);
|
||
}
|
||
}
|
||
|
||
@media (max-width: 990px) {
|
||
|
||
|
||
.social_subheader:before{
|
||
visibility:hidden;
|
||
}
|
||
|
||
|
||
.opportunities_block:last-child {
|
||
border-bottom: unset;
|
||
padding-bottom: 5.3333333333vw;
|
||
}
|
||
|
||
.opportunities_block:not(:first-child) {
|
||
margin-top: max(60px, 5.859375vw);
|
||
}
|
||
|
||
.blog_link-text:before,
|
||
.nav_link:before {
|
||
top: 105%;
|
||
}
|
||
|
||
html[data-theme="light"] .nav_menu {
|
||
background-image: linear-gradient(
|
||
180deg,
|
||
var(--theme--color-black) 1%,
|
||
var(--theme--color-black) 65%
|
||
); /* Use decimal value for opacity with higher specificity */
|
||
}
|
||
|
||
.section_hero:before,
|
||
.section_hero:after {
|
||
display: none;
|
||
}
|
||
|
||
.section_app div:first-child {
|
||
width: 100%;
|
||
min-height: max(340px, 50.6666666667vw);
|
||
order: 2;
|
||
}
|
||
}
|
||
|
||
|
||
|
||
</style></div><div class="noise-component"></div><header class="nav_component"><nav class="nav_container"><a aria-label="Go to Homepage" href="/" class="nav_logo-wrapper w-inline-block"><svg xmlns="http://www.w3.org/2000/svg" width="601" height="106" viewBox="0 0 601 106" fill="none" class="nav_logo"><path fill-rule="evenodd" clip-rule="evenodd" d="M18.2894 55.7848C30.5189 43.5558 38.0888 26.6671 38.0854 8.02048C38.09 5.48949 37.9502 2.98667 37.6724 0.514839L0.560059 0.518218L0.561185 71.8255C0.557804 80.4687 3.85339 89.1148 10.4451 95.7065C17.0374 102.298 25.6897 105.598 34.3346 105.593L34.3323 105.596L105.642 105.597L105.64 68.4797C103.173 68.2076 100.671 68.0673 98.134 68.0667C79.4918 68.069 62.6026 75.6383 50.373 87.8673C41.474 96.5432 27.2059 96.5449 18.4167 87.7557C9.6332 78.9722 9.62925 64.6996 18.2894 55.7848ZM97.9446 8.23121C87.6956 -2.01727 71.0447 -2.02122 60.7923 8.23121C50.5398 18.4831 50.5438 35.134 60.7923 45.3819C71.0464 55.636 87.6922 55.6343 97.9446 45.3819C108.197 35.13 108.199 18.4848 97.9446 8.23121Z" fill="var(--theme--color-white)"></path><path d="M165.931 98.1547H206.814V86.3139H179.596V7.9399H165.931V98.1547Z" fill="var(--theme--color-white)"></path><path d="M262.275 7.9399H239.613L215.925 98.1547H230.046L235.968 75.6011H265.236L271.158 98.1547H285.962L262.275 7.9399ZM238.815 64.3243L250.659 17.6379H251.114L262.502 64.3243H238.815Z" fill="var(--theme--color-white)"></path><path d="M331.202 42.9061H347.145C347.145 17.195 338.832 6.14364 319.472 6.14364C299.087 6.14364 290.319 20.1272 290.319 52.9428C290.319 85.871 299.087 99.9673 319.472 99.9673C338.832 99.9673 347.145 89.2539 347.259 64.3322H331.316C331.202 83.8415 328.81 88.6905 319.472 88.6905C308.767 88.6905 306.148 81.586 306.262 52.9428C306.262 24.4122 308.881 17.3077 319.472 17.4204C328.81 17.4204 331.202 22.4954 331.202 42.9061Z" fill="var(--theme--color-white)"></path><path d="M388.201 6.14421C408.927 6.25746 417.81 20.3532 417.81 53.056C417.81 85.7589 408.927 99.8551 388.201 99.9678C367.361 100.081 358.478 85.9843 358.478 53.056C358.478 20.1278 367.361 6.03152 388.201 6.14421ZM374.421 53.056C374.421 81.5866 377.154 88.6911 388.201 88.6911C399.133 88.6911 401.867 81.5866 401.867 53.056C401.867 24.4128 399.133 17.3083 388.201 17.4215C377.154 17.5342 374.421 24.6387 374.421 53.056Z" fill="var(--theme--color-white)"></path><path d="M447.595 98.042L433.929 98.1547V7.9399H457.958L480.393 81.4649H480.62V7.9399H494.283V98.1547H471.738L447.823 18.9913H447.595V98.042Z" fill="var(--theme--color-white)"></path><path d="M528.434 7.9399H514.77V98.1547H528.434V7.9399Z" fill="var(--theme--color-white)"></path><path d="M584.502 42.9061H600.447C600.447 17.195 592.131 6.14364 572.771 6.14364C552.391 6.14364 543.618 20.1272 543.618 52.9428C543.618 85.871 552.391 99.9673 572.771 99.9673C592.131 99.9673 600.447 89.2539 600.56 64.3322H584.615C584.502 83.8415 582.113 88.6905 572.771 88.6905C562.066 88.6905 559.451 81.586 559.564 52.9428C559.564 24.4122 562.184 17.3077 572.771 17.4204C582.113 17.4204 584.502 22.4954 584.502 42.9061Z" fill="var(--theme--color-white)"></path></svg></a><div class="nav_menu"><div class="nav_links"><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f1e" href="/products" class="nav_link">Products</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f20" href="/partners" class="nav_link">Partners</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f22" href="/community" class="nav_link">Community</a><a data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f24" href="/blog" class="nav_link">Blog</a></div><a href="https://github.com/cerc-io/stack-orchestrator" target="_blank" class="button mobile-nav w-button">GET STARTED</a><div class="hide-on-desktop"><div class="nav_secondary-menu"><div class="theme-toggle_wrapper"><div id="toggle-label" class="footer_toggle-label">Dark Mode</div><a id="theme-toggle" href="#" class="footer_toggle w-inline-block"><div class="footer_toggle-circle"></div></a></div><div class="nav_social"><a aria-label="Visit our Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r34:)"></path><defs><linearGradient id=":r34:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join us on Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Visit our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Find us on Reddit" href="https://www.reddit.com/r/LaconicNetwork/" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12Zm-5.7544-1.7544C19.214 10.2456 20 11.0316 20 12c0 .7158-.4351 1.3333-1.0105 1.614.0281.1684.0421.3369.0421.5193 0 2.6947-3.1298 4.8702-7.0035 4.8702-3.87371 0-7.00353-2.1755-7.00353-4.8702 0-.1824.01403-.3649.0421-.5333-.61754-.2807-1.03859-.8842-1.03859-1.6 0-.9684.78596-1.7544 1.75438-1.7544.46316 0 .89825.1965 1.20702.4912 1.20702-.88419 2.87719-1.43156 4.74382-1.4877l.8843-4.18246c.028-.08421.0701-.15438.1403-.19649.0702-.0421.1544-.05614.2386-.0421l2.9053.61754c.1965-.42105.6175-.70175 1.1087-.70175.6878 0 1.2492.5614 1.2492 1.24912s-.5614 1.24912-1.2492 1.24912c-.6736 0-1.221-.53333-1.2491-1.19298l-2.5965-.54737-.8 3.74737c1.8246.07018 3.4807.63158 4.6737 1.4877.3088-.3088.7298-.4912 1.207-.4912ZM9.24913 12c-.68772 0-1.24912.5614-1.24912 1.2491 0 .6877.5614 1.2491 1.24912 1.2491s1.24917-.5614 1.24917-1.2491c0-.6877-.56145-1.2491-1.24917-1.2491Zm2.76487 5.4596c.4772 0 2.1053-.0561 2.9614-.9123.1264-.1263.1264-.3228.0281-.4631-.1263-.1263-.3368-.1263-.4631 0-.5474.5333-1.6843.7298-2.5123.7298-.8281 0-1.979-.1965-2.5123-.7298-.12632-.1263-.33685-.1263-.46316 0-.12632.1263-.12632.3368 0 .4631.8421.8422 2.48416.9123 2.96136.9123Zm1.4878-4.2105c0 .6877.5614 1.2491 1.2491 1.2491.6877 0 1.2491-.5614 1.2491-1.2491C16 12.5614 15.4386 12 14.7509 12c-.6877 0-1.2491.5614-1.2491 1.2491Z" fill="url(#:r35:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r35:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r36:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r36:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Find us on LinkedIn" href="https://www.linkedin.com/company/laconic-network/" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M3e-7 2.00509C3e-7 1.47331.21125.963308.587278.58728.963305.211253 1.47331.00000267 2.00509.00000267H21.9927c.2636-.00043042.5246.05112313.7682.15170933.2436.100586.4649.248229.6514.434476.1864.186247.3343.40744.4352.650912.1008.24348.1526.50446.1525.76799V21.9927c.0003.2636-.0514.5247-.1521.7683-.1007.2436-.2485.4649-.4348.6513-.1863.1865-.4076.3343-.6511.4352-.2436.1008-.5046.1526-.7682.1525H2.00509c-.2634 0-.52423-.0519-.76757-.1527-.243336-.1009-.464424-.2487-.650628-.435-.186204-.1863-.333875-.4074-.434576-.6508-.1007015-.2434-.15245901-.5043-.1523157-.7677V2.00509ZM9.49964 9.15055h3.24986v1.63195C13.2185 9.84437 14.4185 9 16.2218 9c3.4571 0 4.2764 1.8687 4.2764 5.2975v6.3512h-3.4986v-5.5702c0-1.9527-.4691-3.0545-1.6603-3.0545-1.6528 0-2.34 1.188-2.34 3.0545v5.5702H9.49964V9.15055Zm-6 11.34875h3.49963V9H3.49964v11.4993ZM7.5 5.24946c.0066.29964-.04672.59758-.15683.87634s-.27479.53271-.48437.74696c-.20959.21426-.45986.38449-.73612.5007-.27627.11622-.57296.17609-.87268.17609s-.59641-.05987-.87268-.17609c-.27626-.11621-.52653-.28644-.73612-.5007-.20958-.21425-.37426-.4682-.48437-.74696C3.04672 5.84704 2.9934 5.5491 3 5.24946c.01295-.58816.25569-1.14787.67624-1.55925.42054-.41139.98546-.64175 1.57376-.64175s1.15322.23036 1.57376.64175c.42055.41138.66329.97109.67624 1.55925Z" fill="currentColor" clip-rule="evenodd" fill-rule="evenodd"></path></svg></a><a aria-label="Visit our Facebook page" href="https://www.facebook.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0-6.62742-5.3726-12-12-12C5.37258 0 0 5.37258 0 12c0 5.9895 4.3882 10.954 10.125 11.8542v-8.3855H7.07812V12H10.125V9.35625c0-3.0075 1.7916-4.66875 4.5326-4.66875 1.3125 0 2.6862.23437 2.6862.23437V7.875h-1.5132c-1.4906 0-1.9556.92508-1.9556 1.875V12h3.3281l-.532 3.4687H13.875v8.3855C19.6118 22.954 24 17.9895 24 12Z" fill="url(#:r37:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r37:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Follow us on Instagram" href="https://instagram.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M12 2.16094c3.2063 0 3.5859.01406 4.8469.07031 1.1719.05156 1.8047.24844 2.2265.4125.5579.21563.961.47813 1.3782.89531.4218.42188.6797.82032.8953 1.37813.164.42187.3609 1.05937.4125 2.22656.0562 1.26562.0703 1.64531.0703 4.84685 0 3.2063-.0141 3.586-.0703 4.8469-.0516 1.1719-.2485 1.8047-.4125 2.2266-.2156.5578-.4782.9609-.8953 1.3781-.4219.4219-.8203.6797-1.3782.8953-.4218.1641-1.0593.3609-2.2265.4125-1.2656.0562-1.6453.0703-4.8469.0703-3.20625 0-3.58594-.0141-4.84687-.0703-1.17188-.0516-1.80469-.2484-2.22657-.4125-.55781-.2156-.96093-.4781-1.37812-.8953-.42188-.4219-.67969-.8203-.89531-1.3781-.16407-.4219-.36094-1.0594-.4125-2.2266-.05625-1.2656-.07032-1.6453-.07032-4.8469 0-3.20622.01407-3.58591.07032-4.84685.05156-1.17188.24843-1.80469.4125-2.22656.21562-.55781.47812-.96094.89531-1.37813.42187-.42187.82031-.67968 1.37812-.89531.42188-.16406 1.05938-.36094 2.22657-.4125C8.41406 2.175 8.79375 2.16094 12 2.16094ZM12 0C8.74219 0 8.33438.0140625 7.05469.0703125 5.77969.126563 4.90313.332812 4.14375.628125 3.35156.9375 2.68125 1.34531 2.01563 2.01562 1.34531 2.68125.9375 3.35156.628125 4.13906.332812 4.90313.126563 5.775.0703125 7.05.0140625 8.33437 0 8.74219 0 12c0 3.2578.0140625 3.6656.0703125 4.9453.0562505 1.275.2624995 2.1516.5578125 2.911.309375.7921.717185 1.4625 1.387505 2.1281.66562.6656 1.33593 1.0781 2.12343 1.3828.76407.2953 1.63594.5015 2.91094.5578 1.27969.0562 1.6875.0703 4.9453.0703 3.2578 0 3.6656-.0141 4.9453-.0703 1.275-.0563 2.1516-.2625 2.911-.5578.7875-.3047 1.4578-.7172 2.1234-1.3828.6656-.6656 1.0781-1.336 1.3828-2.1235.2953-.764.5016-1.6359.5578-2.9109.0563-1.2797.0703-1.6875.0703-4.9453 0-3.25782-.014-3.66564-.0703-4.94532-.0562-1.275-.2625-2.15157-.5578-2.91094-.2953-.79688-.7031-1.46719-1.3734-2.13282C21.3188 1.35 20.6484.9375 19.8609.632812 19.0969.3375 18.225.13125 16.95.075 15.6656.0140625 15.2578 0 12 0Z" fill="url(#:r38:)"></path><path d="M12 5.83594c-3.40312 0-6.16406 2.76094-6.16406 6.16406 0 3.4031 2.76094 6.1641 6.16406 6.1641 3.4031 0 6.1641-2.761 6.1641-6.1641 0-3.40312-2.761-6.16406-6.1641-6.16406Zm0 10.16246c-2.20781 0-3.99844-1.7906-3.99844-3.9984 0-2.20781 1.79063-3.99844 3.99844-3.99844 2.2078 0 3.9984 1.79063 3.9984 3.99844 0 2.2078-1.7906 3.9984-3.9984 3.9984Z" fill="url(#:r38:)"></path><path d="M19.8469 5.59238c0 .79688-.6469 1.43907-1.4391 1.43907-.7969 0-1.439-.64688-1.439-1.43907 0-.79687.6468-1.43906 1.439-1.43906s1.4391.64688 1.4391 1.43906Z" fill="url(#:r38:)"></path><defs><linearGradient id=":r38:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div><div>Laconic: Offshore Hosting Made Easy</div></div></div></div><a id="nav-button" aria-label="Toggle mobile menu" href="#" class="nav_mobile-button w-inline-block"><div data-is-ix2-target="1" class="nav_burger" data-w-id="fbd3c3c8-569b-7ba4-52f1-12d65e5c9f29" data-animation-type="lottie" data-src="../images/laconic-20menu.json" data-loop="0" data-direction="1" data-autoplay="0" data-renderer="svg" data-duration="0" data-ix2-initial-state="0"></div></a><a href="https://github.com/cerc-io/stack-orchestrator" target="_blank" class="button nav w-button">GET STARTED</a></nav></header><main class="main"><section class="section_blog-post-hero"><div class="padding-global"><div class="container-large"><div class="blog-hero_component"><h1 class="heading-style-h2">How Laconic Network Uses IPLD</h1><div class="blog_byline"><div>8.30.2022</div><div>-</div><div class="blog_author"><div>BY — </div><div>Christoph Berger</div></div></div><div class="blog_categories hero"><div class="blog_category-chip w-condition-invisible"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div></div></div></div></section><section class="section_blog-post"><div class="padding-global"><div class="container-large"><div class="blog-post_image-container"><img src="../images/how-laconic-network-uses-ipld.png" loading="lazy" alt="" sizes="(max-width: 479px) 93vw, (max-width: 991px) 94vw, 68vw" srcset="../images/how-laconic-network-uses-ipld-p-500.png 500w, ../images/how-laconic-network-uses-ipld-p-800.png 800w, ../images/how-laconic-network-uses-ipld-p-1080.png 1080w, ../images/how-laconic-network-uses-ipld.png 1600w" class="blog-post_image"/></div></div><div class="container-medium"><div class="blog-post_component"><div class="blog-post_container"><div class="blog-post_rich-text w-richtext"><h2>Accessing blockchain data off-chain is no longer a matter of trust</h2><p>The mission of the Laconic Network is to ensure that decentralized off-chain caches can serve blockchain data without losing the ability to prove the integrity of that data across data transformations. This post shows how the Laconic Stack maintains the verifiability of Ethereum data for its decentralized caching and querying solution. </p><h2>Querying blockchain data is difficult and expensive</h2><p>DApp developers face a dilemma when it comes to working with blockchain data. Ethereum data is stored in various ways, including the state, storage, and transaction tries, as well as in event logs. The original concept for accessing Ethereum data was that DApps would run or have access to an Ethereum full node and query it directly. </p><p>However, DApp developers rarely want to run their own full node only to gain access to the data they need. Further, and more problematic, due to the way data is stored on Ethereum, there is often no direct way of querying for particular information. Because blockchains are optimized for writing new blocks and achieving consensus, they cannot be indexed like a classic database. As a result, to query for data, developers have to make multiple calls to the Ethereum API, replay transactions to read the events emitted, and store intermittent state in the application to join it with data from subsequent invocations. This process is difficult and expensive.</p><p>The alternative to running a full node is to use a middleware indexing and caching service. While this alternative simplifies data acquisition for developers, it introduces some new and significant problems. In addition to high costs, long setup times, reliability issues, and the dependence on Web2-style centralized services, there is one problem that is especially pernicious: the data served by these services must be <em>trusted</em>. It is currently impossible for existing centralized data providers to offer cryptographic proofs for every byte of data served.</p><h2>The Solution: Laconic Network and IPLD</h2><p>Many people are familiar with the Interplanetary File System (IPFS), but fewer people know about the Interplanetary Linked Data (IPLD) protocol. IPLD is the underlying technology of IPFS, and it is the superpower technology behind many of IPFS’s advantages. </p><p>IPLD can represent arbitrary data in self-describing structured objects, and it can link those objects into Merkle DAGs. As such, IPLD offers the following advantages:</p><ol role="list"><li>The data is content-addressable via a Content ID (CID), just as IPFS files are content-addressable.</li><li>The data is cryptographically provable, meaning you can verify that a set of data belongs in a larger data set even without needing to have either set on hand. You only need the cryptographic hashes.</li><li>The data undergoes natural deduplication, reducing storage and transport costs.</li><li>The data is tamper-proof. Any attempts to change the data that you have requested via content addressing can be foiled by validating the hashes.</li></ol><p>IPLD codecs map data from its original form to the IPLD data model. So if a codec exists for that data, the data has a formal representation in the IPLD data model. </p><h2>The Connection to Ethereum</h2><p>In the case of Ethereum data, the <a href="https://ipld.io/specs/codecs/dag-eth/">DAG-ETH codecs</a> can be used to map on-chain data to off-chain IPLD structures. This mapping to IPLD makes it possible to inspect, process, or reason about data in a uniform way. The codecs cover block headers, uncles, transactions, transaction receipts, and receipt logs, as well as all the different Merkle Patricia tries that are rooted in an Ethereum block. As a result, IPLD can accurately represent any Ethereum data.</p><p>Unlike the original data, the off-chain IPLD representation enables indexing for fast querying. The restrictions of the blockchain do not apply here. Indexes can be added that allow developers to query data in ways that are otherwise difficult to achieve with the native ETH JSON RPC API. </p><p>More importantly, the IPLD representation of blockchain data can be kept verifiable even after transforming the data into other models. Transformations are necessary to support complex DApps that aggregate and link data in app-specific ways or rely on a non-native representation of the data. The classic methods of slicing, dicing, and recombining the data would render it unverifiable. With Laconic Network data, thanks to our use of IPLD, the data remains as verifiable as it is on the blockchain.</p><h2>Merkleized data is provable data</h2><p>The IPLD representation of an Ethereum block includes the block header and the uncles, transactions, receipts, logs, receipt trie, transaction trie, state trie, and storage tries that Ethereum stores alongside the block header. A modified Merkle Patricia Trie (MMPT), which is relevant to Ethereum, has branch nodes, extension nodes, and leaf nodes. Non-leaf nodes store the content hashes of their child nodes. This hashing goes all the way up to the root node. Therefore, the hash value in the tree root represents all leaf data. If any part of the data in a Merkle tree is tampered with, the root hash would change and differ from the root hash stored in the block header. In other words, data like state, transactions, and more, is connected to the block header in a provable way. </p><h2>Storing all of the IPLD: Laconic Full Index Nodes</h2><p>Traditionally, Ethereum Full Nodes are used to power DApps that need to access and query all of the data of the blockchain. The disadvantages of relying on a normal Full Node are well known: </p><ol role="list"><li>Expensive to operate</li><li>Not optimized for data querying</li><li>Logs stored from events have to be replayed to access the data</li></ol><p>Laconic Full Index Nodes (LFIN) overcome these limitations by generating additional derivative data based on that which is stored in the Ethereum Full Node, adding new indexes, relational mappings, and materialized views, and even merkleizing some data that was previously not merkleized. The result is an amount of data that far exceeds what is normally stored. The role of the LFIN is to track and store the complete data, including derived indexes and Merkle trees of that data, in IPLD block format, for eventual consumption by DApps. </p><p>The data representation inside of the LFIN optimizes many classes of queries by removing the need to chain together data from multiple transactions. For example, listing all transactions for a particular wallet address could be achieved with a single query. Or gathering all of the node hashes needed to generate a cryptographic proof. </p><h2>Laconic Watchers - interoperable and provable blockchain data</h2><p>Because the volume of data in the Laconic Full Index Node is so vast, most DApps would not want to have to query that database directly. Instead, DApps work with a specialized caching layer that exists to transform LFIN data into the format needed by specific DApps. These are Laconic Watchers. </p><p>The data in the LFIN is still not ready for DApp developers at this point. Further transformation is needed to structure the data in the format required by your DApp. This is the role of the Laconic Watcher. Watchers will be the topic of a subsequent article, but within the scope of this article, you can understand them as being custom secondary or tertiary caches of data that directly fulfill the needs of specific applications. </p><p>Thanks to our use of IPLD, these transformations can occur without losing the cryptographic integrity of the data. Developers can build their Watchers to track, process, and cache the underlying blockchain data, and then query the watchers using GraphQL. The returned data includes the linked hash structure that can be followed all the way back to the underlying blockchain. In the Laconic Network, when any data is being transformed, the hash of the inputs to the transformation and the hash of the code that performs the transformation are preserved. Thus:</p><p><code>T(a+b) => c</code></p><p>The new model, c, will contain content-hash references to a, b, and the code performing T.</p><p>One intentional consequence of our adoption of structured IPLD models for data representation is that it greatly simplifies dealing with cross chain data. Our ability to transform data while maintaining linked hashing will be invaluable when we begin to index chains beyond Ethereum. Laconic Network is designed with blockchain interoperability in mind.</p><h2>The source of proof</h2><p>The Laconic Network improves the Web3/blockchain ecosystem greatly by combining the validation-preserving nature of IPLD with a new way of caching and transforming blockchain data in a decentralized manner. This ability frees DApp developers from relying on centralized, trust-based data providers and closes the cryptographic provability gap between the blockchain and DApps built to use blockchain data. </p><p>Stay up-to-date with Laconic news:</p><ul role="list"><li><a target="_blank" href="https://discord.com/invite/ukhbBemyxY">Join our Discord server</a></li><li><a target="_blank" href="https://t.me/laconicnetwork">Subscribe to our Telegram channel</a></li><li>Sign up for our mailing list below</li></ul></div></div></div></div></div></section><section class="section_share"><div class="padding-global"><div class="container-medium"><div class="share_component"><p class="share_header">Share This Article</p><div class="share_button-container"><div class="w-embed"><a class="share_button" target="_blank" href="https://twitter.com/intent/tweet?url=https://www.laconic.com/blog/how-laconic-network-uses-ipld">
|
||
|
||
|
||
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r2c:)"></path><defs><linearGradient id=":r2c:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
|
||
|
||
|
||
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://reddit.com/submit?url=https://www.laconic.com/how-laconic-network-uses-ipld">
|
||
|
||
|
||
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" clip-rule="evenodd" d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12Zm-5.7544-1.7544C19.214 10.2456 20 11.0316 20 12c0 .7158-.4351 1.3333-1.0105 1.614.0281.1684.0421.3369.0421.5193 0 2.6947-3.1298 4.8702-7.0035 4.8702-3.87371 0-7.00353-2.1755-7.00353-4.8702 0-.1824.01403-.3649.0421-.5333-.61754-.2807-1.03859-.8842-1.03859-1.6 0-.9684.78596-1.7544 1.75438-1.7544.46316 0 .89825.1965 1.20702.4912 1.20702-.88419 2.87719-1.43156 4.74382-1.4877l.8843-4.18246c.028-.08421.0701-.15438.1403-.19649.0702-.0421.1544-.05614.2386-.0421l2.9053.61754c.1965-.42105.6175-.70175 1.1087-.70175.6878 0 1.2492.5614 1.2492 1.24912s-.5614 1.24912-1.2492 1.24912c-.6736 0-1.221-.53333-1.2491-1.19298l-2.5965-.54737-.8 3.74737c1.8246.07018 3.4807.63158 4.6737 1.4877.3088-.3088.7298-.4912 1.207-.4912ZM9.24913 12c-.68772 0-1.24912.5614-1.24912 1.2491 0 .6877.5614 1.2491 1.24912 1.2491s1.24917-.5614 1.24917-1.2491c0-.6877-.56145-1.2491-1.24917-1.2491Zm2.76487 5.4596c.4772 0 2.1053-.0561 2.9614-.9123.1264-.1263.1264-.3228.0281-.4631-.1263-.1263-.3368-.1263-.4631 0-.5474.5333-1.6843.7298-2.5123.7298-.8281 0-1.979-.1965-2.5123-.7298-.12632-.1263-.33685-.1263-.46316 0-.12632.1263-.12632.3368 0 .4631.8421.8422 2.48416.9123 2.96136.9123Zm1.4878-4.2105c0 .6877.5614 1.2491 1.2491 1.2491.6877 0 1.2491-.5614 1.2491-1.2491C16 12.5614 15.4386 12 14.7509 12c-.6877 0-1.2491.5614-1.2491 1.2491Z" fill="url(#:r2d:)"></path><defs><linearGradient id=":r2d:" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
|
||
|
||
|
||
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://discord.com/invite/ukhbBemyxY">
|
||
|
||
<svg class="share_button-icon" viewBox="0 0 33 26" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="var(--theme--color-white)"></path></svg>
|
||
|
||
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://t.me/share/url?url=https://www.laconic.com/blog/how-laconic-network-uses-ipld">
|
||
|
||
<svg class="share_button-icon" fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path clip-rule="evenodd" d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r2e:)" fill-rule="evenodd"></path><defs><linearGradient id=":r2e:" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
|
||
|
||
</a></div><div class="w-embed"><a class="share_button" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=https://www.laconic.com/blog/how-laconic-network-uses-ipld">
|
||
|
||
<svg class="share_button-icon" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M24 12c0-6.62742-5.3726-12-12-12C5.37258 0 0 5.37258 0 12c0 5.9895 4.3882 10.954 10.125 11.8542v-8.3855H7.07812V12H10.125V9.35625c0-3.0075 1.7916-4.66875 4.5326-4.66875 1.3125 0 2.6862.23437 2.6862.23437V7.875h-1.5132c-1.4906 0-1.9556.92508-1.9556 1.875V12h3.3281l-.532 3.4687H13.875v8.3855C19.6118 22.954 24 17.9895 24 12Z" fill="url(#:r2f:)"></path><defs><linearGradient id=":r2f:" x1="12" y1="0" x2="12" y2="23.8542" gradientUnits="userSpaceOnUse"><stop stop-color="var(--theme--color-white)"></stop><stop offset="1" stop-color="var(--theme--color-white)"></stop></linearGradient></defs></svg>
|
||
|
||
|
||
</a></div></div><div class="share_button-icon"></div></div></div></div></section><section class="section_related-posts"><div class="padding-global"><div class="container-large"><div class="related-posts_component"><h2 class="hazy">Recent Articles</h2><div class="blog_collection-list-wrapper w-dyn-list"><div role="list" class="blog_grid w-dyn-items"><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">8.20.2024</div></div><div class="blog_card-image-container"><img src="../images/og.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/og-p-500.webp 500w, ../images/og-p-800.webp 800w, ../images/og-p-1080.webp 1080w, ../images/og.webp 1200w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">LORO Testnet Stage 1 is Live</h2><a href="/blog/stage1-live" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">8.12.2024</div></div><div class="blog_card-image-container"><img src="../images/deep-dive-testnet.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/deep-dive-testnet-p-500.webp 500w, ../images/deep-dive-testnet-p-800.webp 800w, ../images/deep-dive-testnet-p-1080.webp 1080w, ../images/deep-dive-testnet.webp 1440w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">How to Register for the Laconic Incentivized Testnet</h2><a href="/blog/testnet-update" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div><div role="listitem" class="blog_card w-dyn-item"><div class="blog_card-container"><div class="blog_card-header"><div class="blog_categories"><div class="blog_category-chip"><div>Developers</div></div><div class="blog_category-chip w-condition-invisible"><div>Insights</div></div><div class="blog_category-chip w-condition-invisible"><div>Product</div></div><div class="blog_category-chip w-condition-invisible"><div>News</div></div><div class="blog_category-chip w-condition-invisible"><div>Partners</div></div></div><div class="blog_publish-date">7.24.2024</div></div><div class="blog_card-image-container"><img src="../images/chain-minimalism.webp" loading="lazy" alt="" sizes="(max-width: 479px) 100vw, (max-width: 991px) 94vw, 67vw" srcset="../images/chain-minimalism-p-500.webp 500w, ../images/chain-minimalism-p-800.webp 800w, ../images/chain-minimalism.webp 966w" class="blog_card-image"/></div><div class="blog_card-content"><h2 class="blog_card-title">A Return to Chain Minimalism</h2><a href="/blog/chain-minimalism" class="blog_link w-inline-block"><div class="blog_link-text">Read Article</div><svg fill="none" viewBox="0 0 11 11" xmlns="http://www.w3.org/2000/svg" class="blog_link-icon"><path d="M1.455 10.557.427 9.53l7.648-7.662H2.167L2.181.443h8.347v8.36H9.091l.013-5.907-7.649 7.661Z" fill="var(--theme--color-white)"></path></svg></a></div></div></div></div></div></div></div></div></section></main><footer class="footer"><div class="padding-global"><div class="container-large"><div class="footer_container"><a aria-label="Go to Homepage" href="/" class="w-inline-block"><svg fill="none" viewBox="0 0 305 70" xmlns="http://www.w3.org/2000/svg" class="footer_logo"><path d="M0 68.656h29.794v-8.834H9.96V1.35H0v67.306ZM69.388 1.35H52.873L35.61 68.656H45.9l4.316-16.826h21.33l4.315 16.826H86.65L69.388 1.35ZM52.292 43.416l8.631-34.83h.332l8.3 34.83H52.291ZM118.076 27.427h11.619C129.695 8.245 123.636 0 109.528 0 94.672 0 88.282 10.432 88.282 34.915c0 24.567 6.39 35.084 21.246 35.084 14.108 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.802 0-9.71-5.3-9.627-26.67 0-21.286 1.908-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014ZM158.069 0c15.105.085 21.578 10.601 21.578 35s-6.473 34.915-21.578 35c-15.188.084-21.661-10.433-21.661-35s6.473-35.084 21.661-35Zm-10.042 35c0 21.286 1.992 26.586 10.042 26.586 7.967 0 9.959-5.3 9.959-26.586 0-21.37-1.992-26.67-9.959-26.586-8.05.084-10.042 5.384-10.042 26.586ZM198.74 68.572l-9.959.084V1.35h17.511l16.35 54.855h.166V1.35h9.959v67.306h-16.432L198.906 9.595h-.166v58.977ZM254.391 1.35h-9.959v67.306h9.959V1.35ZM293.298 27.427h11.619C304.917 8.245 298.859 0 284.75 0c-14.856 0-21.246 10.432-21.246 34.915 0 24.567 6.39 35.084 21.246 35.084 14.109 0 20.167-7.993 20.25-26.586h-11.619c-.083 14.555-1.826 18.173-8.631 18.173-7.801 0-9.71-5.3-9.627-26.67 0-21.286 1.909-26.587 9.627-26.503 6.805 0 8.548 3.786 8.548 19.014Z" fill="var(--theme--color-white)"></path></svg></a><nav class="footer_menu"><a href="/products" class="footer_link primary">Products</a><a href="/partners" class="footer_link primary">Partners</a><a href="/community" class="footer_link primary">Community</a><div class="footer_social-container"><div class="footer_header">Connect</div><div class="footer_social-links tablet"><a aria-label="Visit our Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r12:)"></path><defs><linearGradient id=":r12:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join our Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Visit our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r13:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r13:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div></div></nav></div><nav class="footer_subfooter"><p class="legal">Laconic: Offshore Hosting Made Easy</p><div class="footer_subfooter-links"><a href="/privacy-policy" class="footer_link">Privacy Policy</a><div class="theme-toggle_wrapper"><div id="toggle-label" class="footer_toggle-label">Dark Mode</div><a id="theme-toggle" aria-label="Toggle dark and light theme" href="#" class="footer_toggle w-inline-block"><div class="footer_toggle-circle"></div></a></div></div><div class="footer_social-links phone"><a aria-label="Follow us on Twitter" href="https://twitter.com/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M7.55016 21.3548c9.05434 0 14.00814-7.4471 14.00814-13.9033 0-.20936-.0047-.42337-.0141-.63273.9637-.69168 1.7953-1.54843 2.4558-2.52999-.8975.39631-1.8504.65515-2.8261.76765 1.0274-.61122 1.7966-1.57142 2.1652-2.7026-.9665.56851-2.0235.96954-3.1257 1.18591-.7426-.78315-1.7244-1.30169-2.7937-1.47544-1.0693-.17376-2.1665.00695-3.122.51417-.9554.50722-1.7159 1.31271-2.1639 2.29194-.4479.97922-.5584 2.07764-.3143 3.12543-1.95701-.09747-3.87156-.60206-5.61952-1.48104-1.74795-.87898-3.29029-2.11274-4.52701-3.62129-.62857 1.07562-.820913 2.34843-.53794 3.55975C1.418 7.66457 2.15506 8.7235 3.19641 9.41483c-.78178-.02463-1.54643-.23354-2.230785-.60947v.06048c-.0007 1.12879.392475 2.22296 1.112685 3.09656.72021.8736 1.72301 1.4727 2.83794 1.6955-.72419.1966-1.48427.2253-2.22141.0837.31461.9708.92673 1.8198 1.75093 2.4287.8242.6088 1.81935.9471 2.84657.9676-1.74392 1.3596-3.89817 2.0971-6.11578 2.0936C.783287 19.2309.390399 19.2069 0 19.1598c2.25286 1.4345 4.87353 2.1964 7.55016 2.195Z" fill="url(#:r24:)"></path><defs><linearGradient id=":r24:" x1="12" y1="2" x2="12" y2="21.3548" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a><a aria-label="Join us on Discord" href="https://discord.com/invite/ukhbBemyxY" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 33 26" class="footer_social-icon"><path d="M27.936 2.155A26.571 26.571 0 0 0 21.219.002a.1.1 0 0 0-.108.053c-.29.533-.611 1.229-.837 1.775a24.314 24.314 0 0 0-7.544 0 18.232 18.232 0 0 0-.85-1.775.105.105 0 0 0-.107-.053 26.497 26.497 0 0 0-6.717 2.153.097.097 0 0 0-.044.04C.733 8.8-.438 15.245.136 21.61c.003.03.02.06.043.08 2.823 2.142 5.557 3.443 8.24 4.305a.105.105 0 0 0 .116-.039c.635-.896 1.2-1.84 1.686-2.834a.11.11 0 0 0-.057-.15 17.773 17.773 0 0 1-2.574-1.269.111.111 0 0 1-.01-.181c.172-.134.345-.274.51-.414a.1.1 0 0 1 .107-.015c5.4 2.549 11.248 2.549 16.585 0a.099.099 0 0 1 .108.013c.165.141.338.282.512.416a.111.111 0 0 1-.01.181c-.821.497-1.676.916-2.575 1.267a.11.11 0 0 0-.055.152 22.854 22.854 0 0 0 1.684 2.833.103.103 0 0 0 .116.04c2.696-.862 5.43-2.163 8.253-4.305a.11.11 0 0 0 .043-.079c.688-7.358-1.153-13.75-4.88-19.415a.085.085 0 0 0-.042-.04Zm-16.909 15.58c-1.625 0-2.965-1.543-2.965-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.991 1.556 2.965 3.438 0 1.895-1.314 3.438-2.966 3.438Zm10.966 0c-1.626 0-2.966-1.543-2.966-3.438 0-1.895 1.314-3.438 2.966-3.438 1.665 0 2.992 1.556 2.966 3.438 0 1.895-1.301 3.438-2.966 3.438Z" fill="currentColor"></path></svg></a><a aria-label="Check out our Youtube Channel" href="https://www.youtube.com/@Laconic-Network" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" class="footer_social-icon"><path d="M 15 4 C 10.814 4 5.3808594 5.0488281 5.3808594 5.0488281 L 5.3671875 5.0644531 C 3.4606632 5.3693645 2 7.0076245 2 9 L 2 15 L 2 15.001953 L 2 21 L 2 21.001953 A 4 4 0 0 0 5.3769531 24.945312 L 5.3808594 24.951172 C 5.3808594 24.951172 10.814 26.001953 15 26.001953 C 19.186 26.001953 24.619141 24.951172 24.619141 24.951172 L 24.621094 24.949219 A 4 4 0 0 0 28 21.001953 L 28 21 L 28 15.001953 L 28 15 L 28 9 A 4 4 0 0 0 24.623047 5.0546875 L 24.619141 5.0488281 C 24.619141 5.0488281 19.186 4 15 4 z M 12 10.398438 L 20 15 L 12 19.601562 L 12 10.398438 z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"></path></svg></a><a aria-label="Chat with us on Telegram" href="https://t.me/laconicnetwork" target="_blank" class="social-link w-inline-block"><svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" class="footer_social-icon"><path d="M24 12c0 6.6274-5.3726 12-12 12-6.62742 0-12-5.3726-12-12C0 5.37258 5.37258 0 12 0c6.6274 0 12 5.37258 12 12ZM12.43 8.85893c-1.1672.48547-3.49986 1.49027-6.99811 3.01437-.56806.2259-.86563.4469-.89272.663-.04578.3652.41154.509 1.0343.7048.08471.0267.17248.0543.26247.0835.6127.1992 1.43689.4322 1.86535.4414.38865.0084.82244-.1518 1.30135-.4807 3.26856-2.2063 4.95576-3.32149 5.06166-3.34553.0747-.01696.1783-.03829.2485.02408.0701.06235.0632.18045.0558.21215-.0453.1931-1.8405 1.8621-2.7695 2.7258-.2896.2692-.495.4602-.537.5038-.0941.0977-.19.1902-.2821.279-.5692.5487-.99609.9602.0236 1.6322.49.3229.8822.5899 1.2733.8563.4273.291.8534.5812 1.4047.9426.1405.092.2746.1877.4053.2808.4972.3545.9438.6729 1.4957.6221.3206-.0295.6519-.331.8201-1.2302.3975-2.1253 1.1789-6.7299 1.3595-8.62743.0158-.16624-.0041-.379-.02-.4724-.016-.09339-.0494-.22646-.1708-.32497-.1438-.11666-.3658-.14126-.465-.13952-.4514.00795-1.1438.24874-4.4764 1.63485Z" fill="url(#:r25:)" clip-rule="evenodd" fill-rule="evenodd"></path><defs><linearGradient id=":r25:" x1="12" y1="2" x2="12" y2="24" gradientUnits="userSpaceOnUse"><stop stop-color="currentColor"></stop><stop stop-color="currentColor" stop-offset="1"></stop></linearGradient></defs></svg></a></div></nav></div></div></footer></div><script src="../js/jquery.js" type="text/javascript" ></script><script src="../js/webflow-script.js" type="text/javascript"></script><script>
|
||
|
||
|
||
|
||
const root = document.documentElement;
|
||
|
||
// Setup object to store all class and ID selectors
|
||
const setup = {
|
||
themeToggleButtons: document.querySelectorAll('#theme-toggle'),
|
||
lottiePaths: () => document.querySelectorAll('#nav-button svg path'),
|
||
toggleLabels: document.querySelectorAll('#toggle-label'),
|
||
themeColorVariable: '--theme--color-white'
|
||
};
|
||
|
||
|
||
// Update theme-dependant images
|
||
function updateImageSources() {
|
||
const images = document.querySelectorAll('img[data-src-dark]');
|
||
images.forEach(img => {
|
||
const currentTheme = root.getAttribute('data-theme');
|
||
const newSrc = currentTheme === 'dark' ? img.getAttribute('data-src-dark') : img.getAttribute('data-src-light');
|
||
img.setAttribute('src', newSrc);
|
||
});
|
||
}
|
||
|
||
// update theme dependant background images
|
||
function updateBackgroundImages() {
|
||
const elements = document.querySelectorAll('[data-bg-dark]');
|
||
elements.forEach(element => {
|
||
const currentTheme = root.getAttribute('data-theme');
|
||
const newBg = currentTheme === 'dark' ? element.getAttribute('data-bg-dark') : element.getAttribute('data-bg-light');
|
||
element.style.backgroundImage = `url(${newBg})`;
|
||
});
|
||
}
|
||
|
||
// Update lottie assets to match theme
|
||
function updateLottiePathColors() {
|
||
const paths = setup.lottiePaths();
|
||
if (paths.length > 0) {
|
||
paths.forEach(path => {
|
||
path.style.fill = `var(${setup.themeColorVariable})`;
|
||
});
|
||
}
|
||
}
|
||
|
||
function updateVideoVisibility() {
|
||
const darkVideo = document.querySelector('#background-video-dark');
|
||
const lightVideo = document.querySelector('#background-video-light');
|
||
|
||
if (darkVideo && lightVideo) {
|
||
const currentTheme = root.getAttribute('data-theme');
|
||
|
||
if (currentTheme === 'dark') {
|
||
darkVideo.style.display = 'block';
|
||
lightVideo.style.display = 'none';
|
||
} else {
|
||
darkVideo.style.display = 'none';
|
||
lightVideo.style.display = 'block';
|
||
}
|
||
} else {
|
||
console.log('No background video elements found on this page.');
|
||
}
|
||
}
|
||
|
||
// Theme toggle
|
||
function toggleTheme() {
|
||
const currentTheme = root.getAttribute('data-theme');
|
||
|
||
if (currentTheme === 'dark') {
|
||
root.setAttribute('data-theme', 'light');
|
||
localStorage.setItem('theme', 'light');
|
||
setup.toggleLabels.forEach(label => label.textContent = 'Light Mode');
|
||
} else {
|
||
root.setAttribute('data-theme', 'dark');
|
||
localStorage.setItem('theme', 'dark');
|
||
setup.toggleLabels.forEach(label => label.textContent = 'Dark Mode');
|
||
}
|
||
|
||
updateImageSources(); // Update images when the theme is toggled
|
||
updateLottiePathColors(); // Update Lottie colors when the theme is toggled
|
||
updateVideoVisibility() // Update background videos when theme is toggled
|
||
updateBackgroundImages(); // For background image swap
|
||
}
|
||
|
||
// Initialize the theme
|
||
function initializeTheme() {
|
||
const storedTheme = localStorage.getItem('theme');
|
||
|
||
// Set the initial theme
|
||
if (storedTheme) {
|
||
root.setAttribute('data-theme', storedTheme);
|
||
setup.toggleLabels.forEach(label => {
|
||
label.textContent = storedTheme === 'dark' ? 'Dark Mode' : 'Light Mode';
|
||
});
|
||
console.log(`Theme set to: ${storedTheme}`);
|
||
} else {
|
||
root.setAttribute('data-theme', 'dark');
|
||
setup.toggleLabels.forEach(label => label.textContent = 'Dark Mode');
|
||
console.log('Theme set to: dark');
|
||
}
|
||
|
||
updateImageSources();
|
||
updateLottiePathColors();
|
||
updateVideoVisibility()
|
||
updateBackgroundImages(); // For background image swap
|
||
}
|
||
|
||
// When page content is loaded
|
||
document.addEventListener('DOMContentLoaded', () => {
|
||
|
||
// Initialize the theme
|
||
initializeTheme();
|
||
|
||
// Add event listener to all theme toggle buttons
|
||
setup.themeToggleButtons.forEach(button => {
|
||
button.addEventListener('click', toggleTheme);
|
||
});
|
||
|
||
// Ensure Lottie path colors and image sources are updated on page load
|
||
window.addEventListener('load', () => {
|
||
updateLottiePathColors();
|
||
updateImageSources();
|
||
updateVideoVisibility()
|
||
});
|
||
|
||
});
|
||
|
||
|
||
|
||
</script></body></html> |