Catalog(/p2p/)

Peer-to-peer technology


New Thread
Name
×
Email
Subject
Message
Files Max 5 files10MB total
Tegaki
Password
[New Thread]


Project Gladden has been released:
https://gitgud.io/threshold862543/gladden

Browsing-only gateways:
https://gladden.peerchan.net/landing/index.html
http://bxvmrzad6nlz6w5tpw6hb7mpjco7qre5dt2p5zej5xjyggbswpaukuid.onion/landing/index.html


Peerchan is a fork of jschan using Peerbit to store posts and files. This allows for posts and files to be distributed among users in a peer-to-peer manner. Peerchan is still in development. peerchan.net serves files traditionally over http from the Peerbit backend, but you can also participate in p2p content retrieval and hosting using peerchan-peer, which is still in its early developmental stages.

Links:
>peerbit:
https://peerbit.org/
>peerchan source code:
https://gitgud.io/threshold862543/peerchan
>peerchan-peer client source code:
https://gitgud.io/threshold862543/peerchan-peer

Feel free to ask questions, report issues, make suggestions, or otherwise contribute.
hi
https://www.youtube.com/watch?v=POBN5PMYfRE
This looks really interesting but sadly, I don't understand much of it.
Could be useful for making P2P networks more efficient perhaps?
Can't I create Gladden node under Whonix 17 WS? Connection just drops without much additional errors. Runned with NPM not yarn. Well kind of expected this.
Debian 12 works, except:
Starting Server at 8000:127.0.0.1
Failed to get posts for board "help".
TypeError: Cannot read properties of undefined (reading 'documents')
    at Module.getThreadsWithReplies (file:///home/user/gladden/dist/db.js:183:50)
    at file:///home/user/gladden/dist/server.js:587:66
Failed to open homepage
TypeError: Cannot read properties of undefined (reading 'identity')
    at Module.clientId (file:///home/user/gladden/dist/db.js:58:19)
    at file:///home/user/gladden/dist/server.js:799:23
Successfully initialized Peerbit node.
ali+kmHmL+4C7+5FDp61r7emlLkpT6reGYYszD9IGb0=
{ replicationFactor: 1 }
Successfully opened Files Database.
{ replicationFactor: 1 }
(node:7504) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(Use node --trace-warnings ... to show where the warning was created)
Successfully open Posts Database for "landing".
{ replicationFactor: 1 }
Successfully open Posts Database for "help".
(node:7504) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:7504) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
file:///home/user/gladden/node_modules/@peerbit/stream/lib/esm/index.js:1104
                    deliveryDeferredPromise.reject(new DeliveryError(At least one recipent became unreachable while delivering messsage of type ${message.constructor.name}} to ${ev.detail.hashcode()}));
                                                   ^

DeliveryError: At least one recipent became unreachable while delivering messsage of type DataMessage} to P8xNaszfuq4rEZQc5mb2u5ccFQsnCC46+KPd9mG8RcM=
    at DirectSub.onUnreachable (file:///home/user/gladden/node_modules/@peerbit/stream/lib/esm/index.js:1104:52)
    at [nodejs.internal.kHybridDispatch] (node:internal/event_target:786:20)
    at DirectSub.dispatchEvent (node:internal/event_target:721:26)
    at DirectSub.dispatchEvent (file:///home/user/gladden/node_modules/@libp2p/interface/dist/src/event-target.js:43:30)
    at DirectSub.onPeerUnreachable (file:///home/user/gladden/node_modules/@peerbit/stream/lib/esm/index.js:610:14)
    at DirectSub.onPeerUnreachable (file:///home/user/gladden/node_modules/@peerbit/pubsub/lib/esm/index.js:299:15)
    at DirectSub.removePeerFromRoutes (file:///home/user/gladden/node_modules/@peerbit/stream/lib/esm/index.js:580:18)
    at Timeout._onTimeout (file:///home/user/gladden/node_modules/@peerbit/stream/lib/esm/index.js:1074:30)
    at listOnTimeout (node:internal/timers:569:17)
    at process.processTimers (node:internal/timers:512:7)




By the way, yes you p2p'ed storage - but 
a) as far as I understand (not far), you haven't p2p'ed computation - which results in more like "selfhosted imageboards list" experience, then actual p2p freedom of communication.
b) is storage propagated to peers? If I turn node off, will that delete everything? If yes that would be too vulnerable for law enforcement to be usable.

Also recaptcha is cancer don't add that, better add some computational captcha that does not require user interaction, maybe. Like miner captchas. If anybody would like to spam they would do that regardless as any captcha is remote-solvable.

Also why no proxy parameter for node nor for client?
There should to be a more convenient way for users to do p2p browsing and posting, namely an in-browser js frontend. To get that working, the next steps for development are:

- port captcha to peerbit
- get captcha working in peerchan-peer client
- create in-browser js client capable of browsing
- add posting functionality to in-browser js client
I've been working on a new project, which is based on a lot of lessons I've learned during peerchan's development. The key difference is that it's basically going to be p2p from the ground up, instead of a hybrid system with a mediator node. Instead of moderators, mediators, validation per se, instead peers are free to moderate content locally, and then the idea is that you can subscribe to others or whitelist them as users you accept as a moderator. Based on discussions here, >>>/feedback/, and on other sites, this seems like a more refreshing course of action as we can work on the key aspects of it without worrying about porting all functionality from jschan per se; certain things are more suited to a server-client model than a p2p model, so instead of finding the middle ground with a temporarily hybrid system and gradually morphing it, we can instead go whole-hog into the side we actually want, the p2p side.

Here's an example interface showing how you can locally delete files you don't like.
Just got some access control stuff working and upgraded peerchan.net to where a list of keys is stored in the database to control which nodes can directly write to it. This paves the way for p2p posting via the peerchan-peer client, which is the next thing to work on.
The mechanism I'm currently thinking of is that there will be a separate database of "proposed posts" that any user can write to, and only the mediator server (for now) can delete from. The mediator server keeps track of new proposed posts in this pool, and when it finds a new one, it validates it and then does things like adding the timestamp, default name if the user didn't enter a name, checking the character limit, and things like that. Then if everything is valid it writes the validated/timestamped/etc post to to the posts database that frontends like peerchan-peer render from.

In the future I'd like to expand things so that people creating their own boards can also have root access and validate posts that are added to their own board without using the mediator server (eg. peerchan.net) as a validator server.

Let me know if you have any ideas or alternatives around this as I'm curious.
dead site kek
Here's one:
In the frontend: messages in a thread appear out of order
ITT we brainstorm about how to prevent unwanted influxes of newcomers that change the culture of boards such as this one. Preferably ones that can be implemented in a P2P way.

For example: they could require a quorum of existing users to approve new users.
This would probably require some sort of identity based on i.e. asymmetric crypto. But users could stay anonymous using ring signatures.
I forgot what was said in the previous discussion before everything was wiped.
>>1
>but you can also participate in p2p content retrieval and hosting using peerchan-peer, which is still in its early developmental stages.
Is this for creating your own frontends?

Show Post Actions

Actions:

Captcha:

- news - rules - faq -
jschan 0.0.0