<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Holochain - Medium]]></title>
        <description><![CDATA[Holochain enables a distributed web with user autonomy built directly into its architecture and protocols. Data is about remembering our lived and shared experiences. Distributing the storage and processing of that data can change how we coordinate and interact. www.holochain.org - Medium]]></description>
        <link>https://medium.com/holochain?source=rss----f0e305d73014---4</link>
        <image>
            <url>https://cdn-images-1.medium.com/proxy/1*TGH72Nnw24QL3iV9IOm4VA.png</url>
            <title>Holochain - Medium</title>
            <link>https://medium.com/holochain?source=rss----f0e305d73014---4</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Fri, 12 Jun 2026 12:41:11 GMT</lastBuildDate>
        <atom:link href="https://medium.com/feed/holochain" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com" rel="hub"/>
        <item>
            <title><![CDATA[Blockchain: A Holochain Perspective]]></title>
            <link>https://medium.com/holochain/blockchain-a-holochain-perspective-107e89e8e2b0?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/107e89e8e2b0</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[decentralization]]></category>
            <category><![CDATA[blockchain-technology]]></category>
            <category><![CDATA[dapps]]></category>
            <category><![CDATA[holochain]]></category>
            <dc:creator><![CDATA[Josh Zemel]]></dc:creator>
            <pubDate>Thu, 19 Aug 2021 10:07:04 GMT</pubDate>
            <atom:updated>2021-08-19T10:07:03.851Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*uSnDu-M1uRIq7bntjPM4uw.jpeg" /></figure><h4>A Tale of Two Approaches to Decentralized Data Integrity</h4><p>Holochain is quite different from blockchain, but because they are designed to solve some of the same problems — and because people try to understand Holochain in terms of blockchain all the time — we figured it would be a good idea to frame at least one key aspect of Holochain in comparison to blockchain.</p><p>A complete primer on Holochain and blockchain would need a good deal of detail about what blockchain really is and how it works, and we’d probably be addressing a lot of common technical misconceptions about blockchain in the process. This is not that article.</p><p>Instead, this piece focuses on the <em>approach </em>each technology takes to solving an important challenge, which is really <strong>the fundamental challenge of decentralized computing: how to ensure that data is accurate and tamper-proof in a way that is efficient enough to scale.</strong></p><p>We’ll look at blockchain’s approach, then Holochain’s.</p><h3>Blockchain and Global Consensus</h3><p>Blockchain is a cryptographically secured, decentralized ledger of data. You can think of a blockchain as a record of events: the things people said, who agreed to what, who sent money to whom, and so on. Up until blockchain was invented, these sorts of records were pretty much always stored in centralized databases, such as those held by government entities or private companies. Blockchain was created as a way for people to interact and transact without needing to trust such intermediaries.</p><p>What makes blockchain secure and trustable — in other words, what ensures its <em>data integrity</em> — is that the data is not just cryptographically protected but also replicated to many different computers (called nodes) controlled by different people or organizations. Only when a piece of data is adopted by the multitude of nodes is it considered factual, at which point it’s committed to the record. For someone to alter the record, they would have to not only break cryptographic barriers but also change most of the copies that are floating out there — a pretty much impossible task.</p><p>The way that nodes reach ‘consensus’ on what data to commit to the record varies from blockchain to blockchain, but it typically involves some type of competition among the nodes to write the next chunk of entries, or ‘block’, to the chain. Ultimately the selection of the winning node is random, so it’s not exactly consensus in the way that people mean the term in the real world. But the important takeaway is that, one way or another, <strong>the blockchain nodes come to terms on a <em>global state </em>of data, where all nodes hold a replica of <em>all the same data</em>.</strong></p><p>And so here we come to the scalability problem: it requires tremendous computing work for all the nodes to write and hold the same data. This makes blockchains notoriously slow processors: the Bitcoin network processes just a few transactions per second, while the Ethereum network currently processes dozens. Users are accustomed to waiting minutes, sometimes up to an hour, for a single transaction to be confirmed.</p><p>The problem gets worse as you try to make blockchain do more things, which has been its aspiration, more or less, since Ethereum positioned itself as a decentralized world computer when it launched in 2014. That’s the point at which blockchains began to be able to store not just transaction records but all kinds of files and even executable application code that performs functions when accessed, resulting in new data that also gets written to the blockchain. It’s been an attractive idea to imagine that much of what we do on the web today could be hosted on blockchain networks as decentralized applications (dApps). In reality, though, apps like social networks, communication platforms, travel-booking systems, ride-sharing systems, calendar systems, and so on need much faster throughput, by many orders of magnitude, than blockchain can provide. Can you imagine waiting several minutes (and paying a gas fee!) to get a message through on a chat platform? Or for an edit to show up on a collaborative editing tool like Google Docs? Can you imagine how much computation and storage would be required to accommodate on a blockchain all of the photos and videos on social media, with all nodes needing to write all of that data and keep it forever? It doesn’t work. Facebook receives <a href="https://www.brandwatch.com/blog/facebook-statistics/">over 4 million likes <em>every minute</em></a> and currently stores <a href="https://www.brandwatch.com/blog/facebook-statistics/">over <em>250 billion</em> photos</a>.</p><p>Efficiency is such a challenge in blockchain that there are entire companies, including some of the most talked-about crypto projects today, dedicated to figuring out how to make blockchain scale better. Some of them focus on ‘layer-1’ solutions, which attempt to increase the throughput of blockchain protocols themselves, while others are ‘layer-2’, which perform computations or store data off-chain and then periodically merge records into the blockchain. Most of these solutions, though, seem to be setting their sights on low-throughput applications such as financial transacting as opposed to live collaboration apps, social networks, media platforms, and so on. And the few that do seem capable of handling a broader set of applications make compromises on decentralization, concentrating hosting and consensus mechanisms among centrally authorized nodes.</p><p>Still, the accomplishment of blockchain is not to be taken lightly. It’s more resilient to corruption than any ledgering or value-storage system than has ever existed before, and it is changing global finance as a result, with lots of room for growth still. But what’s probably even more important is the awareness it has sparked of what’s possible. Its aspirations have infected broad communities of people with a sense that we <em>could</em> communicate and transact without centralized intermediaries. Blockchain’s scalability challenges may ultimately limit its utility, but it has already revolutionized how humans think about interacting.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*DZQ6jrkSABy3OxWd.jpg" /></figure><h3>Holochain and Embodied Local States</h3><p>The architects of Holochain began with a basic question: what if everyone could actually just hold their <em>own</em> data and share it with the network as needed? If everyone could just host themselves rather than relying on mining nodes to do it? We could avoid all this massive replication, which would obviously be much more efficient. We would just need to do it in a way that still ensures data integrity. We would have to be completely confident that, as everyone represents their own data to the network, there is no way for people to <em>mis</em> represent their data.</p><p>That is fundamentally what Holochain does. <strong>Holochain is a framework for ensuring data integrity within a decentralized application without relying on anyone other than the users themselves.</strong></p><h3>A Natural Solution</h3><p>At this point in the conversation, people familiar with blockchain are often skeptical. What’s to prevent people from lying about their state? From, say, spending the same money in two different places? (Holochain supports applications far more diverse than just currencies, but it’s often useful to use currencies as an illustration.)</p><p>We’ll get to some of the mechanics that make this possible in a moment. First, let’s look at the principles <em>behind</em> the mechanics, by way of analogy to nature… starting with some of its smallest objects.</p><p>Consider the covalent bonding of a chlorine atom and a hydrogen atom to create a molecule of hydrogen chloride. This requires the hydrogen atom to have a free electron available, i.e. not shared with any other atom. How does the chlorine atom ‘know’ whether the hydrogen atom has an electron available? It’s simply apparent. The hydrogen atom <em>embodies</em> whether a free electron exists in its state. It’s not able to misrepresent whether there’s a free electron, and it’s not able to ‘double-spend’ its electron, because the availability of an electron is evident to other relevant atoms upon inspection. There is <strong>global visibility, on demand, of local state.</strong></p><p>It would be ridiculous to believe that, in order to know whether an atom has a free electron, there should be a global, synchronized ledger of the whereabouts of all electrons in the universe. Or — to use a natural example with somewhat larger objects — that the status of the trillions of cells in our bodies should be registered on a global body tracking system. The cells already embody the changes: the levels of oxygen in the blood cells, for example, determine whether they offer oxygen to organ tissue cells in exchange for carbon dioxide. Then the reverse happens once the blood cells reach the lungs, where they exchange carbon dioxide for fresh oxygen. These interactions are determined on a cell-to-cell basis, without reference to any body-wide ledger of blood cell oxygen levels.</p><p>Holochain’s premise is that it’s equally unnecessary for all nodes in a decentralized application to hold a record of everyone’s state, as happens in blockchain, or for nodes to reach consensus before a user commits a state change to their own record. <strong>The local embodiment of state can act as its own authority, as long as the structure of data is tamper-proof.</strong> Also, only information necessary for larger-scale coordination needs to be widely shared, with all shared data strongly tied to where it came from. In this way, Holochain is an <strong><em>agent-centric system</em> for decentralized computing: the users (agents) themselves are the definitive source of information in the system.</strong></p><p>Okay, with those principles established, let’s look briefly at some of the architecture that makes Holochain’s data structure tamper-proof and scalable. After a cartoon break, that is.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1000/0*j7yoSYEdhurxfb2P" /></figure><h3>Holochain’s Core Components</h3><p><strong><em>Source Chain.</em></strong> <strong>Each user hosts their own data on a source chain</strong>, which is a cryptographically signed<strong> record of everything you’ve ever done or said within Holochain applications</strong>, stored locally on your machine. Source chains, like blockchains, are <em>hash chains</em>, which associate a cryptographic fingerprint (or ‘hash’) with every record (or ‘entry’). Hashes are unique to the particular data they represent: changing just one comma to a period in a thousand-page book would result in a completely different hash.</p><p><strong><em>DHT. </em>Data that needs to be shared with the network is published to a shared environment called a <em>distributed hash table</em>, or DHT</strong>. Your tweets and comments in a Twitter-like app, your ride requests in an Uber-like app, your edits in a collaborative document editor… all of these are on the DHT. (Data that doesn’t need to be shared can remain private to your source chain.) <strong>Each user running a Holochain app stores a tiny slice of the app’s DHT, in addition to hosting their own data.</strong></p><p><strong><em>DNA. </em>Each application’s rules for sharing data are written into the application code itself, known as DNA.</strong> The DNA is what says that this is an application for tweeting (which involves sharing data with a certain structure) versus calling rides or co-editing documents (which involve sharing different data with different structures). It also defines who can join the app’s network: can anyone join, do you need an invitation code or to pay, or is there some other criteria?A copy of the DNA is hosted by every application user, which means that <strong>any user is able to validate whether data being shared to their slice of the DHT conforms to the application’s rules.</strong></p><h3>But What Makes It Tamper-Proof?</h3><p>Okay, cool structure maybe, but why can’t someone simply alter their source chain and misrepresent their data to others?</p><p>You can think of a source chain like a diary: each page contains a header, which identifies <em>the fact </em>that something happened and <em>when</em> it happened, and an entry, which contains <em>the content</em> of what happened (such as “I sent 100 units of currency to so-and-so”). Some of these entries might have been published to the DHT and others might not have, but <strong>in all cases the headers, which contain the hashes of the entries, <em>are</em> shared to the DHT</strong>. In other words, I may or may not have published the <em>contents</em> of a given diary page, but everyone is able to see that I wrote <em>something</em> on the page, and they are able to see the unique fingerprint that corresponds the contents of the page (which would completely change if I were to ever modify the contents even slightly).</p><p>Let’s say you and I are doing some transaction such that I need to send you 250 units. The app’s rules (encoded in the DNA) will say that in order for this transaction to go through, you need to verify my account balance, which means that I need to show you enough information from my diary in order for you to do so. (Remember, there is <em>global visibility of local state</em>, to whatever degree is necessary for a given action to be validated.) Your computer can very quickly add up all the pluses and minuses on the pages in my transaction diary, my source chain. You know that I’m not hiding any pages because you can check the DHT and see exactly how many pages have writing on them. And there’s no way I could have altered a previous page without making it obvious I’ve done so, because every action I take is a new timestamped event with a new header and new unique hash that also gets shared to the DHT. Plus a system of header monitoring by ‘neighbors’ ensures that I’m unable to fork or roll back my source chain without getting flagged. If anything doesn’t add up, or if it seems like something has been obscured, the transaction simply fails the validation rules and does not take place.</p><h3>But What Makes It Scalable?</h3><p>Most of blockchain’s challenges with scalability are really challenges of managing global consensus. Since Holochain maintains data integrity without the need for consensus, it doesn’t run into the same limitations.</p><p><strong><em>There is no need for universal agreement.</em></strong> Keeping with our currency example for a moment: how many computers need to confirm our transaction in order for it to be executed? If this were blockchain, <em>all nodes</em> would need to come to terms with one another and keep a record of our transaction forever. In Holochain, the transaction is complete when <em>just</em> <em>two </em>computers have written it: yours and mine. Then, afterward, we publish the data to the DHT, and randomized groups of nodes store it so that others can confirm for themselves, later as the need arises, that we’re representing our states accurately. Data validation is party-to-party, just like for all the cells in our body, just like for all the atoms in the universe. <strong>This feature alone eliminates all of the computing required to reach global consensus.</strong></p><p><strong><em>There is no need for universal state. </em></strong>It’s true that many types of data <em>do </em>need to be published to the network — tweets and comments, ride requests, document edits, and so on, to keep with our earlier examples. It’s also true that an app sometimes needs system-wide tracking to monitor aspects of overall activity, just as the body has ways of monitoring and responding to changes in blood oxygen levels overall; this is another reason that the DHT often needs to store some amount of shared data. Unlike on a blockchain, though, <strong>each piece of data on the DHT is replicated only enough times to make sure the needed data is always available</strong>, including when the author might be offline. We’re talking about maybe dozens of replications in Holochain rather than potentially thousands or more in blockchain. And this limited replication is strategically distributed across <em>all the users</em> participating in the app, which means that <strong>each user performs just a little bit of extra work to hold a very small portion of the DHT.</strong></p><p><strong><em>Each DHT contains data for only one application. </em></strong>A blockchain contains all the data from <em>all </em>the applications running on that chain: every Ethereum node, for example, contains all the historical data for all the dApps running on Ethereum. <strong>In Holochain, each app has its <em>own</em> shared storage space in the form of its DHT. </strong>As Holochain architect Arthur Brock <a href="https://artbrock.medium.com/limits-to-blockchain-scalability-vs-holochain-19685dcb89f9">put it recently</a>, “If I just want to run a Twitter-like app, why should I also have to run your crypto exchange, gambling app or collectible cartoon animals? On Holochain, users only run the apps they actually <em>use</em>.”</p><p><strong><em>Each new user to an application adds storage and computing capacity.</em></strong>In blockchain applications, where miners and stakers write and store data, the network capacity is constant no matter how many nodes are added, so increased user activity increases the strain on computing resources. <strong>Holochain applications are entirely hosted by the users themselves, so as the demand for the app grows, so does the computing power to run it.</strong></p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*PAjPUkGbBJrSTQvI.jpg" /></figure><h3>A Truly Peer-to-Peer Network</h3><p>Let’s use one more example, a social networking application similar to Facebook or Instagram, to summarize the different approaches to data integrity taken by Holochain and blockchain. Let’s also add in the approach that today’s centralized social networks take, as a point of additional comparison. In this social network, you do all the things you’re accustomed to: posting text and images and videos, commenting on other people’s posts, and chatting privately with friends.</p><ul><li>In the <em>centralized scenarios</em> common today, all of the data — including your photos and comments and messages — are held by the company who owns the platform. The social network is supposedly secure and scalable by virtue of its being centralized: the company takes responsibility for maintaining the network, and they are paid to do so in one or more ways. As we have seen, though, our data is often not as secure as these companies might like us to believe: data breaches are extremely common (since data stored in one centralized place makes a honeypot for hackers), plus our data is routinely sold to advertisers or leaked to other third parties (the <a href="https://en.wikipedia.org/wiki/Facebook%E2%80%93Cambridge_Analytica_data_scandal">Cambridge Analytica scandal</a> was but one extreme example).</li><li>A <em>blockchain version</em> of a social network would theoretically be hosted by the miners or stakers running the blockchain nodes. Integrity would be ensured by virtue of your data being written to the blockchain only after a consensus of nodes determines the data to be legitimate, then being replicated across all nodes and stored by them forever. But the data load would be extremely high in this scenario, creating a major scalability problem. Many blockchains and blockchain apps try to solve this problem by reducing the number of nodes that need to reach consensus, or by doing much of the computing or hosting work off-chain on centrally authorized servers. These approaches all compromise on decentralization and point us back, in one way or another, toward scenario #1.</li><li>(In point of fact, even a truly on-chain social network would be only nominally decentralized, since the miners and stakers, who need to be paid to do their job just like a centralized company does, effectively become a new kind of intermediary. But this is the subject of <a href="https://medium.com/holochain/unenclosable-carriers-and-the-future-of-communication-4ac6045ac894">another article</a>.)</li><li>In a Holochain version, the entire network — all of the data and even the application code — is hosted by the users themselves. It’s truly <em>peer-to-peer</em>. Data integrity is ensured through global visibility of local state, established on an as-needed basis. You share your photos, comments, and messages to the network through a shared table called a distributed hash table (DHT), but you remain the primary authority on everything you’ve published. The network is scalable by the fact that no global consensus is necessary, by the fact that the DHT involves only as much data and replication as necessary, and by the fact that every user shares a small piece of the load. The more users join the network, the more capacity it has for scale. And there are no intermediaries at all — no one who needs to be paid or trusted to write and store your data on your behalf.</li></ul><p>If a peer-to-peer approach is that much better, why hasn’t everyone been doing it this way all along? One factor is probably the technical complexity involved, but another is probably that it’s difficult for people to imagine that everyone could host their own data and not be able to misrepresent themselves. Even though Holochain has been around in some form for several years, its approach to data integrity is enough of a departure from blockchain’s that developers and users are only just beginning to understand its potential, similar to how it took several years for Ethereum’s capabilities to be widely understood.</p><p>That does seem to be changing, however, especially since Holochain’s <a href="https://blog.holochain.org/?%20https://blog.holochain.org/announcing-and-unpacking-the-new-holochain/">refactored state model went live</a> and is proving to be many times more performant than previous versions — and also since so many new applications are preparing to launch on Holochain. And we can expect greater and greater awareness of Holochain as more applications go live in the coming months.</p><p>At a time when blockchain still has so much potential for growth, it may seem odd to be already talking about a post-blockchain application space. But given the scalability challenges blockchain faces and Holochain’s readiness to leapfrog these issues, it might be time to begin thinking outside the blocks.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*reOUMQfKVX-VDgFb.png" /></figure><p>One way to stay tuned about Holochain and Holo is to <a href="https://holo.host/newsletter-signup">sign up for the occasional newsletter</a>.</p><p><em>Originally published at </em><a href="https://blog.holochain.org/blockchain-a-holochain-perspective/"><em>https://blog.holochain.org</em></a><em> on July 22, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=107e89e8e2b0" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/blockchain-a-holochain-perspective-107e89e8e2b0">Blockchain: A Holochain Perspective</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Cardano: A Holochain Perspective]]></title>
            <link>https://medium.com/holochain/cardano-a-holochain-perspective-31de9263d1c?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/31de9263d1c</guid>
            <category><![CDATA[dapps]]></category>
            <category><![CDATA[cryptocurrency]]></category>
            <category><![CDATA[cryptocurrency-investment]]></category>
            <category><![CDATA[cardano]]></category>
            <category><![CDATA[crypto]]></category>
            <dc:creator><![CDATA[Josh Zemel]]></dc:creator>
            <pubDate>Mon, 31 May 2021 14:34:23 GMT</pubDate>
            <atom:updated>2021-05-31T14:34:22.900Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*amyogcYJy3nd4kjnFozbwQ.png" /></figure><p>This has been a good year so far for Cardano. It successfully <a href="https://www.coindesk.com/cardano-hard-fork-multi-asset-blockchain">forked to become a multi-asset blockchain</a>, enabling users to create tokens that run on Cardano natively, similar to how tokens operate on Ethereum. (Full smart-contract functionality remains <a href="https://roadmap.cardano.org/en/goguen/">on their roadmap</a>.) Its token, ADA, <a href="https://www.coindesk.com/cardano-ada-coinbase-listing">became tradeable on Coinbase</a> in mid-March. And investors lined up: the price of ADA rose 560% over Q1, the most among the <a href="https://www.coindesk.com/coindesk20">CoinDesk 20</a>, a core group of cryptocurrencies tracked by the news site. Then in April, Cardano announced a <a href="https://www.coindesk.com/from-paper-to-cardano-blockchain-iohk-in-ethiopia">major blockchain-identity initiative in Africa</a>, beginning with a partnership with the Ethiopian government to improve the quality of education.</p><p>Cardano <a href="https://iohk.io/projects/cardano/">makes some promising claims</a> about its platform that seem mainly aimed at differentiating from Ethereum, still the giant in the smart contract space with a market capitalization roughly six times as large as Cardano’s as of this writing. Among its core features:</p><ul><li>Protocols for scalability and security are supposedly more scientific, based on “peer-reviewed academic research”.</li><li>A unique algorithm, called Ouroboros, billed as “the most environmentally sustainable blockchain protocol”. Ourobouros’s consensus system empowers various types of stakeholders, including “input endorsers’’ and “slot leaders”, to mine coins and verify transactions.</li><li>A hierarchical structure that includes a settlement layer for accounting and a control layer for executing smart contracts, supposedly making Cardano ideal as both a medium of exchange and a decentralized world computer.</li></ul><p>Whether Cardano is actually better than other blockchain protocols isn’t something we’ll try to settle here. What we can say is that Cardano <em>is</em> seeking to be a better blockchain protocol, which is fundamentally different than what Holochain is doing. Cardano and Holochain may ultimately be solving some of the same problems, but they face very different challenges along the way.</p><p>For example, one of blockchain’s biggest challenges is efficiency (or scalability). The computing costs of recording everything that happens on every node of a blockchain are huge, as is the storage load of keeping all of that data forever, so it’s hard to imagine blockchain being suitable for applications involving any kind of big media files. Another issue is latency: blockchains often take several minutes or more to record even simple events, so they’re not very suitable for collaborative applications that rely on fast update times. Users have recently reported transaction wait times on Cardano <a href="https://www.reddit.com/r/cardano/comments/lkbkq0/how_long_does_ada_take_on_average_to_reach_your/">ranging from 1 to 18 hours</a>.</p><p>For these reasons, blockchain projects seem to be primarily setting their sights on financial services applications, which tend to hold relatively little data and don’t require real-time processing. Cardano is no exception, making “interoperability with legacy financial systems” <a href="https://why.cardano.org/en/interoperability/the-grand-myopia/">one of its core objectives</a>.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*0D7hIeada4G8mj6Q.jpg" /></figure><p>Holochain is not limited in the same ways and, as a result, is capable of enabling virtually all the activities you’re accustomed to doing on the internet now. Holochain is so flexible and scalable because:</p><p>Cost: <strong>Holochain is completely free to use and run.</strong> Because <em>users </em>host themselves and each run a local copy of the application to perform a small amount of the shared workload of validation and storage, there is no need to pay any intermediary miners or stakers. <strong>No gas fees</strong> also means no built-in token is required to run Holochain apps, eliminating a major usability hurdle. (The tokens people commonly associate with Holochain, Holo Token [HOT] and HoloFuel, actually power the Holo Hosting Network, a peer-to-peer hosting marketplace which enables anyone to participate in a Holochain application through a web browser without having to purchase any cryptocurrency or have a crypto wallet.)</p><p>Storage: <strong>Holochain is capable of handling large-media applications.</strong> Shared data is replicated only enough times to provide a healthy amount of redundancy — perhaps 25 or 50 times, not on every single node as in blockchain — so it is completely feasible to store and serve large documents, images, and videos. <strong>Even live video streaming is possible</strong> through the shared data environment of a Holochain app.</p><p>Speed: <strong>Holochain has a number of features that combine to make for near-zero latency:</strong></p><ul><li><strong>You write data to your local chain instantly. </strong>Once your data is recorded on your own source chain and then published to the network, the other computers update to your change in their own time — seconds for most computers, perhaps minutes for some — but you typically don’t have to wait for that to happen to continue moving forward. For example, if you’re posting in a social media application, you see your own post immediately, and you can add a comment to it right away.</li><li>In addition, <strong>you can send ‘signals’, </strong>which are<strong> real-time updates transmitted to the specific parties you’re interacting with</strong>, ahead of validation by the network. In a chat application, for example, the person you’re chatting to gets a signal so that their screen updates right away with your message, as fast as in any centralized chat application.</li><li>When you <em>are</em> interacting in a way that needs to be validated before you can interact again — such as if you’re transacting with currency — <strong>your next transaction only depends on your history being validated by the user you’re transacting with, not by the whole network</strong>. (Because all users host a copy of the application, including the app’s validation rules, they don’t need to consult anyone else.) So if there are computers on the network that are slower to update or are offline, that doesn’t slow you down. Incidentally, this feature also makes for <strong>infinite transactions per second</strong>, increasing with the number of users on the network: if there are a billion people using a currency app, there could be half a billion transactions <strong>taking place <em>at the same time</em></strong> — one transaction for every pair of people who are transacting.</li></ul><p>For all of these reasons, Holochain is suitable not just for financial services applications but for collaborative applications like:</p><ul><li>Chat applications like Slack or WhatsApp. (<a href="https://app-registration.holotest.net/elemental">Elemental Chat</a> is now live.)</li><li>Project-management systems like Trello and Asana. (<a href="https://www.youtube.com/watch?v=FBCsQHRLsGA">Acorn</a> is one example in development.)</li><li>Social media applications similar to Twitter, Facebook, and so on. (<a href="https://junto.foundation/">Junto</a> is one example.)</li><li>Wikis and other knowledge bases. (<a href="https://github.com/eyss/h-wiki-front">H-Wiki</a> and <a href="https://github.com/holochain/fractal-wiki">Fractal Wiki</a> are both in development.)</li><li>Calendaring and scheduling applications. (<a href="https://github.com/holochain-open-dev/calendar-events">CalendarEvents</a> is one under development.)</li><li>Real-time collaboration tools like Google Docs and HackMD (We created <a href="https://blog.holochain.org/decentralized-next-level-collaboration-apps-with-syn/">Syn</a> as a simple but powerful protocol for these types of apps.)</li><li>Marketplaces and e-commerce networks for any imaginable good or service, from vacation rentals like Airbnb to ride-sharing networks like Uber to general-purpose marketplaces like eBay or Amazon. One exciting marketplace in development is <a href="https://redgrid.io/">RedGrid</a>, a peer-to-peer, clean-energy power network.</li><li>Media-sharing platforms like YouTube and Spotify.</li><li>Innovative <a href="https://medium.com/@joshmzemel/the-holocene-explosion-game-changing-possibilities-in-a-world-of-unenclosable-carriers-a432e7a476cd">social organisms</a> like collaborative land stewardship, <a href="https://github.com/holo-rea/holo-rea">supply-chain tracking</a>, and novel currency systems.</li></ul><p>So what advantages does Cardano have relative to Holochain? The biggest one might be awareness — both of the project itself and of the underlying technology. Cardano has gotten a lot more press than Holochain to date. And Cardano aims to improve on technologies that are already widely understood: distributed ledgers, block production, and consensus-based adoption of global state.</p><p>Holochain, by contrast, needs to overcome deep-seated beliefs in order to get developers and users to understand its capabilities. People are so used to the idea that global consensus and universal data replication are the only way to make data secure and immutable that they tend to have trouble believing that it’s possible to guarantee data integrity in a more efficient way. Holochain is a technology at least as disruptive as Ethereum, and remember how many years it took for developers to basically understand Ethereum smart contracts and start building with them? Holochain’s path to awareness is probably more like Ethereum’s in 2014–2017 than Cardano’s today. Then again, more people do seem to be taking notice: the price of Holo Token (HOT) rose even more than ADA over Q1 2020.</p><p><strong>The bottom line:</strong> Cardano may be positioned to meet a market demand for a better blockchain and give Ethereum a real run for its money. But Holochain may be poised to leapfrog beyond the lot of them, since it is capable of addressing a set of use cases that blockchain protocols simply cannot, with even higher data integrity and the kind of scalability blockchain can only dream of.</p><p><em>Originally published at </em><a href="https://blog.holochain.org/cardano-a-holochain-perspective/"><em>https://blog.holochain.org</em></a><em> on May 26, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=31de9263d1c" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/cardano-a-holochain-perspective-31de9263d1c">Cardano: A Holochain Perspective</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[It’s Closer Than It Appears]]></title>
            <link>https://medium.com/holochain/its-closer-than-it-appears-5d11826e6248?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/5d11826e6248</guid>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[dev-pulse]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[dev]]></category>
            <category><![CDATA[distributed-apps]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Mon, 17 May 2021 21:02:40 GMT</pubDate>
            <atom:updated>2021-05-17T21:04:43.290Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*Azn6h4bWi0XxjFW6.png" /></figure><h4>Holochain Dev Pulse 96</h4><p>You know those words you see on a car’s side mirror that say ‘objects in the mirror are closer than they appear’? In spite of that warning, it’s always a bit surprising when a car comes zooming past, out of the blue, when you thought it was way back in the distance.</p><p>I had that sort of experience yesterday morning. During my weekly check-in with Alastair from the Holo hosting dev team, he was practically bouncing in his seat. The reason for his excitement, in his words, was that “Holo is ready”. Alastair normally brings a critical, analytical mind to his work. (He ought to; he’s an engineer.) So when I saw him get excited, I knew there was a good reason for it.</p><p>Before <em>you</em> get <em>too</em> excited, though, Holo isn’t going to be in beta tomorrow. He simply meant that it’s finally time to start <strong>testing the entire hosting and routing infrastructure</strong>.</p><p>There have been some big milestones in the past half year. But <a href="https://holo.host/roadmap/">the next milestone, hosted Elemental Chat</a>, is the one that brings all the pieces together. It depends on:</p><ul><li>The <a href="https://github.com/Holo-Host/envoy">Envoy</a> service and <a href="https://github.com/Holo-Host/chaperone">Chaperone</a> browser library (I’ll get to them in a bit),</li><li>Network plumbing to help hosts reliably punch through home firewalls, including a proxy server,</li><li>A registration flow to get hosts onto the network,</li><li>The resolver service, a ‘matchmaker’ that connects web users to hosts,</li><li>Centralised and decentralised routing infrastructure to securely deliver web users’ requests to their chosen hosts,</li><li>An <a href="https://github.com/Holo-Host/holo-nixpkgs">operating system</a> that brings Holochain and the Envoy together on HoloPorts.</li></ul><p>Alastair told me that <strong>all these foundations are solid now</strong>. The routing infrastructure has been in place for a long time, Holochain’s big bugs (including <a href="https://blog.holochain.org/dev-pulse-94-when-signup-goes-wrong/#keeping-bad-actors-out-of-the-network">lockups when a host fails</a> to create an app instance for a web user) have been <a href="https://github.com/holochain/holochain/pull/744">eradicated</a>, the proxy server and gossip protocol are getting some <a href="https://github.com/holochain/holochain/pull/752">performance boosts</a>, and the weird edge cases involving a user <a href="https://blog.holochain.org/dev-pulse-94-when-signup-goes-wrong/#preserving-your-agency">closing their browser too soon</a> have been addressed.</p><p>If you’d gotten used to the rapid HoloPort updates over the turn of the new year, like I had, you were probably concerned by the slowdown in the following months. Alastair explained the reason for that too: during our previous release cycles, we involved testers as early as possible. This gave the dev teams a lot of insight into what was and wasn’t working, but it also created a lot of extra work. <strong>Our pre-release testers have been absolutely wonderful</strong> — they’ve dedicated big chunks of their free time to helping us chase down bugs. But it’s been a lot of work for them, and the communication and coordination have demanded a lot from our small team as well.</p><p>So for this release (and the previous minor release), the Holo and Holochain dev teams have put everything through much more rigorous testing <strong>before it even reaches internal QA</strong>. Once it passes, we expect to have a lot fewer pre-release cycles before it goes out to all HoloPorts — perhaps none at all. And then the fun begins, as all the HoloPort owners invite the web to try out this peer-to-peer chat app for the first time!</p><blockquote><em>We also intend to hire a QA and software delivery manager to streamline this whole process in the future. If you have experience juggling QA, community testers, and deployments, </em><a href="https://holo.host/careers/product-owner-release-coordinator/"><em>this might be you</em></a><em>!</em></blockquote><p>I could tell that Alastair was relaxed about the future of Holo development. With this solid foundation, he said, developing and delivering new features like HoloFuel and the Service Logger app (which tracks resource usage and bills app publishers) is going to get easier and faster.</p><h3>So what are Envoy and Chaperone?</h3><p>Envoy is a service that lives on every HoloPort and connects its Holochain runtime to the centralised Holo routing infrastructure and, ultimately, the web user on the other end. It provisions a hApp instance for a user and asks the user’s browser to sign data that Holochain is about to store and publish on their behalf.</p><p>Chaperone, on the other hand, is a library that runs in the user’s browser. It handles registration and sign-up, using cryptographic magic to keep the user’s secrets (password and <a href="https://developer.holochain.org/glossary/#public-key-cryptography">private key</a>) from ever leaving the browser. That means they’ll never get stolen in a massive database hack, and the HoloPort never has the power to do things the user doesn’t want.</p><p>The Holo devs have often found themselves <strong>working against the centralised assumptions baked into web browsers and the HTTP protocol</strong>. Many of the challenges came from security restrictions that keep you safe in the centralised world, but they don’t make sense in a cryptographically secured P2P world where you’re in control of your keys.</p><p>In the process of meeting these challenges, the Holo devs came up with a final design that I think is more user-friendly. Previously you had to sign in on every new Holo-hosted page you visit, even if you’d been there before or were already signed in on another browser tab. Now your session stays active across browser tabs and even after quitting and restarting your web browser. This is <a href="https://blog.holochain.org/a-look-at-the-holo-testnet-coming-soon/#holo-hosting-infrastructure-nothing-special-">nothing special</a> for traditional web apps, so it’s great to see it coming to Holo. It means that dApps are finally going to start feeling pretty usable.</p><p>If you like technical details, you might want to read this <a href="https://blog.holochain.org/how-to-break-a-holo-app/#a-look-at-how-a-holo-hosted-happ-can-break">old blog post about Chaperone and Envoy</a>. It was written when the devs were still deep into creating and debugging these components.</p><h3>What’s next?</h3><p>Right now we’re in internal QA testing. We expect to invite the pre-release testers into hosted Elemental Chat soon (perhaps by the time you read this) — first as users, then as hosts. We don’t expect to find any big bugs, but we hope we’ll discover edge cases that we hadn’t hit during development. If no <em>critical</em> edge cases show up, we’ll release hosted Elemental Chat to all hosts and invite the web to try it out.</p><p>Looking forward to seeing you there sometime soon! (If you have an invite code, of course 😉)</p><h3>Building with Holochain? We want to hear from you!</h3><p>Are you building with Holochain? We would love to connect and hear more about your app/platform. Please, take a few moments to fill out this <a href="https://holochain.typeform.com/to/FfcRt9">survey</a>! Our goal is to list all the projects building on Holochain on our <a href="https://forum.holochain.org/c/projects">forum</a>.</p><p><em>Originally published at </em><a href="https://blog.holochain.org/dev-pulse-96-its-closer-than-it-appears/"><em>https://blog.holochain.org</em></a><em> on May 7, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=5d11826e6248" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/its-closer-than-it-appears-5d11826e6248">It’s Closer Than It Appears</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[What Is Holochain, Anyway?]]></title>
            <link>https://medium.com/holochain/what-is-holochain-anyway-7e81b428716a?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/7e81b428716a</guid>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[apps]]></category>
            <category><![CDATA[dev]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[dev-pulse]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Mon, 17 May 2021 20:59:40 GMT</pubDate>
            <atom:updated>2021-05-17T20:59:40.334Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*_ts3CSfRXiZVEJCz.jpg" /></figure><h4>Holochain Dev Pulse 95</h4><p>That might be a funny question to ask right now. If you’ve been reading the Dev Pulse for the last couple years, you probably already know what Holochain is.</p><p>But for those of you who are new to Holochain, or who want to share it with your friends, we’ve just publicly released a video, <a href="https://youtu.be/EUfyHNGvnDo"><em>What Is Holochain?</em></a><em>.</em> It’s based on a talk I gave at this year’s <a href="https://fosdem.org/2021/">FOSDEM conference</a>, and it gives a quick overview of what Holochain is all about at a level that’ll help devs understand whether it’s a good fit for them.</p><iframe src="https://cdn.embedly.com/widgets/media.html?src=https%3A%2F%2Fwww.youtube.com%2Fembed%2FEUfyHNGvnDo%3Ffeature%3Doembed&amp;display_name=YouTube&amp;url=https%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3DEUfyHNGvnDo&amp;image=https%3A%2F%2Fi.ytimg.com%2Fvi%2FEUfyHNGvnDo%2Fhqdefault.jpg&amp;key=a19fcc184b9711e1b4764040d3dc5c07&amp;type=text%2Fhtml&amp;schema=youtube" width="854" height="480" frameborder="0" scrolling="no"><a href="https://medium.com/media/0b57d71f885107b139012e4ea1e98454/href">https://medium.com/media/0b57d71f885107b139012e4ea1e98454/href</a></iframe><p>We’re busy building a new holochain.org website and this video will be featured there. It is fairly technical, but we hope it will build understanding for some folks even if it doesn’t quite get there for everyone. All sorts of people are interested in Holochain — builders, crypto fans, change agents, and business people. And that’s great. But it’s challenging to speak to them all at once! That’s why we’re trying to create materials that focus on specific audiences.</p><p>We’re releasing this one first because, ultimately, <strong>Holochain is a developer’s toolkit</strong>, and developers are the foundation of <a href="https://medium.com/h-o-l-o/no-hype-holos-global-adoption-strategy-f845cf563bdf">our adoption strategy</a>. If developers get it, they’ll get excited about it. That means more hApps in the world, which means more hAppy users whose power over their online lives just got a bit stronger.</p><p>(Keen eyes will notice that this video has been around for a while. It was actually an unlisted video in my personal YouTube account, but people seemed to love it so much — even non-devs — that we decided it’s good enough to put on the website for now. Expect shorter, more accessible explainer videos in the coming months.)</p><p>I know I haven’t shared a lot of updates on Holochain and Holo development lately. That’s partly been because of more important content, and partly because it’s mostly been a continuation of the same work I reported last time. Here’s what’s fresh:</p><ul><li>The new proxy server is finished, support has been integrated into Holochain, and we’ve moved it into QA testing on HoloPorts.</li><li>Gossip is getting some performance tuning to reduce load on the proxy server and make data propagate through the network more quickly.</li><li>The core dev team are changing various components:</li><li>Updated versions of low-level libraries (1.x releases of <a href="https://crates.io/crates/tokio">tokio</a> and <a href="https://crates.io/crates/wasmer">wasmer</a>)</li><li>Replacing the LMDB database engine with SQLite</li><li><a href="https://github.com/holochain/deepkey/">DeepKey has been ported to Holochain RSM!</a> Its complex data integrity rules have prompted productive discussions about validation, particularly the developer usability of validation callbacks.</li><li>Holochain finally runs on the HoloPort Nano! We’ve been able to compile it for a while, but it crashed on hApp startup. The Holo team did some experiments with wasmer 1.x and a different WASM-to-bytecode compiler, and they’re now demoing Elemental Chat on a Nano test unit. Once Holochain has officially upgraded to wasmer 1.x we’ll have regular OS builds for the Nano, and we’ll begin testing it along with the two larger HoloPorts. (If the hardware is ready before the software, we’ll ship the hardware first and the auto-updater will take care of the software when it’s ready.)</li><li>If you’re using the admin API, there are <a href="https://github.com/holochain/holochain-conductor-api/pull/66">breaking changes coming to the app installation calls</a>.</li></ul><p><em>Cover photo by </em><a href="https://unsplash.com/@birdiemcfly?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Benoit Beaumatin</em></a><em> on </em><a href="https://unsplash.com/s/photos/rabbit-hole?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></p><p><em>Originally published at </em><a href="https://blog.holochain.org/dev-pulse-95-what-is-holochain-anyway/"><em>https://blog.holochain.org</em></a><em> on April 30, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=7e81b428716a" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/what-is-holochain-anyway-7e81b428716a">What Is Holochain, Anyway?</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[A Holochain DocuSign Challenge]]></title>
            <link>https://medium.com/holochain/a-holochain-docusign-challenge-18bc91eb1e72?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/18bc91eb1e72</guid>
            <category><![CDATA[blockchain]]></category>
            <category><![CDATA[crypto]]></category>
            <category><![CDATA[dapps]]></category>
            <category><![CDATA[decentralization]]></category>
            <category><![CDATA[holochain]]></category>
            <dc:creator><![CDATA[Josh Zemel]]></dc:creator>
            <pubDate>Thu, 06 May 2021 17:15:31 GMT</pubDate>
            <atom:updated>2021-05-06T17:15:31.442Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*YREBj4NivHhURItUbbBv0g.png" /></figure><h4>HoloSign, Anyone?</h4><p>Recently, DocuSign CEO Daniel Springer <a href="https://qz.com/1942479/docusign-ceo-says-blockchain-is-too-expensive-for-wide-adoption/amp/">said it would never work to create a blockchain version of DocuSign</a> because it would be extremely expensive and inefficient, even though the management of electronic signatures and agreements would seem to be just the kind of use case blockchain promises to address.</p><p>He’s totally right. Storing all those PDFs on a blockchain would be ridiculously expensive, because everyone running a blockchain node would need to store a complete record of every document that’s ever been signed. Yikes.</p><p><strong>But a decentralized version of DocuSign would be easy to create and simple to run on Holochain. </strong>We even thought about building it ourselves just to show how easily it can be done… but then we thought a better idea would be to put it out there to our developer community, since there’s a real opportunity here. If you’ve been wanting a tech business idea for a proven concept with a large addressable market and multiple advantages over the competition, now you have one.</p><p>Or maybe DocuSign, HelloSign, or DocHub want to get in on the action? You guys already have the UI and the integrations with other web services, so you’d just be building new data infrastructure, which Holochain makes completely secure and easy to do.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*MBPazU49wWGKI9Rf.png" /></figure><p>Imagine how elegant this would be:</p><p><strong>PDFs are stored not on a centralized cloud server, but hosted by users themselves on their own <em>source chains</em></strong> — locally stored, immutable hash chains containing all the documents they’ve ever signed as well as logs of all the actions they’ve ever taken related to those documents (created, edited, signed, sent to so-and-so, etc.). Users will value owning their own data and having control over their identity and keys — features which are not only native to Holochain’s infrastructure but also guaranteed by Holochain’s <a href="https://github.com/holochain/cryptographic-autonomy-license">Cryptographic Autonomy License</a>.</p><p><strong>Users have the choice to install or not install a desktop app</strong> — and, later, a mobile app. (Holochain mobile support is in the future plans.)</p><ul><li><strong>If they install the app, they’re self-hosting their data</strong> as well as shards of the distributed hash table (DHT) that serves to balance storage across the nodes of the network. The more that your user base chooses to install and run the app, the more they become a part of your hosting infrastructure, which drives down costs. So it will be good to make the app handy and friendly: easy access to all your documents at your fingertips, whether online or offline.</li><li><strong>If they don’t install the app, they sign and access documents through their web browser</strong>, the same way that most people use DocuSign and similar products today. Their documents could be hosted on the Holo hosting network, which is a peer-hosting network for serving Holochain apps and data to users not running Holochain apps locally. Web-based users would still be able to download PDFs, just as they can from DocuSign and similar today.</li></ul><p><strong>Documents are signed using digital signaturesassociated with user-owned private cryptographic keys</strong> (in addition to hand-drawn or script-font signatures), which ensures in a fully traceable way that document signatures are legitimate. The integrity of all data and operations is ensured by Holochain’s peer-validation protocols.</p><p><strong>The DHT could ensure that a solid number of encrypted backups exist at all times</strong> (maybe 25 or 50) without being endlessly duplicated like in blockchain. This way, no single entity is holding the only copies of the data. (PS — there is probably no need to store documents as PDFs on the DHT; rich text would work just as well and be much lighter.) Alternatively, documents could be stored only on user source chains for an ultra-high degree of privacy not possible in centralized or blockchain scenarios.</p><p><strong>Holochain is free to use.</strong> Unlike in blockchain, individual nodes are not subject to a heavy computation load, and there is no need to store all the data in each node, so there are <strong>no gas costs</strong>.</p><p><strong>The hosting of documents may also be a cost savings relative to centralized web hosting</strong>, depending on the market price of hosting on the Holo Hosting Network.</p><p><strong>The bottom line</strong>: a Holochain version of DocuSign would be easy to build, would empower users more than existing products, and would be far more feasible than a blockchain version… plus might be less expensive to run even than a centralized version. Electronic agreement management is a good example of a use case that blockchain is ill-equipped to solve, and a great example of a use case that Holochain is perfectly equipped to solve.</p><p>If you do take up this challenge, let us know so that we can let the world know what you are up to!</p><p><em>Originally published at </em><a href="https://blog.holochain.org/a-holochain-docusign-challenge/"><em>https://blog.holochain.org</em></a><em> on May 4, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=18bc91eb1e72" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/a-holochain-docusign-challenge-18bc91eb1e72">A Holochain DocuSign Challenge</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[When Signup Goes Wrong]]></title>
            <link>https://medium.com/holochain/when-signup-goes-wrong-1958eb98d9c1?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/1958eb98d9c1</guid>
            <category><![CDATA[dev-pulse]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[distributed-apps]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[holoport]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Tue, 04 May 2021 07:26:49 GMT</pubDate>
            <atom:updated>2021-05-04T07:26:37.021Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*1e2ucQGt-np_X7F_6jyybg.png" /></figure><h4>Holochain Dev Pulse 94</h4><p>As I pored over <a href="https://twitter.com/H_O_L_O_/status/1379858946446462977">the most recent dev updates</a>, I struggled to find a cohesive story to share. There’s no one thing I can point to and say “See, this is what’s happened since the last Dev Pulse.” Just a lot of small updates. And then I realised — that <em>is</em> the message. Right now we’re making consistent, steady progress. Components are being optimised and rewritten, bugs are being found, core apps are seeing accelerated development. For those who would rather not read a tweet stream, here are the major points:</p><ul><li>HPOS, the HoloPort operating system, has seen a version bump of Holochain that’ll make integration of all the upcoming improvements a lot faster. This has involved a bit of work updating the Holo hosting components — Chaperone/Envoy (the parts that connect the user to their chosen host) and the HoloPort/Holochain API.</li><li>One of the upcoming improvements is a new proxy server, which is substantially faster than the previous one. The devs are currently working through a bug in which gossip is sometimes slower than before, and then it’ll go to testing.</li><li>Another improvement is a new database layer built on <a href="https://sqlite.org/index.html">SQLite</a>. It’s is unoptimised and currently slower than the current one built on <a href="https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Database">LMDB</a>; our expectation is that it will <em>enable</em> optimisations that make it as fast or faster, as well as new Holochain features (such as sharding) that make the entire network more efficient.</li><li>There are now low-level components that install hosted hApps onto HoloPorts (previously the hApps were hard-coded).</li><li>DeepKey, our distributed public key infrastructure application, is in <a href="https://github.com/holochain/deepkey/branches/active">active development</a>. It features the <a href="https://github.com/holochain/deepkey/blob/main/zomes/deepkey/src/change_rule/validate.rs">most</a> <a href="https://github.com/holochain/deepkey/blob/main/zomes/deepkey/src/keyset_root/validate.rs">complex</a> <a href="https://github.com/holochain/deepkey/blob/2021-03-24-key-registration/zomes/deepkey/src/key_registration/validate.rs">validation</a> code of any hApp we know of, and requires rigorous testing. So we’ve introduced a <a href="https://github.com/holochain/holochain/pull/674">mocking framework</a> that lets you <a href="https://github.com/holochain/deepkey/blob/2021-03-17-keyset-mock/zomes/deepkey/src/change_rule/validate.rs#L291-L326">unit-test</a> any of your functions that use the <a href="https://docs.rs/hdk/0.0.100/hdk/index.html#modules">host API</a>.</li><li>Elemental Chat’s registration process is getting support for joining codes, so we can open it up to the wider world of the web while maintaining a manageable number of alpha testers. This feature will be available to any Holo-hosted hApp that needs ‘<a href="https://developer.holochain.org/docs/glossary/#membrane-proof">membrane proofs</a>’.</li><li>Rigorous testing of the Elemental Chat registration process has revealed a few bugs in the way Holochain handles cell creation.</li></ul><p>That last bullet is an interesting one, and I think it might help you understand just a bit more about what’s going on under the hood if I try to explain where those bugs are coming from.</p><p>The bugs we’re seeing are all about setting up a <a href="https://developer.holochain.org/docs/glossary/#cell">‘cell’</a> for a new web user on their assigned HoloPort. A cell is a combination of an app binary (or <a href="https://developer.holochain.org/docs/glossary/#dna">DNA</a>) plus an <a href="https://developer.holochain.org/docs/glossary/#agent-id">agent ID</a>, and every agent who wants to use the app must have one running. (In fact, if there are no cells — no users actively using the app — the app can’t really be said to exist.) The cell is how you (or rather, the UI on your computer) interact with your own data in your <a href="https://developer.holochain.org/docs/glossary/#source-chain">source chain</a> and others’ data from the <a href="https://developer.holochain.org/docs/glossary/#distributed-hash-table-dht">DHT</a>.</p><h3>Preserving your agency</h3><p>As you probably know, Holo hosting is a compromise between the full P2P, <a href="https://developer.holochain.org/docs/glossary/#agent-centric">agent-centric</a> world of Holochain and the centralised world of the web. But one thing we <em>refused</em> to compromise was your agency, which is most powerfully expressed in your ability to choose what goes into your source chain. That source chain is a <em>public record</em> of the things you’ve done in the app, and you don’t want anyone else messing around with it.</p><p>In order to preserve agency at this level, a HoloPort should never be able to write to your source chain, even if it wanted to. You see, every source chain entry has to be signed by your <a href="https://developer.holochain.org/docs/glossary/#public-key-cryptography">private key</a>, which is a secret component of your agent ID. The signature has to cryptographically check out against your public key (which appeared in element #3 of your source chain). And that private key is generated and safely stored in your browser every time you log in. That’s what protects you from being impersonated by a rogue HoloPort.</p><p>The way Holochain apps work, when you want to perform an action (say, publish a tweet) your UI calls a function in the cell, which ‘stages’ a few writes to the source chain. Then the Holochain runtime validates those writes against the DNA’s <a href="https://developer.holochain.org/docs/glossary/#validation-function">validation rules</a>, creates a signature for each of them using your private key, and writes them to storage.</p><p>But this creates a bit of a problem if your private key is on your machine and your cell is on a HoloPort. So the HoloPort has to send a <em>signing request</em> back to your browser, consisting of all the source chain writes it wants you to sign. This happens in a separate HTTP cycle.</p><p>Now there’s another problem: there’s a very thin window of time, between making a function call and signing the writes, where you might just close your browser and scuttle your HoloPort’s attempt to get those writes approved. If that happens during <em>registration</em>, where your HoloPort is trying to write your Elemental Chat invite code and public key to your source chain (the <a href="https://developer.holochain.org/docs/glossary/#genesis-elements">genesis elements</a>), it can’t actually create a valid cell for you.</p><p>So the Holo dev team is working on addressing that edge case. There are two parts to this: one is to fix an issue where the Holochain conductor locks up on failed validation (that’s just a common bug with an engineering solution <a href="https://github.com/Holo-Host/holo-nixpkgs/pull/790">on the way</a>), and the other is to recover gracefully when the genesis elements can’t get signed on first try.</p><h3>Keeping bad actors out of the network</h3><p>With Holochain, every application (or rather, every DNA within every <a href="https://developer.holochain.org/docs/glossary/#dna-bundle">hApp bundle</a>) enjoys its own isolated network with its own separate store of data (its <a href="https://developer.holochain.org/docs/glossary/#distributed-hash-table-dht">DHT</a>). And sometimes it makes sense to restrict access to that network.</p><p>For this we have the <a href="https://developer.holochain.org/docs/glossary/#membrane-proof">‘membrane proof’</a>, an element near the beginning of your source chain, that supplies some sort of evidence that you should belong to the network you’re trying to join. Depending on the app, it could be a simple invite code, or it could be something complex such as a cryptographic certificate signed by three existing members. This membrane proof is something you supply when you start up your cell, and it’s validated by your initial <a href="https://developer.holochain.org/docs/glossary/#bootstrapping">bootstrap</a> peers before they let you access the rest of the network and its data.</p><p>Elemental Chat is one of those applications; it requires an invite code on signup. The Holo single-sign-on dialog has a field you can paste your invite code into; this gets passed on to your assigned HoloPort.</p><p>But what happens when you get the invite code wrong? The validator network should reject you before you even get the chance to take a look at the data in the DHT. This is tricky, because you’re supposed to self-validate before joining — that prevents you from publishing bad data. But if validating the invite code requires access to DHT data, you might not be able to self-validate!</p><p>This chicken-and-egg problem has sparked a series of discussions about the best way to handle membrane proof validation. It’s an example of the sorts of engineering challenges the dev team face regularly, challenges in which they have to consider the impact on user experience while maintaining commitment to a ‘correct’ design that ensures data integrity. (I love observing their conversations; it makes me feel smart but also gives me a sobering appreciation for how much I still have to learn about Holochain’s inner workings.)</p><p>The first step is to fix a bug that locks up Holochain when the Elemental Chat invite code is invalid. As with the previous section, this is just a routine engineering matter. The more important step, currently being worked on in parallel to the bugfix, is to identify the most sensible design for membrane proof validation — one that is easy for developers to understand and use, ensures correctness, and minimises unpleasant user experience.</p><p>The most likely candidate design involves a three-step process:</p><ol><li>The agent’s cell calls a basic sanity check callback on the membrane proof; this can do things like check for correct structure or catch typos.</li><li>The agent’s cell tries to bootstrap into the network and publish their genesis entries; selected peers validate the membrane proof properly, potentially using DHT data in the process.</li><li>The agent detects whether they’ve successfully been granted access to the network; if they haven’t, they destroy their cell and try again with a new agent ID (and possibly a new membrane proof, depending on how the app’s membrane protection is designed).</li></ol><p>The goal of this process is to catch as many classes of honest mistakes as possible before you try to join the network, while still allowing the <a href="https://developer.holochain.org/docs/glossary/#immune-system">immune system</a> to identify truly bad actors and giving you a chance to try again if you’re mistakenly identified as one yourself.</p><h3>So what does this mean for hosted Elemental chat?</h3><p>By now you’re probably wondering whether that long-awaited <a href="https://holo.host/roadmap/">milestone</a>, hosted Elemental chat for web users, is being delayed.</p><p>Nope! This is all an expected part of the development cycle. When theory meets the real world, there’s always a process of adjusting the two to match each other. I’m glad to see it happening; it means we’re identifying all the weird edge cases that tend to hide when it’s all just theory. And as we deal with each edge case, it’s just going to make Holo-hosted apps (and Holochain in general) that much better.</p><p><em>Originally published at </em><a href="https://blog.holochain.org/dev-pulse-94-when-signup-goes-wrong/"><em>https://blog.holochain.org</em></a><em> on April 16, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=1958eb98d9c1" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/when-signup-goes-wrong-1958eb98d9c1">When Signup Goes Wrong</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[NFTs on Holochain? Easy as passing the ball]]></title>
            <link>https://medium.com/holochain/nfts-on-holochain-easy-as-passing-the-ball-4be634757f64?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/4be634757f64</guid>
            <category><![CDATA[nft]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[blog]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Tue, 04 May 2021 07:19:23 GMT</pubDate>
            <atom:updated>2021-04-21T13:20:49.187Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*upKJrGgcuscY97ub.jpg" /></figure><p>Non-fungible tokens, or NFTs, have suddenly become rather popular. I don’t exactly know why now is their time — maybe it’s because <a href="https://www.businessofbusiness.com/articles/nft-celebrity-non-fungible-tokens-crypto-grimes-paris-hilton/">celebrities are beginning to sell them</a>, or maybe it’s because recent price increases of BTC and ETH have given hodlers a lot of new money to play with. Whatever the cause, the world is taking notice. And not just the crypto world — traditional auction house Christie’s recently <a href="https://www.cnbc.com/2021/03/11/most-expensive-nft-ever-sold-auctions-for-over-60-million.html">sold an NFT for $69 million USD</a>.</p><p>If you don’t know what an NFT is, it’s a record that tracks ownership of some special digital object, from its creation to its current owner. This record lives on a blockchain or other distributed ledger. The object, on the other hand, lives somewhere else, usually a traditional web server or decentralised file storage system. It might be a piece of digital art, an <a href="https://www.cryptokitties.co/">algorithmically generated cat</a>, an item of <a href="https://market.decentraland.org/">digital clothing</a> for your favourite virtual world, or (my favourite, on account of its subtle-yet- <a href="https://en.wikipedia.org/wiki/Tulip_mania">undeniable</a> comment on the nature of crypto-trading) a tulip. That can <a href="https://ethertulips.com/">fight other tulips</a>.</p><p>The important thing to know is that, unlike normal <a href="https://en.wikipedia.org/wiki/Fungibility">‘fungible’</a> crypto-tokens such as ETH, each NFT represents ownership of something special, unique, one-of-a-kind.</p><p>There’s a funny thing about that one-of-a-kind something. Because it’s a digital object, it can be cheaply copied and shared a zillion times, and there’s not much the owner can do about it.</p><p>But surprisingly, that’s what makes it so valuable.</p><p>If you buy a painting from a famous artist, you can do a few things with it. You can stick it in a vault where nobody can damage (or enjoy) it. Or you can put it in your living room to impress all your dinner party guests with. (As long as they’re in your bubble or you’ve all gotten vaccinated already.)</p><p>Or you can put it up in a public place where everyone can enjoy it. Something unexpected is about to happen now: the more people get to see it, the more famous it becomes, which makes it even more valuable. Think about Da Vinci’s <em>Mona Lisa</em>; it’s estimated to be worth <a href="https://www.reference.com/world-view/much-mona-lisa-worth-today-ea19afd66638ea57">$1 billion</a>, and the fact that anybody can print up a copy for their living room hasn’t hurt its value one bit. But the distinction of owning the <em>original</em> — now that’s something special, something that people might be willing to drop a billion on.</p><p>Digital art is even easier to copy than the <em>Mona Lisa</em>. So far this has been seen as a threat; music, film, and software companies have fought hard against piracy. That’s because their business models have centred around restricting who can access the things they produce, then charging for access. At the beginning of the internet age, this suddenly became nearly impossible to enforce.</p><p>What if we could do for digital art what art galleries did for physical art? What if we decoupled ownership from possession in a way that safely ensured that creators could make a respectable living? What if digital art became <em>more</em> valuable the more freely it was copied and enjoyed? And while we’re at it, could digital tech be used to eliminate (or reduce) the middlemen and let more of the revenue reach the people who do the work to inspire, challenge, and delight us?</p><p>According to the website <a href="https://cryptomedia.wtf/">cryptomedia.wtf</a>, this is exactly the sort of opportunity that NFTs hold. Reading this manifesto, I do really wonder if they might just upend the revenue strategy of content producers, allowing them to let go of artificial scarcity and profit from abundance. Could this be an example of a bridge from the extractive economics of the past into a cooperative economics that many of us are hoping for?</p><p>In order to do NFTs, we need some sort of registry that records the creation of art pieces, along with subsequent ownership transfers, so people can’t try to sell things they didn’t own. It’d be nice if this registry were publicly auditable — oh, and tamper-resistant, which implies that it shouldn’t be controlled by any particular organisation. And since it’s a piece of software, maybe it could automate ownership transfers and payments too. You can probably see now why blockchain technology is such a good match for NFTs.</p><p>Yup!</p><p>We talked to a couple of Holochain’s core devs about this, and while they came up with different designs, they all agreed that it wouldn’t be hard to do. You only need one simple rule, a ‘pass-the-ball’ rule, where you only get to pass the NFT to someone else if someone passed it to you (or you created it in the first place). They described this rule as ‘transitive’ — as long as it’s applied to every ball-passing event, it’s guaranteed to be correct all the way back to the object’s creation event.</p><p>Some people think you have to add some additional consensus to manage scarcity of NFTs, but in Holochain, every element on every user’s chain is already guaranteed to be unique, and you don’t get scarcer than that. You just need to track the history of who the unique thing has been transferred to.</p><p>I find all this easy to understand, because Holochain is modelled on the idea of person-to-person interactions — and we all understand how those work. Holochain adds some extra magic to prevent cheating. I won’t go into much detail, except to say two things:</p><ol><li>Every time you pass the ball, you need to ask a few people to witness the act. But you don’t get to choose <em>who</em> witnesses it, which helps keep you honest.</li><li>If someone passes the ball to you, you’re probably going to want to make sure they aren’t cheating. So this NFT app should let you check with a few prior witnesses to make sure the ball wasn’t secretly passed to someone else already.</li></ol><p>Plenty of reasons:</p><ul><li><strong>Cost. </strong>Because Holochain apps are so resource-efficient, there’s no need to charge a transaction fee.</li><li><strong>Ethics. </strong>A lot of smart people have already investigated <a href="https://www.cell.com/joule/fulltext/S2542-4351(18)30177-6">blockchain’s</a> <a href="https://www.cell.com/joule/fulltext/S2542-4351(19)30255-7">ecological</a> <a href="https://digiconomist.net/bitcoin-electronic-waste-monitor/">impact</a>, claiming that we can’t really afford to be adopting this kind of technology right now. A Holochain NFT app, by contrast, would be light enough to run on the basic devices its users already own.</li><li><strong>Developer efficiency. </strong>Blockchain NFTs require a couple different stacks for payment, ownership, storage, and UI. With Holochain, those functions could all be integrated into one stack.</li><li><strong>User experience. </strong>Not only are crypto wallets really confusing for the average user, but the disconnect between components has caused <a href="https://www.vice.com/en/article/pkdj79/peoples-expensive-nfts-keep-vanishing-this-is-why">real losses for NFT art collectors</a>. I don’t think I need to explain why this is a serious problem. Better component integration means a safer — and nicer — experience for everyone.</li><li><strong>Scalability.</strong> Holochain apps don’t use global consensus and they run on user devices. That means they <a href="https://qz.com/1145833/cryptokitties-is-causing-ethereum-network-congestion/">scale with the number of people</a> using them.</li><li><strong>Accountability.</strong> People have already been selling things they don’t control the rights to. An NFT app on Holochain could leverage some of the <a href="https://hackmd.io/Y4QSGqn6T_amCvHv6T9f6A">identity tools we’re building</a>.</li></ul><p>Put together, all of these things could mean greater adoption for NFTs — as well as massive new opportunities unlocked by the efficiency, cheapness, and versatility of a future Holochain-based NFT platform.</p><h3>Building with Holochain? We want to hear from you!</h3><p>Are you building with Holochain? We would love to connect and hear more about your app/platform. Please, take a few moments to fill out this <a href="https://holochain.typeform.com/to/FfcRt9">survey</a>! Our goal is to list all the projects building on Holochain on our <a href="https://forum.holochain.org/c/projects">forum</a>.</p><p><em>Originally published at </em><a href="https://blog.holochain.org/nfts-on-holochain-easy-as-passing-the-ball-2/"><em>https://blog.holochain.org</em></a><em> on April 8, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=4be634757f64" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/nfts-on-holochain-easy-as-passing-the-ball-4be634757f64">NFTs on Holochain? Easy as passing the ball</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Elemental Chat Gets Freshened Up]]></title>
            <link>https://medium.com/holochain/elemental-chat-gets-freshened-up-8409feb1ffbf?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/8409feb1ffbf</guid>
            <category><![CDATA[dev-pulse]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[development]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[distributed-apps]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Wed, 14 Apr 2021 13:51:11 GMT</pubDate>
            <atom:updated>2021-04-14T13:51:43.559Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*VqpUXIIh9HnkwXF5i_8UtQ.png" /></figure><h4>Holochain Dev Pulse 93</h4><p><strong><em>NOTE: </em></strong><em>Beginning this week, we’re trying something new with the Dev Pulse. We’re going to start publishing smaller pieces more regularly. We think this will make them both fresher and more digestible.</em></p><p>This week we rolled out an update to all HoloPorts. The most visible changes are in the UI of Elemental Chat, our demo app. Users now have ‘identicons’ beside their name; these auto-generated avatars are based on their actual agent ID in the Holochain network and can’t be forged. This is important because usernames are just labels; you can set yours to anything you like, even someone else’s name. If you’re talking to a friend and suddenly their identicon looks slightly different, there’s a good chance someone is trying to impersonate your friend.</p><p>This is an example of how cryptographically-secured data is a good first step to <a href="https://medium.com/holochain/is-holochain-a-safe-haven-for-dangerous-extremists-or-a-beacon-of-hope-for-accountability-fcbb8f5d38c6">ensuring authenticity and accountability</a> without the need for a central authority.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*oJQj6nxjboEv7xq-" /><figcaption>Elemental Chat</figcaption></figure><p>There are some under-the-hood changes to Elemental Chat as well. The network stats are calculated more accurately (you can see them by clicking that graph icon in the upper-right corner). And the real-time performance of chatting (using <a href="https://developer.holochain.org/docs/concepts/9_signals/">signals</a>) has been tweaked to be more efficient; this should result in a small performance improvement.</p><p>Under the hood, the HoloPort’s operating system is using a new version of Holochain RSM. The reason this matters is that it prepares us for the next infrastructure milestone: hosted hApps! The speedups so far are modest, but we expect that other near-term updates will make Holochain substantially faster, fast enough to support thousands of users per app.</p><p>These future updates will include:</p><ul><li>A switch to a new storage engine based on <a href="https://sqlite.org/index.html">SQLite</a>, the world’s <a href="https://sqlite.org/mostdeployed.html">most popular</a> database engine. I know, I know, last year we said we were switching to LMDB because it was the <a href="https://blog.holochain.org/a-new-holochain-developer-release/#seen-in-dev-team-land-upcoming-initiatives">best</a> <a href="https://blog.holochain.org/announcing-and-unpacking-the-new-holochain/#a-tighter-tech-stack">thing</a> <a href="https://blog.holochain.org/holofuel-enters-community-testing-phase/#how-far-have-we-come-so-far">ever</a>. And in comparable tests (hash table lookups) it does outperform SQLite. But we need more than just hash table lookups — we need fast querying with arbitrary filter parameters. This is especially important if we want to do <a href="https://developer.holochain.org/docs/concepts/4_dht/#finding-peers-and-data-in-a-distributed-database">neighbourhood sharding</a> well. And sharding will lift the lid on scaling, allowing hApp networks to grow far beyond what traditional blockchains can reasonably handle.</li><li>The proxy server, which helps HoloPorts and Holochain users punch through home firewalls, is in the midst of a large rewrite. So far, benchmarks predict that it’ll be 5× faster for raw throughput, at the very least. Once this is deployed, it will enable us to see places where DHT gossip and validation performance need to be improved.</li></ul><p><strong>For developers</strong>, all of the above means that Holo hosting is on its way. The <a href="https://github.com/Holo-Host/web-sdk/">Holo Web SDK</a> is being readied for public use as well, and we’re exploring the possibility of offering automated hApp testing services in a real hosting network on real HoloPorts.</p><h3>Special note for hApp devs</h3><p>The develop branch of Holochain has advanced quite a bit past main in the past month or two, bringing features like the <a href="https://blog.holochain.org/dev-tools-in-the-works/">hc dev tool and hApp bundles</a>. For that reason, I&#39;m now recommending that you use https://nightly.holochain.love to install/enter the development shell. Also, take note that we might be changing installation URLs in the future, but we&#39;ll always keep the <a href="https://developer.holochain.org/docs/install">installation guide</a> up to date for you.</p><p><em>Cover photo by </em><a href="https://unsplash.com/@pawel_czerwinski?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Paweł Czerwiński</em></a><em> on </em><a href="https://unsplash.com/s/photos/paint?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText"><em>Unsplash</em></a></p><p><em>Originally published at </em><a href="https://blog.holochain.org/elemental-chat-gets-freshened-up/"><em>https://blog.holochain.org</em></a><em> on April 5, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=8409feb1ffbf" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/elemental-chat-gets-freshened-up-8409feb1ffbf">Elemental Chat Gets Freshened Up</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Dev Tools in the Works]]></title>
            <link>https://medium.com/holochain/dev-tools-in-the-works-53870601bd6f?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/53870601bd6f</guid>
            <category><![CDATA[dev-pulse]]></category>
            <category><![CDATA[devtools]]></category>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[sdk]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Fri, 19 Mar 2021 14:45:20 GMT</pubDate>
            <atom:updated>2021-03-19T14:45:20.812Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*V2yp_TjPw4Pt94mOlI2ZTw.png" /></figure><h4>Holochain Dev Pulse 92</h4><h3>Summary</h3><p>Mostly we’re working on performance, bugfixes, and features (proxy server, <a href="https://github.com/holochain/holochain/pull/659">storage code</a>, sharding, and <a href="https://github.com/holochain/holochain/pull/684">validation receipts</a>), but we’re also working on a few developer tools: the hc command (yes, it&#39;s coming back), a mock HDK, and a nearly finalised hApp bundle spec.</p><h3>Highlights</h3><ul><li>The hc developer command returns!</li><li>Mock HDK: Test your DNA without firing up Holochain</li><li>hApp bundle spec ready for basic use</li></ul><h3>The hc developer command returns!</h3><p>Veteran Holochain developers will remember the hc command, a sort of Swiss army knife tool that let you scaffold, compile, test, and run your hApps. It&#39;s here again and (almost) ready for you to start using in your daily development.</p><p>Subcommands already implemented:</p><ul><li>hc dna <strong>replaces the existing </strong><strong>dna-util command.</strong></li><li>hc dna init creates an empty directory and manifest file for a DNA.</li><li>hc dna pack packs a collection of compiled WASM zomes and a DNA manifest file into a DNA file. It replaces dna-util -c.</li><li>hc dna unpack unpacks a DNA file into its component manifest and compiled WASM zomes. It replaces dna-util -e.</li><li>hc app has the same subcommands as hc dna, but works at the level of a hApp bundle - that is, a collection of DNAs. (See below for more info on bundles.)</li><li>hc sandbox is still a work-in-progress, but will let you generate and run conductor &#39;sandboxes&#39; - temporary conductor configurations (including multiple instances on multiple conductors) that let you test-run your application.</li></ul><p>This tool isn’t available in mainline Holonix quite just yet, but you can try it out with this command:</p><pre>nix-shell <a href="https://github.com/holochain/holonix/archive/pr/bump-holo-nixpkgs-add-hc.tar.gz">https://github.com/holochain/holonix/archive/pr/bump-holo-nixpkgs-add-hc.tar.gz</a></pre><p>Once it’s finished its work and you find yourself in the development shell, you should have the hc tool available:</p><pre>hc --version holochain_cli 0.1.0</pre><p>We’re still working out what scaffolding should look like beyond the simple hc dna init and hc app init commands. If you have an idea of what you need from a scaffolding tool, please <a href="https://github.com/holochain/holochain/issues">create a GitHub feature request</a> and tag it with &#39;enhancement&#39;.</p><p><strong>What about scaffolding and testing? </strong>Testing is already well-covered by the tools native to each language:</p><ul><li>You can use npm test to run scenario/end-to-end tests written with <a href="https://github.com/tryorama">Tryorama</a></li><li>You can use cargo test to run unit tests with the new mock HDK (see below)</li></ul><h3>Mock HDK: Test your DNA without firing up Holochain</h3><p>Unit testing — tests for the smallest executable pieces of your code — should be the foundation of your testing plan. Up until now, though, we haven’t had any great tools for unit testing a DNA.</p><p><a href="https://github.com/holochain/tryorama">Tryorama</a>, our scenario testing framework, has been great for doing integration testing. It loads up an entire conductor (or multiple conductors) to host your DNAs. But this isn’t what you want for unit tests, which are meant to test a specific piece in isolation. It also doesn’t support a lot of edge cases — unexpected conductor shutdowns are easy to model, but other situations like hardware errors and malicious peers are impossible.</p><p>So the core devs have introduced a <a href="https://github.com/holochain/holochain/pull/674">mock HDK</a> that lets you simulate host call responses and introduce all the edge cases you like. You can find examples throughout the <a href="https://github.com/holochain/holochain/tree/develop/crates/test_utils/wasm/wasm_workspace">WASM test suite</a>; here’s <a href="https://github.com/holochain/holochain/blob/develop/crates/test_utils/wasm/wasm_workspace/crd/src/lib.rs#L24-L103">one that mocks the CRUD host functions</a>.</p><h3>hApp bundle spec ready for basic use</h3><p>We expect a common pattern for hApp development will be mixing-and-matching existing DNAs in new configurations, sort of like an ecosystem of microservices. In fact, we explicitly want to see that happening. We think Holochain will get adopted more quickly if developers can lean on each other’s good work; it saves work and time for developers, and leads to a better user experience when new apps can connect to existing apps and take advantage of users’ existing data.</p><p>To that end, we’ve long held an intention to let developers easily specify a ‘bundle’ of DNAs that make up a full application. There are different needs; here are a few:</p><ul><li>Connect to an existing DNA, such as a core app (like DeepKey) or other popular app (like chat or social media)</li><li>Make a new copy of an existing DNA so users can enjoy a private space using the same code</li><li>Clone a DNA multiple times for separate, small spaces — such as team chat rooms within an organisation</li></ul><p>hApp bundles existed in Holochain Redux; now they’re <a href="https://github.com/holochain/holochain/pull/651">coming to RSM</a>. A few of the above scenarios (e.g., <a href="https://github.com/holochain/holochain/pull/619">cloning</a>, DNA versioning) aren’t supported yet, and the bundle spec format isn’t officially stable. But it’s already in use in the <a href="https://github.com/holochain/holochain/pull/665">admin API</a> (and soon <a href="https://github.com/holochain/tryorama/pull/71">Tryorama</a> and the ), and the parts that hApp devs are already using look pretty robust and probably won’t change much. Here’s what works and what’s changed:</p><ul><li>The admin API endpoint <a href="https://github.com/holochain/holochain/blob/d3a61446acaa64b1732bc0ead5880fbc5f8e3f31/crates/holochain_conductor_api/src/admin_interface.rs#L91">InstallAppBundle</a> is meant to replace InstallApp, which will be deprecated. It supports all the features of InstallApp already and will support more in the future.</li><li>DNA manifests, which already exist and can override properties and UUID in the DNA bundle. DNA manifests have only had a minor tweak to allow referencing DNA bundle files by URL as well as file path.</li><li>An app bundle has ‘slots’, which give a human-readable ID to existing or new DNAs in a bundle. In the future, these slots will also be used for cloned DNAs.</li><li>In contrast to Redux’s bundle spec, DNAs don’t explicitly depend on each other via bridge specs. The cell can simply make a bridge call to any other cell it has a handle for. Access is granted or denied via <a href="https://developer.holochain.org/docs/concepts/8_calls_capabilities/">capability-based security</a>. (This means you have to be careful about circular dependencies.)</li></ul><h3>Bonus: signs of ecosystem growth</h3><p>I’ve noticed some things lately that signal to me that Holochain is gaining awareness and support in the open-source developer community.</p><ul><li>hApp developers are creating pull requests that add features — both ones that meet their own needs, like being able to <a href="https://github.com/holochain/holochain/pull/685">specify header timestamps</a>, as well as ones that everyone can enjoy, like <a href="https://github.com/holochain/holochain/pull/683">mDNS peer discovery</a> for local networks.</li><li>People from outside the Holochain dev community are offering their own gifts, such as in this forum post <a href="https://forum.holochain.org/t/low-code-development-for-holochain-apps/4888">introducing a low-code development toolkit</a> (soon to be open-sourced) and inviting collaboration to make it work with Holochain, as well as this post investigating Holochain’s usefulness for a <a href="https://forum.holochain.org/t/basic-income-community-currency-migration-from-blockchain-to-holochain/4838">popular Kenyan community currency</a>.</li><li>Engagement on the developers’ forum has seen a steady climb in the past two months. If I could guess, I’d say this is partly due to the fact that people can now actually see Holochain in action, thanks to <a href="https://blog.holochain.org/elemental-chat-is-live/">Elemental Chat landing on HoloPorts</a>, and partly due to the work we’ve been doing to increase awareness at events like the FOSDEM 2021 and Hello Decentralization conferences.</li></ul><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*9hybT165Hh052Qhk" /></figure><h3>Connect with us!</h3><p>If you’re a developer and you’re just learning about Holochain, I encourage you to <a href="https://developer.holochain.org">join the developer forum</a> and talk to the other friendly community members. If you’ve got an application (or an idea for an application) and are wondering how it would work with Holochain as a back end, I love talking about the nitty-gritty details of implementation (my username is @pauldaoust). The community also runs courses; there’s an application architecture course currently running and it’s likely to be offered again in the future.</p><p><em>Originally published at </em><a href="http://blog.holochain.org/dev-tools-in-the-works"><em>https://blog.holochain.org</em></a><em> on March 13, 2021.</em></p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=53870601bd6f" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/dev-tools-in-the-works-53870601bd6f">Dev Tools in the Works</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[HDK is stable (for now)]]></title>
            <link>https://medium.com/holochain/hdk-is-stable-for-now-a34a9579d7ca?source=rss----f0e305d73014---4</link>
            <guid isPermaLink="false">https://medium.com/p/a34a9579d7ca</guid>
            <category><![CDATA[open-source]]></category>
            <category><![CDATA[dev-pulse]]></category>
            <category><![CDATA[distributed-apps]]></category>
            <category><![CDATA[holochain]]></category>
            <category><![CDATA[hdk]]></category>
            <dc:creator><![CDATA[Holochain Design]]></dc:creator>
            <pubDate>Thu, 04 Mar 2021 13:52:17 GMT</pubDate>
            <atom:updated>2021-03-04T13:52:17.220Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*M9HSgPOqJRCxtzqoJ4iwhQ.png" /></figure><h4>Holochain Dev Pulse 91</h4><h3>Summary</h3><p>The big news is that the core team’s work on the HDK, Holochain’s standard library for building DNAs, has slowed down and shouldn’t see any big changes for a while. Work is now shifting back to core features, such as sharding the DHT.</p><p>In the meantime, the Holo team is getting Elemental Chat ready for Holo hosting. They’ve also enabled the Host Console on all HoloPorts (read on to find out why).</p><h3>Highlights</h3><ul><li>HDK stable for now, gets version number, available on crates.io</li><li>Holo progress: hosted hApps and Host Console</li></ul><h3>HDK stable for now, gets version number, available on crates.io</h3><p>To those brave application developers who took the plunge and started migrating their apps to Holochain RSM (or starting fresh on RSM without prior experience), I applaud you for your perseverance. You’ve held on through lots of uncertainty — little breaking changes, rough edges, and in some cases total rewrites.</p><p>I’m also happy to tell you that there’s light at the end of the tunnel: thanks to steady feedback from application developers, we’ve managed to get the HDK into a fairly stable state and we intend to leave it alone for a while.</p><blockquote><em>You can read a summary of all the most recent changes on the </em><a href="https://holochain-open-dev.github.io/blog/recent-changes-for-happ-devs/"><em>Holochain Open Dev blog</em></a><em> — there’s a lot of good stuff in there.</em></blockquote><p>This means we’re giving it a version number — the first since v0.0.52-alpha2, the last release of Holochain Redux and its HDK. It’s going to be called v0.0.100, and it’s likely that the HDK’s version number will eventually be decoupled from the Holochain runtime’s version number so that they can be updated separately.</p><p>And it also means that we’re going to be <a href="https://crates.io/crates/hdk">releasing the HDK on crates.io</a> once again — probably by the time you read this. This means no more messing with long GitHub strings in your Cargo.toml file!</p><p>You’ll also have up-to-date online documentation at <a href="https://docs.rs/hdk/">https://docs.rs/hdk/</a> . Speaking of which, part of the most recent sweep of the HDK was to get its documentation up to a high quality level. Take a read, <a href="https://forum.holochain.org/u/pauldaoust">let me know</a> how it is for you, or even maybe <a href="https://github.com/holochain/holochain/tree/develop/crates/hdk">fork the repo</a> and contribute your own changes if you feel so inclined ;-)</p><h3>Holo progress: hosted hApps and Host Console</h3><p>The Holo hosting team has been putting most of their work into the login process and the <a href="https://github.com/Holo-Host/web-sdk">Holo Web SDK</a>, a JavaScript library for integrating a web app with the Holo hosting network. The register/login form has been built and tested (I tried it out myself last week but didn’t think to grab a screenshot, sorry). The current step is to get signals — the real-time node-to-UI messaging feature — working with Holo. HoloPort owners who’ve already been using Elemental Chat will be familiar with this feature; it’s what makes it feel as fast as a cloud-based chat app.</p><p>I just learned that they also enabled the Host Console on all HoloPorts. There’s not much to see — yet — but what is there promises a pleasant user experience. The big reason for rolling this out now, before hApp hosting is enabled, is the ‘Access for HoloPort support (SSH)’ switch. This lets you open up your HoloPort to a tiny vetted group of team members so they can directly diagnose problems in this alpha phase. We recommend that you <em>don’t</em> turn it on unless a support agent from Holo asks you to. And remember that, in the spirit of agency, you can turn it off any time you like.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*hZqCKhCSkG9KP0_E" /></figure><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/0*WKP4ugzhq-z9Cdeq" /></figure><p>That’s it for now. If you’re interested in getting into Holochain app development, the team and community are producing lots of content — check out the <a href="https://www.youtube.com/playlist?list=PLOuXrtFJO6zWTG8cweZCCQfbkAu68KYtw"><em>Build It!</em> series</a> with David and Philip, or <a href="https://www.youtube.com/playlist?list=PLOuXrtFJO6zWw8D1dMEf4DVbYHCYCpoM6"><em>Low Code Zone</em></a> for a more philosophical approach. We’ve also been appearing at online conferences lately, which has resulted in some good video and text content for builders — we’ll share those in the coming weeks. And of course you can visit us on the <a href="https://forum.holochain.org">developers’ forum</a>, where exciting conversations emerge and merge regularly.</p><p>(cover photo by <a href="https://unsplash.com/@alobonzo?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">A lo Bonzo</a> on <a href="https://unsplash.com/s/photos/granite?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>)</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=a34a9579d7ca" width="1" height="1" alt=""><hr><p><a href="https://medium.com/holochain/hdk-is-stable-for-now-a34a9579d7ca">HDK is stable (for now)</a> was originally published in <a href="https://medium.com/holochain">Holochain</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
    </channel>
</rss>