/p2p/ - Peer-to-peer

Peer-to-peer technology


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


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


ZAr3JPtWJyDK16sBgwyEJiIy8IBglPjwCTEdLivxgMXdsy1eBN_p3rkOck98alWrG3PhVKGbYvc9g65ymSis38UwKwEWSV-Fd-pZXe67ePfmtQI-Kv3vErdoZn70owLIT_IsNSYoNjsJo-qLrlePY2oIAwC_VhjDZAL17MyMCAuQlS5yz5kNX9hV6ST4ifK84XGQKCE3BpLx2droeDrOJq9kDIbW0JijSp51IH8u6mfudgSggUBG9oUAZO.jpg
[Hide] (77.1KB, 800x542)
sample_427726d53d8dafcef064be50f743586d.jpg
[Hide] (223.8KB, 850x601)
422f1c9f4f2bc61e32e5cabad8f806fc.jpg
[Hide] (277.8KB, 1021x750)
16634024906050.jpg
[Hide] (665KB, 1920x1079)
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?
Replies: >>61
>>55
>Okay gladden does not have client nevermind
Okay it's both client and server.

I realized that I don't understand anything about this software because there are no peers I could connect to (and no peer-discovery system of course) and test.
Either way, I believe multiple-nodes system won't do, even with proper peer-discovery, it's not p2p enough, basically smallboards with extra steps, and we know that smallboards are dead\short-living.
DHT would do. Distributed (Threads) Hash Table, synced across all p2p users, to which anybody could broadcast new thread or new post + peer ID to fetch text\media from. Also each client could publish list of threads it has resources for, to avoid everyone connecting to peer who initially published post. To avoid DHT growing too big, clients can reject and delete posts that are too old. But all that would not be easy to implement (I'm not saying Gladden was easy).
Replies: >>58
>>56
>I realized that I don't understand anything about this software because there are no peers I could connect to (and no peer-discovery system of course) and test.
wow discovery finally works! I can see boards! Great this is something
Well not all the boards, just /landing and /help. Wonder why
And another reason for DHT instead of boards - it would be unmoderatable. You know, in the dawn of internet there was court case about bad content and moderation, and a low that ruled that interned providers are not responsible for content they provide as they're not trying to moderate it? It would not be applicable here, but logic is same. Who could be held responsible for content, if content is being retrieved not from original poster, but from redistributing peer, who has it just to access broad network? If I post some terrorism or cp on BTC blockchain (which is possible), would that make all people who download it to operate nodes and share tx data to satisfy API request - criminals? I mean scale does blur responsibility for law enforcement, so censorship-resistant tech should target distribution.
TornadoCash is p2p, and even when LE sent author of software to jail for "money laundering" in NL, shutted down main domain - it continued to operate.
>>54 (OP) 
>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.
The order of log messages maybe makes me think you had an open page attempting to access /help before the client was initialized. But the main error:
>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()}));
is a known issue with Peerbit.
https://github.com/dao-xyz/peerbit/issues/280
Hopefully it will get fixed, basically there just needs to be better handling of situations where a peer disconnects mid stream. Actually.. I'll see about adding some better error handling to Gladden actually, since this is one of the key stability issues presently.

