hardlinep2p
upspin
hardlinep2p | upspin | |
---|---|---|
12 | 20 | |
36 | 6,226 | |
- | 0.2% | |
1.8 | 6.0 | |
over 2 years ago | 16 days ago | |
Python | Go | |
GNU General Public License v3.0 only | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
hardlinep2p
-
HomelabOS – Your offline-first privacy-centric personal data center
I really wish there was something like Tor hidden services, but without the hidden part, just the ability to access something in a performant p2p way with a crypto url. That would make self hosting a bit easier (Although I still wouldn't even think about doing my own email server!).
I had a proof of concept working( https://github.com/EternityForest/hardlinep2p/blob/main/hard...) but it used kivy for the mobile app and I decided I wanted fewer one-person-projects in my life.
-
Is private 'web3' the future of self hosting?
I started an attempt(https://github.com/EternityForest/hardlinep2p), but I wasn't using BEP, instead I had a custom protocol that's like
-
Ask HN: Is it time for a home network TLD with TLS?
Yes, it is 100% time fot that.
Mozilla FlyWeb was close, but didn't handle remote access. It could have been extended to, but they dropped it.
I wrote a proposal here for how this could be done with Bluetooth-like pairing, using URLs that embed a certificate hash, a random sequence as an extra security layer, and a lookup URL that one can ask where to find the host for a service, for access over the WAN.
By using a URL instead of normal non-HTTP DNS, the lookup URL can be another web service self hosted using the same TLD, or a Data URI if one is hosting from a static IP.
No part of the URL besides the key is used to determine the origin for CORS and local storage, so you can change discovery methods and the random string freely.
Initial connection is by directly sending a link, or by LAN discovery.
Unless discovery is enabled and you are on the same network, it should be impossible to connect without already knowing the URL, so even if your home automation hub is very badly coded, they can't even start hacking it till they find your URL, which can't be found just by sniffing(Because of that random string).
Clients track the "last seen" address of servers, so even if lookup goes down, access still works until your home IP changes.
When nodes connect over LAN, the server sends it's "Find me on the WAN at" IP. So even with no discovery server at all and no static IP, it creates a very convincing illusion of "just working" 99% of the time.
Which means that if you buy a device that uses a cloud lookup service, and they drop that service, your device will still be remote accessible, most of the time. Which might be good enough, or at least good enough to get by until you can find a more permanent solution.
Proposal:
https://github.com/WICG/proposals/issues/43
And a partial implementation of a very close version(Lookups always use OpenDHT in this), plus a notetaking app based on it.
https://github.com/EternityForest/hardlinep2p
I really think this is one of those critical missing technologies that would really enable a lot of amazing things.
- Web3 Can’t Fix the Internet
- Does my weird IP idea exist?
- P2P personal notetaking with a distributed database in Python
-
Breaking Tech Open: Why Social Platforms Should Work More Like Email
Github is here, still has some Python version compatibility work to do: https://github.com/EternityForest/hardlinep2p
- Drayer Journal: Self-hosted Android/Linux notetaking and calculations with P2P "No domains needed" sync
- From Independent Open Source - Software server to Protocols and Encrypting?
- New beta self Hosted personal wiki/notetaking app, no domain/cert/dynDNS needed, Android/Linux supported
upspin
-
I Moved My Blog from IPFS to a Server
Super intriguing. Thanks for sharing!
It reminds me a bit of an early Go project called Upspin [1]. And also a bit of Solid [2]. Did you get any inspiration from them?
What excites me about your project is that you're addressing the elephant in the room when it comes to data sovereignty (~nobody wants to self-host a personal database but their personal devices aren't publicly accessible) in an elegant way.
By storing the data on my personal device and (presumably?) paying for a managed relay (and maybe an encrypted backup), I can keep my data in my physical possession, but I won't have to host anything on my own. Is that the idea?
https://upspin.io/
-
Educational Codebases
There are a few Go projects meant to be learned from:
- https://github.com/pion/opus for to learn audio
- https://github.com/benbjohnson/wtf for overall production quality
- https://github.com/upspin/upspin difficult to explain, personally I'm not a fan of the errors
-
Fundamentals to Learn
You could also take a look at some real-world open-source projects. I like upspin for its idiomatic approach.
- Examples of Good Go Repos
- Examples of an idiomatic API project
-
Best practices of validation on web apps?
For example, Rob Pike's upspin places all its validations in the separate package. Do you agree with that approach? Which yet proven options there are?
- Is there a good example of an open source non-trivial (DB connection, authentication, authorization, data validation, tests, etc...) Go API?
-
Ask HN: What Are You Working on This Year?
Just a few projects that could perhaps interest you in terms of design of your own solution :
Upspin: https://upspin.io/
- Upspin: A framework for naming everyone's everything.
-
proposal: Go 2: error handling: try statement with handler
The early error wrapping work which emerged out of the Upspin project, that eventually made its way into the errors package, included stack traces in the wrap error. This would provide exactly what it appears you seek.