hyperpy.decentral1.se/index.md

65 lines
2.8 KiB
Markdown
Raw Normal View History

2020-07-07 14:48:18 +00:00
## Hypercore Protocol in Python
2020-07-07 14:11:23 +00:00
2020-07-08 09:32:31 +00:00
> [hypercore-protocol.org](https://hypercore-protocol.org)
2020-07-07 14:11:23 +00:00
2020-07-07 15:13:59 +00:00
An implementation of the prole2prole protocol in Python.
2020-07-07 14:11:23 +00:00
2020-07-07 14:48:18 +00:00
### Progress
2020-07-07 14:11:23 +00:00
2020-07-07 15:07:25 +00:00
> [github.com/hyperpy](https://github.com/hyperpy)
2020-07-07 14:48:18 +00:00
- [ ] [simple-message-channels](https://github.com/Hyperpy/simple-message-channels)
- [x] [pyvarint](https://github.com/Hyperpy/pyvarint)
- [x] [hypercore-crypto](https://github.com/Hyperpy/hypercore-crypto)
- [x] [merkle-tree-stream](https://github.com/Hyperpy/merkle-tree-stream)
- [x] [flat-tree](https://github.com/Hyperpy/flat-tree)
2020-07-07 14:11:23 +00:00
2020-07-07 15:13:59 +00:00
### Join In
2020-07-07 14:11:23 +00:00
2020-07-10 09:52:14 +00:00
Feel most welcome to join! Hyperpy is a non-commercial volunteer-run project
which currently receives no funding. We hope the funding situation will change
but right now, we're doing it because we think it is important and try to make
time for it alongside the rest of \$life. With that said, please do [come and
say hello](#get-in-touch)!
2020-07-10 10:00:05 +00:00
We are tracking our progress on [this project board](https://github.com/users/decentral1se/projects/1).
2020-07-10 09:52:14 +00:00
The two main needs we have right now are are 1. applying for grant funding 2.
python programming.
Regarding the programmming, we need help implementing the remaining modules
that make up the dependency graph of Hypercore. That does involve some pretty
gnarly Python programming. Some modules are easier than others, so its good to
pick something that interests you. In general, the process of implementing a
module looks like this.
1. Look at [this graph](https://datcxx.github.io/hypercore.svg) of the
Hypercore dependency graph and pick a module that is not already implemented
and seems interesting to you.
1. Try to understand the high-level of what module is trying to achieve. Then,
read the Javascript. If you need help from the implementors of that module,
you can most likely find them hanging out in [the Hypercore protocol Discord
server](https://discord.com/invite/ga5hxGf), they are a friendly bunch.
1. Before starting, you'll need to investigate if the ways of doing things in
the Javascript module can be translated to Python. For example, how NodeJS
streams work will not easily translate to the way we use streams in Python.
It is good to have an idea of what will need to be changed / created /
adapted to before diving into the implementation.
1. Finally, go ahead and implement the module! If you like, you can use [this
Python package
cookiecutter](https://git.autonomic.zone/decentral1se/pypkgtemplate) to get
started quick and use the same configuration as the other modules.
2020-07-07 14:11:23 +00:00
2020-07-07 14:48:18 +00:00
### Get in Touch
2020-07-07 14:11:23 +00:00
2020-07-07 14:48:18 +00:00
We're lurking in a few places...
2020-07-07 14:11:23 +00:00
2020-07-07 14:48:18 +00:00
- `#hyperpy` on [cabal.chat](https://cabal.chat/)
- `#hyperpy:autonomic.zone` on [matrix](https://riot.im/app/)
- `#hyperpy` on [freenode](https://webchat.freenode.net/)
2020-07-07 14:11:23 +00:00
2020-07-07 14:48:18 +00:00
### Other Implementations
2020-07-07 14:11:23 +00:00
2020-07-10 09:52:14 +00:00
- [Datrs](https://github.com/datrs/)
- [Datcxx](https://datcxx.github.io/)