>as far as I understand (not far), you haven't p2p'ed computation
Computation is local-first pretty much, so validation of posts (both yours and other poster's) to the valid-post criteria occurs on your local machine.

>wow discovery finally works! I can see boards! Great this is something
Glad you got it working
>Well not all the boards, just /landing and /help. Wonder why
Oh you only listen to /landing/ and /help/ by default. You have to manually add other boards through the homepage panel "Add Watched Board", or by editing config/watchedBoards.json.
>And another reason for DHT instead of boards - it would be unmoderatable.
This is how it works already, boards are just essentially just topics that your node can decide to listen to. When you add a board, you are broadcasting to the other peers that you are listening for posts on a given topic. The indexing and organization of posts into threads with a given order occurs locally.
Files however are currently stored in a global pan-board pool, and files are hash-addressed, so it's kind of like a DHT already.
Replies: >>62 >>63
>>61
Okay I added some better error handling for DeliveryErrors in the latest version. Hopefully that not crashing will lead to more stability and data availability overall lol.
>>61
>You have to manually add other boards through the homepage panel "Add Watched Board"
Which is what I did and saw new empty board, even when that was /b, /a, /vn or else mentioned in /landing.
Replies: >>64
>>63
Loaded new boards posts after restart
Replies: >>65
>>64
Hmm so it's working now that's good. Did you get any errors in the console when it wasn't loading?
Replies: >>66
>>65
Cant find exact moments of malfunction to say
Were you eventually able to get it working  with whonix?
Replies: >>69
>>68
Whonix Workstation - no, so I'm using debian-12 VM with network from Whonix Gateway. I doubt that this setup could be popular and proxy option still desired for most people to use.

So I installed it again on whonix ws 17, browser error:
Unable to connect
The connection was refused when attempting to contact 127.0.0.1:8000.

logs:
> Gladden@0.0.0 start
> node ./dist/server.js

Starting Server at 8000:127.0.0.1
Successfully initialized Peerbit node.
gwfgE15Oj9QRkJjy2qGA+ApjyQ4r48WMYeUG005H4SI=
Opening files database... { replicationFactor: 1 }
Opening posts database for /landing/... { replicationFactor: 1 }
Opening posts database for /help/... { replicationFactor: 1 }
Successfully opened posts database for /landing/.
Successfully opened posts database for /help/.
Successfully opened files database.
(node:14354) 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)
(node:14354) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:14354) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:14354) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
(node:14354) MaxListenersExceededWarning: Possible EventTarget memory leak detected. 11 abort listeners added to [AbortSignal]. Use events.setMaxListeners() to increase limit
{"level":50,"time":1710922549479,"pid":14354,"hostname":"host","module":"shared-log","err":{"type":"Error","message":"Failed to resolve block: zb2rhhcLwbV4FNJSNvFtJpvqGoLv3d3BCgPyJXuPrdGnvvNh1","stack":"Error: Failed to resolve block: zb2rhhcLwbV4FNJSNvFtJpvqGoLv3d3BCgPyJXuPrdGnvvNh1\n    at Entry.fromMultihash (file:///home/user/gladden/node_modules/@peerbit/log/lib/esm/entry.js:526:19)\n    at async Log.join (file:///home/user/gladden/node_modules/@peerbit/log/lib/esm/log.js:620:18)\n    at async SharedLog._onMessage (file:///home/user/gladden/node_modules/@peerbit/shared-log/lib/esm/index.js:576:25)\n    at async RPC._onMessage (file:///home/user/gladden/node_modules/@peerbit/rpc/lib/esm/controller.js:92:42)"},"msg":"Failed to resolve block: zb2rhhcLwbV4FNJSNvFtJpvqGoLv3d3BCgPyJXuPrdGnvvNh1"}


I retried request with curl and it shows some data at least, unlike tor browser. I know 100% that tor browser works fine with localhost proxy, but I don't know if it can access localhost servers, or can it access localhost servers on whonix ws specifically.

curl http://127.0.0.1:8000/home
<!DOCTYPE html><html><head><title>Gladden - Home</title><link rel="stylesheet" href="/chalk.css"><script>let deleteMode = '';
and it goes on
Replies: >>70
>>69
UPD: I checked with firefox appimage on whonix ws, I'm able to see boards content but images are cross emoji
Replies: >>71
>>70
Also I posted 2 messages from debian VM couple minutes ago and I cant see them from whonix ws lol. And from debian VM I cant see post from whonix ws VM, even though:
Post submitted successfully


Logs are spammed with this:
{"level":40,"time":1710924428820,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924429657,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924431994,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924441058,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924443685,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924448248,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924452238,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924453225,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924457030,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
{"level":40,"time":1710924463150,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}
Replies: >>72
>>71
>couple minutes ago
now that's about an hour ago and I still can't see images + I can't see debian's messages at whonix + whonix's messages at debian
Replies: >>73
>>72
1.5 hours, no red cross emojis anymore but still no images. Now I can see debian's messages at whonix, those sent 1.5h ago and 25 minutes ago. Also now I can see whonix's messages at debian. Weird.
Replies: >>74 >>75
Thanks for the logs and info.
>{"level":40,"time":1710924428820,"pid":14354,"hostname":"host","module":"lazysub","msg":"Recieved message that did not verify PubSubData"}

I've encountered a similar issue with windows:
https://github.com/dao-xyz/peerbit/issues/283
Still not sure what causes it but there seems to be some (temporary or conditional?) inability to verify database entries on some systems. Like you experienced, it didn't work on windows but then some time later after rebooting the node it worked. It's puzzling but hopefully we can get to the bottom of it soon.

>>73
So if you don't see the red crosses, that means the files are "present" but the chunks aren't being streamed to you properly. I wonder if it's something to do with the buffer size on your Whonix setup. If you don't mind, could you please experiment with  reducing this bufferSize variable to a lower value?

https://gitgud.io/threshold862543/gladden/-/blob/master/dist/server.js?ref_type=heads#L214

Or perhaps data streaming in the way it's implemented here in generally isn't working with your setup.

Is there always a pretty long delay between being able to see new posts across your machines or has it become relatively fast after a while?
Replies: >>75 >>76 >>77
brokenimage.jpg
[Hide] (21.2KB, 707x801)
>>73
>>74
One thing also. Do you have "broken image" icons or does the page simply just keep "loading" without end?
Replies: >>76 >>77
>>74
>>75
Oh also, if you post an image on the Whonix system, are you able to see it locally?
Replies: >>77
>>76
>>75
>>74
As of now, gladden works on whonix vm. It even syncs new posts in seconds rather than hours, images working etc. So to replicate, I'd had to install it fresh, maybe later. Imo this could be non-whonix-specific issue
[New Reply]
22 replies | 5 files
Connecting...
Show Post Actions

Actions:

Captcha:

- news - rules - faq -
jschan 0.0.0