2020-04-23 14:53:19 +00:00
|
|
|
---
|
|
|
|
layout: post
|
2020-05-16 15:32:55 +00:00
|
|
|
title: Hyperpy, the punk-to-punk protocol in Python
|
|
|
|
description: A new Python implementation of the Hypercore protocol is cooking at Autonomic
|
2020-04-23 14:53:19 +00:00
|
|
|
image: 2020-04-23-dat-protocol.png
|
2020-05-16 15:32:55 +00:00
|
|
|
category: technology, peer-to-peer, hypercore-protocol
|
2020-04-23 14:53:19 +00:00
|
|
|
date: 2020-04-23
|
|
|
|
---
|
|
|
|
|
2020-05-16 15:32:55 +00:00
|
|
|
# Hyperpy, the punk-to-punk protocol in Python
|
2020-04-23 14:53:19 +00:00
|
|
|
|
2020-04-25 11:59:44 +00:00
|
|
|
We're quite excited by the new wave of community-developed peer-to-peer
|
2020-04-23 14:53:19 +00:00
|
|
|
technology. [Scuttlebutt], [Cabal], [Mapeo] and [Beaker browser] are inspiring
|
|
|
|
examples of software which show that technology can be built to operate without
|
2020-04-25 11:59:44 +00:00
|
|
|
running on centralised commercially-owned infrastructure (e.g. WhatsApp).
|
2020-04-23 14:53:19 +00:00
|
|
|
|
2020-05-16 15:32:55 +00:00
|
|
|
One of the underlying innovations for these technologies is the [Hypercore
|
2020-04-23 14:53:19 +00:00
|
|
|
protocol], which is a way of describing how two computers can send information
|
2020-05-16 15:32:55 +00:00
|
|
|
to each other directly.
|
2020-04-23 14:53:19 +00:00
|
|
|
|
2020-05-16 15:32:55 +00:00
|
|
|
Today, the reference implementation of the Hypercore protocol is written in
|
2020-04-23 14:53:19 +00:00
|
|
|
Javascript. The Javascript ecosystem has proved to be remarkably flexible for
|
|
|
|
advancing this next generation of tools. Simple methods of publishing (npm
|
2020-04-25 11:59:44 +00:00
|
|
|
publish), well-established distribution channels (the browser) and a
|
2020-04-23 14:53:19 +00:00
|
|
|
[philosophy of modularity] have enabled so many to get started with building
|
|
|
|
peer-to-peer technology.
|
|
|
|
|
|
|
|
However, there is a great need for other languages and ecosystems to benefit
|
|
|
|
from the tools and concepts that are being developed based on the reference
|
|
|
|
implementation. People from all walks of life need a working implementation in
|
|
|
|
their preferred language of choice. In response to this, we are seeing projects
|
2020-05-16 15:32:55 +00:00
|
|
|
like [Datrs] and [Datcxx] emerge (please note, the Hypercore protocol was once
|
|
|
|
called the Dat protocol, see [this blog post] for more information).
|
2020-04-23 14:53:19 +00:00
|
|
|
|
2020-05-16 15:32:55 +00:00
|
|
|
Alongside these efforts, a member of Autonomic has begun to work on Hyperpy, a
|
|
|
|
Python-based implementation of the Hypercore protocol. The project proposes a
|
|
|
|
roadmap but offers no deadlines and receives no funding at current status.
|
2020-04-23 14:53:19 +00:00
|
|
|
|
2020-05-16 15:32:55 +00:00
|
|
|
However slowly, things are moving along. Further progress updates will be
|
|
|
|
posted on this blog as they come in. All development is taking place on
|
|
|
|
[git.autonomic.zone/hyperpy].
|
2020-04-23 14:53:19 +00:00
|
|
|
|
|
|
|
[scuttlebutt]: https://scuttlebutt.nz/
|
|
|
|
[cabal]: https://cabal.chat/
|
|
|
|
[mapeo]: https://www.digital-democracy.org/mapeo/
|
|
|
|
[beaker browser]: https://beakerbrowser.com/
|
2020-05-16 15:32:55 +00:00
|
|
|
[hypercore protocol]: https://hypercore-protocol.org/
|
2020-04-23 14:53:19 +00:00
|
|
|
[philosophy of modularity]: https://mafinto.sh/blog/pragmatic-modularity.html
|
2020-05-16 15:32:55 +00:00
|
|
|
[datrs]: https://github.com/datrs/
|
|
|
|
[datcxx]: https://datcxx.github.io/
|
|
|
|
[git.autonomic.zone/hyperpy]: https://git.autonomic.zone/hyperpy/
|
|
|
|
[this blog post]: https://blog.datproject.org/2020/05/15/dat-protocol-renamed-hypercore-protocol/
|