[ home ] [ suggest ] [ soy / qa / g / pol / raid / incel / int / a / muv / qst / tv / r9k / r / giga / x ] [ b / sneed / fap / webm ] [ overboard ] [ rules ] [ blog ] [ kuz ] [ wiki ] [ dailyjak ] [ booru ] [ archive ]

/g/ - Technology


Email
Comment
File
Password (For file deletion.)

Janitor applications are now being accepted. Apply here
Kuz will soon depart again, and the site will once more be handed back to moderator control.

File: 1661345565857.png (22.67 KB, 663x668, soot-computer.png) ImgOps

 No.300[Last 50 Posts]

>/g/ is up for 2 days and still no monthly programming thread
yikserino. ITT talk about what you're working on.

 No.301

Whats a good project to do for my CV for web development to display 'jeet skills in JavaScript

 No.302

>>301
you could try making your own dynamic HTML renderer for ${placeholders} or something. You link a JS object to a placeholder in the page, and replace that placeholder with that object's .render() output, and events sent to the generated HTML will be dispatched to the JS object.

 No.311

currently working on a self-hosted compiler for my own programming language.

 No.312

>>311
post source

 No.313


 No.314

>>312
>>313
I'm currently doing a huge rewrite of the project's architecture (generalised compiler stages), on the rework branch. There isn't any documentation yet.

 No.315

Due to the fact that my bootstrap compiler is directly translating the parsed AST into C++ code, I'm very limited in the amount of language features I can actually use, and the code I write is very C++-like. Once I have a fully working implementation of the language, I can then migrate to better techniques (if I still have the drive to do that). Stuff like coroutines, better type inference, better metaprogramming, etc.

 No.345

Currently working on forking jschan to use the p2p database OrbitDB instead of MongoDB.
https://gitgud.io/threshold862543/orbitchan
Just started recently but made some progress today.

 No.362

File: 1661434323055.mp4 (2.81 MB, 640x480, Hal fixing a light bulb (f….mp4) ImgOps

>>345
cool project. I once wanted to write a P2P chan, but I never really got far. I noticed I could re-use the network layer code for many other projects, so I designed a generic P2P network layer, then to implement that, I realised that I'd want to use coroutines, and then I realised that C++ didn't support them yet at that time, so I wrote a coroutine library, and then I started working on my own programming language, into which I wanted to add native coroutine support.

 No.432

>>362
>webm
i lol'd
also nice, how far did you get?

 No.435

>>432
currently, I have a rudimentary bootstrap compiler that just parses my language and then translates the parsed AST into C++, but it's buggy due to C++ being spastic. Right now I'm rewriting my self-hosted compiler to have a generalised architecture where I can easily add new compiler stages and AST transformations in the future.

 No.439

>>432
>>435 (cont.)
I got some nice features already that make it superior to C++, such as "const?" which allows me to implement a function both as a const member function and as a mutable member function, and then all occurrences of const? in the function are replaced by nothing or const depending on the situation. In the final version, references will also be much more constrained than in C++, so if you pass something as a reference, the receiving function cannot take the address of that, and you cannot store references as members of classes. Effectively, this makes it impossible to propagate a reference outside of its lifetime, and sideeffects can only happen during the execution of the function they have been passed to, and not during later executions.

 No.552

File: 1661721816882.png (6.19 KB, 191x68, ClipboardImage.png) ImgOps

Finally, the self-hosted compiler is error-free (as in, I can build it with the bootstrap compiler), and I can now start implementing the real feature set of the language in it. Right now I only have the parser stage fully functional, but with the new compiler architecture, new stages will only take a fraction of the effort.

 No.570

File: 1661787189263.png (17.08 KB, 600x700, 1603054027592.png) ImgOps

>conditional jump depends on uninitialised value

 No.584

File: 1661818068816.png (128.03 KB, 834x539, ClipboardImage.png) ImgOps

>src/ast/global.rl:10:15: value g not covered in strict type switch (consider TYPE SWITCH?(...)) (rlc::ast::[Stage]GlobalMask)
Just added error diagnostics for type switches. When you do a strict type switch (without the "?"), and the type is not covered by the switch, then it throws a (string, string) tuple containing the code location of the switch and error message, as well as the actual type name of the switched value.

 No.587

>infinite recursion when mutually including files
lol it did work before the rewrite, I'll have to check again how exactly I had implemented that.

 No.588

File: 1661828705961-0.png (114.78 KB, 1024x1024, orbitchan_logo_new.png) ImgOps

File: 1661828705961-1.png (117.15 KB, 717x1430, posts.png) ImgOps

File: 1661828705961-2.png (162.55 KB, 2000x1258, orbit_db_logo_color.png) ImgOps

>>345
Today I got the posts, now stored in OrbitDB, to load on the index and board pages. Also published a general outline for what I'd like to do with this project going forward:
>Convert the whole database system to OrbitDB.
>Switch to serving files and post data through IPFS.
>Disentangle the database structure into a more hierarchical, fragmentary form.
>Dissolve the server into more of a validation system for a user-created, swarm-hosted, board, thread, and post factory.
>?????

 No.608

>>570
he is right

 No.628

I'm not working in anything because programming is for pussies

 No.632

File: 1661861127954.jpg (173.12 KB, 490x1031, tranny-markiplier.jpg) ImgOps

>>588
sounds pretty cool. How does uploading work? Do you have to send it to a user-hosted server that then sends it to its peers for replication? Or is there a master server?
>>628
>t. full-time CoC author

 No.635

>>632
dust

 No.636

File: 1661864614012.gif (152.57 KB, 251x338, markiplier-point-yikes-roc….gif) ImgOps

>>635
>d-dust!! I'm not a tranny!
yikes

 No.637

>>636
that dust is pro tranny albeit.
Not an anti tranny gem.
Also you are the ones who said that "programming is tranny" and now suddenly it isn't.

 No.638

>>637
>Ugly markiplier in a dress is "pro tranny"
retard faggot, check your eyes.
>Also you are the ones who said that "programming is tranny" and now suddenly it isn't.
I personally never said that and trannies can't do anything right because they chose the path of Satan and death.

 No.639

>>632
Right now yeah there's a master server that has the only write access to the database (though I haven't really handled the access control yet). Other peers can listen and replicate the database amongst themselves (p2p) but not write to it.
Eventually though I want to have it so someone can say, create their own thread and start seeding it from their browser and have their browser node be the one with write access that other peers send requests to for reply validation (making sure the body has at most a certain number of characters, etc)
Instead of trying to architect all of that at once, I'm just jumping in and doing a multi phase approach. Hopefully each phase will make the path to implementing the next one more clear.

 No.642

>>639
sounds cool. I suggest using a proof of work or a proof of capacity (similar to BurstCoin) for thread creation and identity management. That way, you have to invest work to create a valid identity, and others can filter your identity, making spam moderation possible.

 No.666

>>639
I don't think it will work well if you require the thread creator to stay online full time. Everything needs to be independently replicated.
And the most important question, what if someone spams cp? I assume the thread creator has to act as the janny. Only board owners or thread owners should be able to delete threads. Each entity of boards, threads, and posts needs to be independent, and only if you are directly above or at your hierarchy should you be able to delete stuff. That way it's also harder for board owners to selectively censor posts, since they can only delete whole threads and not individual posts in the thread. (unless they want their board to be empty and dead because of their excessive jannying) You would have to implement a public-private key system to allow only certain people to delete stuff, having signed censorship requests appended to the distributed posts/threads databases. That way people can view and seed the censored posts and threads if they wish to do so.
For antispam we could have thread/board owners require captchas and/or proof of work challenges. You could make the challenges extensively difficult and funnel the results to a mining pool. That way people are financially incentivized to create boards and threads. To incentivize posters, you could even require it for quoting posts so they earn real money for every (You).

 No.685

>>666 (checked)
See my post:
>>642
Moderation should be client-side, but there should be "curators", people you can subscribe to to use their banlist. Every poster needs to have a cryptographic identity that's hard to generate, so that massive identity switching is more or less expensive and therefore all posts by an ID can be banned. You can keep multiple IDs to prevent deanonymisation. Everyone can be a curator.
As soon as you have someone who has the authority to delete stuff for everyone, you have censorship, and that person is going to be a target for CIA etc. There should be no special roles, otherwise you introduce single points of failure.

 No.691

File: 1661953139063.gif (479.38 KB, 220x168, 3d-saul-saul-goodman.gif) ImgOps

>>642
>>666
>>685
SIRS just use Kleros for moderation. It's a dispute resolution system built on Ethereum where randomly selected jurors vote on each case, with monetary incentives built-in that force them to vote only for THE TRUTH.

So I think it could work like this: Before posting on the 'chan, you have to make a $20 deposit as a kind of 'promise' you won't break the rules. If someone spots you making a rule-breaking post, they can place a $20 deposit against you to challenge your post; a case is then sent to Kleros where jurors vote on whether or not you broke the rules. Once Kleros reaches a verdict, the loser's $20 deposit goes to the winner (minus jurors fees). Also as long as you don't break the rules, you can withdraw your $20 deposit at any time (with a 1 day waiting period to give people enough time to challenge your posts). This way you only ever have to pay anything if Kleros determines you have broken the rules.

This has the following nice properties:
>moderation is fully automated: no need to manage a team of mods since the users themselves act as mods thanks to monetary incentives
>moderation is 100% fair: Kleros jurors are incentivized to evaluate cases objectively according to the rules, instead of a biased cabal of jannies banning people they don't like
>moderation is 100% transparent: in a Kleros case, all submitted evidence & juror votes are publicly available
>is Sybil-resistant: attackers have to waste $20 for every rule-breaking identity they create
>jannies no longer do it for free: they make $20 per ban

for more information pls read https://kleros.io/static/whitepaper_en-8bd3a0480b45c39899787e17049ded26.pdf

 No.695

>>691
>blockchain disputes for image board administration
>you have to dox yourself to make posts
kek, never change

 No.696

>>695
tornado.cash doe

 No.697

>>695
Also there's literally NO OTHER possible system with IDs that are hard to generate. Literally none. Prove me wrong.

 No.698

I want it be as fast, lightweight, and easy to to use as a typical imageboard. I am avoiding jumping to blockchain as a solution because there is a general gross misunderstanding of the purpose of blockchain, which is to prevent double spending of money in a peer to peer network by providing a canonical ordering of events. This is not necessary in a distributed website.

Moderation can be handled via write access control which works via public-private keypairs under the hood.

The original poster of a thread doesn't have to stay online, peers can host the post once it gets going. And initially I want to have the central validation server serve also as a seedbox for posts and files to boostrap the swarm. It would also have write access and the ability to write user posts to threads.

 No.699

>>697
Proof of Space signatures are easily what you're looking for. You generate (sk, pk), then generate a plot p that depends on pk, and then, to sign something, you create a space proof from your plot and attach it to the message, and then sign it. Since the plot is derived from pk, it cannot be reused.
Or you simply create an expensive PoW for your pk once, and attach that to all signatures. Depending on whether identities should also be hard to store, choose either variant.

 No.700

File: 1661956831225.png (389.25 KB, 1000x1000, calm-feraljak-toast.png) ImgOps

>>698
>I am avoiding jumping to blockchain as a solution because there is a general gross misunderstanding of the purpose of blockchain, which is to prevent double spending of money in a peer to peer network by providing a canonical ordering of events. This is not necessary in a distributed website.
anon, I'm happy to see a fellow who understands blockchains.

 No.701

File: 1661957052773.png (343.31 KB, 791x1000, 1660170568366.png) ImgOps


 No.702

>>696
>you have send your doxxed eth to a smart contract that can get you jailed in the US
>you have to pay all the gas fees for disputes and the tornado cash
>all to shit post on a p2p image board that could also be built without the blockchain

 No.706

>>698
>the purpose of blockchain, which is to prevent double spending of money
That's the purpose of Bitcoin, but not Turing-complete smart contract chains like Ethereum.

On smart contract chains, instead of only having basic "send this amount of money to this person" functionality, you can deploy general-purpose blocks of code managing their own storage, which anyone can interact with through transactions. The advantages this gives over just hosting the code on a centralized server are:
(1) the code is immutable, so no one can change the rules of how it operates
(2) transactions and their effects are uncensorable and irreversible

In particular, what this means for Kleros is that no one can stop you from using it even if you're using it for some weird imageboard, and no one can secretly handpick a jury to fuck you over.


>>702
>you have send your doxxed eth to a smart contract that can get you jailed in the US
the feds aren't going to come after you for sending $20 to tornado.cash. And tornado.cash isn't even a requirement, that's only if you really care about privacy and think the exchange you doxxed yourself to cares about your random shitposts. Also there's probably some fancy solution that uses ZK proofs that automatically makes deposits anonymous for everyone without the need for tornado.cash.
>you have to pay all the gas fees for disputes and the tornado cash
The other solutions proposed ITT, proof of work and proof of space, also cost money. And Kleros is set up so that other people are incentivized to argue your side of the case for you if you have a chance of winning, so you might not have to pay gas fees for the dispute at all. And if you win, you get 20 bucks, which should more than cover the gas fees.

 No.709

>>706
>words words words I love ethereum
the left can't meme. Ethereum is only useful for executing programs managing assets with double spend protection. If no global total ordering of events is needed, then you also don't need a blockchain. All he wanted was a way to moderate posts in a p2p image board that otherwise has no need for a blockchain at all. Kleros is a meme. You're bleeding a massive dependency into the project by making everything depend on a shitty meme smart contract on Ethereum. The servers and the clients have to connect to Ethereum to read the kleros smart contract outcomes. A simple proof of work would not introduce a massive dependency to the project and be easier to replace later, and not involve any money transfers at all.
>The other solutions proposed ITT, proof of work and proof of space, also cost money.
Ok but you don't need to make a deposit to an exchange and then pay overpriced gas fees, so it's way more efficient and cheaper overall. Also you won't need to host a blockchain node on your system. There's a difference between paying for your electricity, which might include a few more cents due to a program you run requiring a lot of computations and having to do actual bank transfers and depositing collaterals etc. just to post on an image board.
Wake the fuck up, retard.

 No.710

>>709
>paying for your electricity, which might include a few more cents due to a program you run
Question, nigger: What's stopping some random chud with a data center full of ASICs from printing a billion identities in ten seconds and using them to completely inundate every thread and every board with absolute feces? And what incentives are there for people to moderate those posts? Under my idea it's simple: what's stopping him is the immense cost, and the incentive to moderate is the $20 he generously hands out per identity. Really curious what your answer is for your PoW system.

You really haven't thought this through at all, have you? My solution may not be perfect, but at least it actually WORKS.

 No.712

>>709
couple of other points, chuddy
>If no global total ordering of events is needed, then you also don't need a blockchain.
uncensorability and immutability don't matter because... THEY JUST DONT OK?!?!?!?!?!
>Kleros is a meme
kleros is shilled by the founder of ethereum
>The servers and the clients have to connect to Ethereum
omg so difficult!!!! (not)
>Also you won't need to host a blockchain node on your system.
all you really need to host is a light node, which is easy af

 No.713

>>710
>>paying for your electricity, which might include a few more cents due to a program you run
>Question, nigger: What's stopping some random chud with a data center full of ASICs from printing a billion identities in ten seconds and using them to completely inundate every thread and every board with absolute feces?
Unrealistic and out of scope. Also, if you're super paranoid, you can use Proof of Space signatures and require, say, 100GiB plots for each identity, and set the plot difficulty so that it takes a week of nonstop computation for a normal computer, and make the plotting algorithm memory-hard. To flood under these circumstances is orders of magnitude harder and more expensive than DDoSing a traditional web service, since single-use identities take up lots of space and computation. You can even make it so that each user can specify a minimum plot size and difficulty for incoming posts, everything below the threshold will be discarded locally, in order to not force everyone to waste resources when the system isn't actually under attack, and to be able to adapt when under attack.
And someone on the class of having a ware house full of ASICs is not a realistic attacker for a niche image board. Such a person would also have lots of money, proably in the hundreds of millions, anyway, and would therefore also be able to mass-create identities in that shitty cleros court. And we don't want spam to be around for hours before the blockchain finally kicks in, and then wait for a day until the kleros court settles the case, and only then remove a post.
>What incentives are there for people to moderate those posts?
You see a post that's horrible, you ban the poster, and you will no longer see his shitty posts. No shitty posts → you will have a great time on the image board. You publish your banlist for others to subscribe to, so they also directly benefit from it, too.
<hurr but you don't get paid for it
yeah, I also hide shitty images someone posts on the 'sharty and I don't get paid for it, and nobody else even benefits from it besides me. I'm not a greedy fuck who can't do good without getting paid first.

 No.714

>>713
>Also, if you're super paranoid, you can use Proof of Space signatures and require, say, 100GiB plots for each identity, and set the plot difficulty so that it takes a week of nonstop computation for a normal computer, and make the plotting algorithm memory-hard. To flood under these circumstances is orders of magnitude harder and more expensive than DDoSing a traditional web service, since single-use identities take up lots of space and computation. You can even make it so that each user can specify a minimum plot size and difficulty for incoming posts, everything below the threshold will be discarded locally, in order to not force everyone to waste resources when the system isn't actually under attack, and to be able to adapt when under attack.
Wow, so much more user-friendly and simple than just clicking a few buttons on my metamask. Oh and since the $20 deposit is withdrawable and eth scaling is just on the horizon, my approach will be virtually free for people, meanwhile you would rather wreck their hard drives with this nonsense

>And someone on the class of having a ware house full of ASICs is not a realistic attacker for a niche image board

I was exaggerating for comedic effect, it wouldn't take a huge investment to obtain significantly more hashpower than some random chuddy imageboard user

><hurr but you don't get paid for it

enjoy doing it for free faggot, meanwhile the average users of kleroschan will be getting PAID just for browsing

 No.715

>>712
>uncensorability and immutability don't matter because... THEY JUST DONT OK?!?!?!?!?!
yeah they don't. All posts will be signed by your public key, so any tampering is impossible by anyone besides the author, and you can't just "take back" or modify something that's been replicated already. Censorability is even a good thing here, since we want to get rid of retarded posts like yours.
>kleros is shilled by the founder of ethereum
Appeal to authority fallacy. Vitalik is a fucking faggot and a retarded MIT-nigger atheist. He's literally on board with the WEF 2030 agenda for total surveillance etc. (see his cringe paper on soul bound tokens "Decentralized Society: Finding Web3's Soul" at https://papers.ssrn.com/sol3/papers.cfm?abstract_id=4105763). Therefore, anything he says has no inherent weight.
>>The servers and the clients have to connect to Ethereum
>omg so difficult!!!! (not)
Yeah, you're a no-coder so you don't know how annoying it is to bloat your tech stack with mammoth dependencies like blockchain nodes. I work in the cryptocurrency industry, so I know.
>all you really need to host is a light node, which is easy af
So instead of doing something simple and efficient like some client-side pre-computation stage to allow you participate, you'd rather have to deal with soft forks, hard forks, roll-backs, etc.? And the proper integration of blockchain events into the project's code is not trivial.

 No.718

>>715
>yeah they don't. All posts will be blah blah blah
I meant in the context of Kleros as it functions as a moderation mechanism, not all the posts everyone makes

>He's literally on board with the WEF 2030 agenda

WEE WOO WEE WOO CHUD ALARM. I guess I shouldn't mention that Kleros also got a million dollar grant from the EU then.

>Yeah, you're a no-coder so you don't know how annoying it is to bloat your tech stack with mammoth dependencies like blockchain nodes. I work in the cryptocurrency industry, so I know.

>So instead of doing something simple and efficient like some client-side pre-computation stage to allow you participate, you'd rather have to deal with soft forks, hard forks, roll-backs, etc.? And the proper integration of blockchain events into the project's code is not trivial.
All I'm hearing is "I can't code for shit so I want to offload the burden onto the users and create a terrible UX"

 No.720

also
>>713
>And we don't want spam to be around for hours before the blockchain finally kicks in, and then wait for a day until the kleros court settles the case, and only then remove a post.
just automatically hide someone's posts and freeze their ability to post when they get challenged, simple

 No.721

>>714
>Wow, so much more user-friendly and simple than just clicking a few buttons on my metamask. Oh and since the $20 deposit is withdrawable and eth scaling is just on the horizon, my approach will be virtually free for people, meanwhile you would rather wreck their hard drives with this nonsense
Hard drives aren't wrecked from being written to and read from. You might be thinking of SSDs, and it would be a one-time setup, and the concrete example I gave was with arbitrary parameters that would be sufficient to protect against an adversary with massive resources (compared to a normal user), which, as I also said, isn't even realistic. You'd have some tranny discords raiding it, and maybe some government shills, but they'd rather shill on 4tranny anyway.
>I was exaggerating for comedic effect, it wouldn't take a huge investment to obtain significantly more hashpower than some random chuddy imageboard user
So what? If you also need to have a lot of disk space for an identity, then you're also very limited in the amount of identities you can produce and store at once. You're limited by your RAM, your disk capacity, and your disk bandwidth.
>meanwhile the average users of kleroschan will be getting PAID just for browsing
yeah you're probably also using brave to collect that sweet BAT huh? how many hot pockets were you able to buy in return for your sanity and concentration? 10?

>>718
>All I'm hearing is "I can't code for shit so I want to offload the burden onto the users and create a terrible UX"
>I can't code for shit
Show me your compiler or fuck off.
>anything blockchain
>not terrible UX
pick one.

I'm not going to respond to you anymore, retard. You're delusional and clearly can't see reason, especially since you insist on shilling your shitty blockchain eventhough the guy who is working on the project already said he doesn't want to use blockchains in his project.

 No.722

File: 1661961635219.png (135.32 KB, 356x576, ezgif-2-dbb246ebd2.png) ImgOps

>>721
sorry if I made you cry, anon
*flexes*
so sorry...

 No.724

>>722
die frognigger

 No.725

>>724
was this board advertised on 4tranny or something? These obnoxious newteens are a menace.

 No.726

File: 1661962452405.jpg (45.32 KB, 550x503, 1611728330951.jpg) ImgOps

>>724
Anon, I've got some bad news...

[spoiler]I'm going to keep posting frogs anyway[/spoiler]

 No.728

File: 1661962882271.gif (57.36 KB, 498x337, peepo-laugh-point.gif) ImgOps

>>725
newchads can't stop winning KEKW

 No.730

>>726
holy fail
>>725
frogniggers migrated after fedchan went down for a week due to a simple DoS attack and their technologically illiterate admin wouldn't accept kuznetsov's offer of hosting in exchange for russian rubles

 No.734

File: 1661963667145.jpg (1.11 MB, 3264x1684, pm me cocks.jpg) ImgOps


 No.735

>>734
albeit that's not kuz shitcord account his official account isn't public afaik

 No.736

>>734
NARK

 No.737

>>730
lol. Maybe they should have used blog chains lmao. I actually enjoy frog memes, but fedchan users have sucked the soul out of it. In the old days, frogs weren't so bad. You can also see how they don't fit in with sharty culture because they don't know how to soy post. I hope that p2p image board will get built soon, I can't wait to be able to ban retards who want to derail every instance of good conversation without having to rely on stupid jannies.

 No.757

>>735
>official
>not public

 No.806

File: 1662075568670.png (1.06 MB, 2062x2000, calm-sleepjak.png) ImgOps

>self-compiling...
>compiling 75 files.
>107 files recursively scoped
>[Finished in 1.0s]
Finally finished my second compiler stage (scope population and merging of namespaces etc.). The next stage will be about resolving the meanings of names, replacing them with pointers to their target in the AST. After that, I'll do template instantiation, and then code generation, I think. Depending on whether I generate C or C++ code, I might have to do more extensive type system stuff first, as well.

 No.812

>>806
Very nice chud.

 No.816

I decided on a new developmental push for the p2p board. The first main thing will be to implement a 'distributed thread viewer', essentially an html page with js that runs an ipfs node, where you can download all of the posts and files through IPFS without going through the central server (what I'm considering calling a 'mediator' - i might use a nuclear reactor analogy and call it a 'moderator' but that has semantic baggage in an imageboard context). For that the posts database should be fragmented up on a per-thread basis. Intesting thing I'm learning about distributed databases is that having them not be monolithic, but instead be an assembly of mini-databases that reference each other via hashes, is useful.
After that, maybe then a distibuted catalog viewer.

 No.817

>>816
>download all of the posts and files
<of a given thread*

 No.821

>>816
Definitely a good design choice. You might also want to consider building a WebExtension for secure and permanent client-side identity management.
As for the catalog, you could also make it emergent, so peers advertise threads they know (or rather, their IDs) to others, and nobody has to care about a centrally maintained catalog. Or everyone can maintain his own catalog, and you can merge multiple peer nodes' catalogs or something like that. And then every single thread could be hosted by its respective OP at first or something.

 No.826

>>821
Nice ideas anon.

 No.827

I made a 4cuck scraper that lets me predict my posting number

 No.829

>>821
Something I'm debating right now is whether or not to include the thread OP in the individual "posts" database or make it its own separate thing. An interesting implication of separating them is that you could then attach a comment stream to anything. You could have different reply lists to a given thread, or another mediator could take over, appending new replies to the thread (in a seperate database) even after the original mediator stops servicing the thread. The route to the stuff you mentioned, and the "subscribing" concept is becoming a bit more clear.

 No.830

I made a 4chad scraper that lets me predict my posting number

 No.855

>>829
It makes sense to have the function to reply to arbitrary posts in a thread. Then multiple conversations can happen in the same top-level thread without getting in the way of each other too much. You could then either view the whole thread or just a discussion within a thread without all the noise around it (e.g. without bumps or whatever)

 No.856


 No.857

I stole some 4chaim scrapper that let's me predict my post number from some tranny on GitHub and then published under my name

 No.859

Due to a limitation in the current implementation of OrbitDB (only being accessible by a single process at a time), I had to go down a rabbithole trying to find a way to funnel all database queries from different node processes to single one via a websocket server. I finally found something that works and now should be able to start making everything work with fragmented per-thread databases.
The key was this library:
https://github.com/lindell/remote-function

 No.861

>>859
>third party project
>stupid limitations
>pain to use for what you want
pick three

 No.882

File: 1662389005107.jpeg (2.32 KB, 93x125, 1659322173517.jpeg) ImgOps

For orbitchan, the RPC socket thing is mainly functional. So now multiple server processes can indirectly query a single OrbitDB instance on the other side of the socket.
One limitation is the fact that there isn't currently a way to query via some sort of JSON syntax like mongodb {$set... and everything. So for now I'm just getting the whole (sub-)database and filtering it back on the client side. Fragmented databases helps make this less of an issue, but for socket-bandwidth and ease of use concerns, that could be something to address down the road THOUGH.

One issue I'm still trying address I'm not so clear on is that I managed to break CSS delivery somehow and all pages are pure html. I encountered it before so hopefully it's something unrelated. Nginx/development mode/http issues probably.

 No.883

>>882
Fixed the css issue somehow again finally lol.

 No.889

File: 1662402765925.png (68.82 KB, 585x1122, post replies.png) ImgOps

>>882
Got replies and posts/index building working properly. Now, theoretically, if I had my IPFS and everything configured properly, a user could access the database containing all OP posts on the site (which contains links to, so therefore also the individual thread replies databases).
I don't have access control set up yet so anyone could add or remove posts containing whatever information they want directly, lol.

 No.890

File: 1662407001672.png (52.56 KB, 1085x388, explanation.png) ImgOps

>>889
Basic access control is actually pretty simple in this case. You just have to pass the public key of the generating client, as a parameter during database initialization. OrbitDB handles this essentially all under the hood so you just need to pass one object in.

And it can be updated, so for example multiple "trusted nodes" could be given write access to the database in question. This could be useful for situations where the op-seeder of a thread also wants to have their thread listed on a given catalogue service, or something. As part of the mutual trust agreement between both parties, they could agree to subject their thread to the mediator's moderation, in exchange for getting its presence broadcasted as part of a canonical catalogue. Though alternatively, the OP could remain the only one with access control and the mediator could just remove it from their catalogue as they saw fit, spam considerations aside.

 No.891

>>882
>>889
>>890
Looks fun! Have you been working on this long?

 No.892

>>891
I (and other anons) have had the idea for a p2p imageboard for a while but I started this particular project a week or two ago. I'm not very experienced with web development so it has been really educative so far.

 No.895

>>892
P2P soyMMO when?

 No.897

test

 No.898

nigger

 No.947


 No.990

On the orbitchan front, I've been looking a bit closer into how peer-discovery works in IPFS.
It seems that entirely web-browser hosted js-ipfs nodes currently require a "WebRTC-Star" server to coordinate initial contact with peers. People running their own nodes, however, don't have this issue. I've been debating about what to do in light of this. I was thinking that perhaps I should implement a WebRTC star server into orbitchan so that it helps coordinate peers... but in a way that is going backwards, because it's a non-distributed element. I very much wanted to avoid people having to run their own nodes to access the posts and images, but it seems like this is somewhat of an as-yet-unsolved problem with browser-based.
In the spirit of p2p and also to make things simpler, for the time being I'm going to proceed assuming each user is hosting their own node. I think it would be nice to have a per-board setting that allows for its content to be served traditionally through the central mediator server, just like the party for example, while other boards would be only accessible via IPFS. For example /meta/ and /help/ could be viewable traditionally, but all other boards would be swarm-only. Of course, nothing stops a third party (or perhaps me down the line) from providing a gateway service or webrtc-star/rendezvous server to help browser-only users access the data, and that's a nice thing to consider as well.

 No.991

>>990
Also here's a similar project to OrbitDB that I came across, though it faces the same fundamental issue with peer discovery from a browser, it seems.
https://github.com/freenet/locutus

 No.992

>>990
>>991
godspeed chuddie

 No.993

File: 1662586927343.gif (28.96 KB, 296x444, 1661997427118.gif) ImgOps


 No.994

>>993
not using your website now kys

 No.995

File: 1662587020915.png (357.34 KB, 1469x731, 1659240780266.png) ImgOps


 No.1010

>>990
allow people to host their own servers that allow establishing direct p2p connections for browsercels. So light clients can connect to any custom rendezvous server they want. They'll then list their relay/handshake server's endpoint instead of their real IP:port in the discovery list.
>>993
colourful gem
>>995
gem

 No.1011

>>1010
Not every user can afford having an open port or even a semi-permanent IP address (phone fags). You can also make it so that you post to some other anon's node and the node is responsible for replication, not the poster. Basically a 2-type network of viewers and full nodes. Of course, everyone is encouraged to run a full node, but that definitely should be optional.

 No.1074

File: 1662760896900-0.png (104.94 KB, 632x900, 1657510151454.png) ImgOps

File: 1662760896900-1.png (7.06 KB, 411x147, ClipboardImage.png) ImgOps

>TFW libraries are larger than your code

 No.1075

>Programming le bad even though it's the most soy activity known to womankind

 No.1077

>>1074
kek, imagine not building a 64-bit computer by hand in hardcore mode.

 No.1079

>>1075
That's why is bad however

 No.1081

>>1075
>it's the most chad activity known to MANkind
ftfy

 No.1127

File: 1662922269400.png (126.72 KB, 1100x541, ClipboardImage.png) ImgOps

>>806
Just implemented proper errors being displayed when you have a duplicate declaration for things that cannot exist multiple times (functions, classes, etc.) as opposed to namespaces, which are just merged upon redeclaration.

 No.1129

>>990
I finally figured out bundling node modules for browser use, and added a prototype "p2p catalog" page that allows you to open an orbitdb database from your locally running daemon.
The next step would be to get the JSON for all the threads out of that database, and then render the catalog using that data.
However I'm having a bit of trouble actually loading the oplog of database entries, so I have to figure that out.
Also testing locally is one thing but at one point we'll have to test how it works for people on different machines (with different IPFS daemons).

 No.1130

>>1129
I might be able to help, I can set up a domain for my home server.

 No.1131

>>1127
Lookin' nice.

 No.1132

>>1130
Oh thank you for offering anon. When I get it functional on the single-machine end, I may take you up on that.
I suspect the current issue I'm facing is that, running in the browser, it's looking in the wrong disk location when it tries to load the oplog entries.

 No.1133

>>1132
I don't know anything about that stuff. But once you're at the point where multiple nodes can communicate, I'll be happy to help hosting the 'chan. Just hoping I won't get swatted for the 'p.

 No.1138

>>1133
Hehe.. well thanks. Maybe we limit access or something for testing until there's enough people to cover the timezones for moderation.

 No.1139

>>1138
idk, you can also start off with a textboard instead at first.

 No.1141

>>1139
Good point.

 No.1147

>>1141
I have a feature request: let the OP mark/highlight posts in his thread for other users. That way, if there are a lot of shills, you could highlight the few quality posts in a thread, so it gets harder to drown out the OP when he has a message to tell.

 No.1153

File: 1662993376339.png (11.55 KB, 323x570, 1622150353522.png) ImgOps

>yikserino

 No.1156

>>300
hey chuds, give a koding idea cause i'm bored as hell

 No.1157

File: 1663013697134.png (27.26 KB, 749x947, 14140 - closed_mouth craze….png) ImgOps

>picked up Stroustrup's Programming, Principles and Practices Using C++ (2nd)
>finished the Ch.4 drill in two days
how'd i do, /g/?

https://pst.klgrth.io/paste/39ra5

 No.1159

>>1147
You can already do this with tripcodes no?

 No.1160

>>1159
no, tripcodes are for identifying yourself to others, but I meant that the OP can highlight others' posts he liked. Especially in a heavily counter-shilled thread, that'd be very helpful. Even if it somewhat resembles reddits upboats, but it's OP-only and it's not about hiding posts.

 No.1161

>>1156
Make a virtual CPU and assembly language with coroutine/singlethreaded multiprocessing support.

 No.1162

>>1156
>>1161
Another thing that would be interesting is a kind of object file that can handle compiled, uninstantiated template code. I'm planning to build that once I'm done with my compiler's initial stage. Basically, I want an object format where you have a "variables" block that contains placeholders for types, functions, or numbers, a constants block which can calculate stuff based on the variables, and a code block, which contains assembly instructions that can make use of the constants.
That way, you can compile templated types and during linking, only the "variables" section has to be filled with the supplied template arguments. You can use that to instantiate templates without requiring the source code of the templated type or function.

 No.1166

File: 1663057644086.png (9.63 KB, 287x179, ClipboardImage.png) ImgOps

>>1157
SWITCHES ARE NOT IF/THEN/ELSE
https://youtu.be/TxhQQLGafZ4?t=349
you write code like a CIA MIT nigger

 No.1167

>>1157
also you can drop the goto mark;. The order was already correct anyway.

 No.1168

>>1166
now THAT is niggerlicious

 No.1171

>>1156
Another cool project would be a WebExtension that works similar to NoScript, but for WASM modules. It can run WASM code that's embedded in a site, and you can manage the permissions of the code by injecting only functionality that the user allows. That way, you can set to allow arbitrary WASM as long as it doesn't use network connections etc., for example. I'll also build that one day for my programming language, Yahweh willing. A WebExtension that provides an OS-like sandboxed environment to WASM-compiled code of my language.

 No.1172


 No.1198

>>1166
What's the functional purpose of not breaking automatically?

 No.1201

>>1198
retardation

 No.1212

>>1129
Okay... after much pondering and looking-up and trial-by-error, I have finally realized the source of the bug that was preventing me from receiving pubsub messages in the browser. It actually wasn't related to the browser at all, but was based on the fact that I was using the same IPFS daemon for both the "server" and the "client". Apparently, IPFS nodes do not receive their own messages; it takes two to tango. Perhaps there's a life lesson in that.
Anyway, it's functional now so I can just work on getting the browser to http request the local server, which should bypass any CORS issues as well. For now the user will have to run their own 'peer node' which consists of the IPFS daemon and the orbitchan functional wrapper server on top of that, but maybe that can be simplified down to a 'one-button' jsipfs node or something down the line later. Having it run outside of the browser also (I imagine) helps avoid potential issues with browser storage and such.

 No.1213

>>1212
congratulations.

 No.1216

>>1213
Thanks. It's a bit of a relief to be past that wall. Now the next steps are fairly straightforward.
Currently working on getting the catalog page to neatly put all the catalog data in the right spot after it's retrived from the local peer node server.

 No.1219

>>1216
Conceptually it's a bit interesting because the implication is that, instead of generating and serving static catalog, index, and thread html pages, there is going to be essentially 3 prototypical "pages" for browsing: thread, catalog, and index. Then the pages will dynamically fill-in and retrieve the data for these depending on what thread, etc. the user wants to view.

 No.1220

>>1219
>>1216
check out https://github.com/RmbRT/renderable.js/ if you want lightweight dynamic rendering react-style but without all the bloat. I can also assist you if you have any problems with it.

 No.1222

>>1220
Very nice, thanks anon.

 No.1225

>>1220
actually, I should update the README, since I added a lot of stuff that's not covered in the tutorial, like interactive elements with event handlers etc.

 No.1226

File: 1663363280716.png (95.65 KB, 865x873, ClipboardImage.png) ImgOps

>>1225
>>1222
Updated the readme, added interactive example (list with buttons that remove entries).

 No.1227

>>1226
lol had a mistake, the onClick function should be an arrow function to correctly capture myList as "this", fixed that in the readme.

 No.1228

>>1226
Awesome, thanks for doing all that.

 No.1230

>>1228
You're welcome. I'm really looking forward to the day where the 'chan can be used and we can finally take back anonymous online communications.

 No.1233

File: 1663369005787.png (101.73 KB, 825x1091, minimal.png) ImgOps

>>1230
If you want to mess around with it, I just uploaded a very minimalistic version of the 'peer client' server:
https://gitgud.io/threshold862543/orbitchan-peer

And I'm also welcome to any PRs you (or anyone) might want to open. For example the frontend is something I could use help with.
Though it's in a very barebones and quasi-functional state at the moment, at last the minimal functional loop (retrieving post data from a local IPFS node) has been implemented.
The main server repo:
https://gitgud.io/threshold862543/orbitchan

If you do mess with it and want some clarification on something, feel free to let me know. Maybe I'll make a chatroom somewhere.

 No.1234

>>1233
hm… I'll think about it. For now, I am quite busy with my job and outside of it I have little energy left even for my own projects, despite "only" having a 75% job.
But yeah, I think I can help out with the frontend, maybe I'll set aside one day every weekend or something, if I feel fit enough.

 No.1238

>>1234
Of course anon. Something I'm still learning in life is the importance of pacing onesself to avoid getting burned out.

 No.1241

>>1233
the fact that this is in JavaScript made me lose all interest

 No.1242

>>1241
OrbitDB is written in javascript and so are the primary two maintained modern imageboard backends (jschan and lynxchan). It makes the most sense.

The language is just a tool.

 No.1243

>>1241
>web application
>not written in javascript
pick one. Or write your own ecosystem that can replace javascript as a necessary web language.

 No.1244

>>1243
Also he may not realize but jschan is actually compatible with noscript from the user's point of view. The name comes from the fact that its a Node.js backend.

 No.1251

>>1243
You don't need javascript for the backend, hopefully in the future you won't need it for the frontend either. Just because jschan and other decent pieces of software are written in it doesn't make it a non-shit language.

 No.1256

>>1251
Okay, explain why it's BAD.

 No.1257

>>1256
>type juggling
>the "prototype" system
>two different keywords for functions
>two different keywords for assigning variables
>every single number is a float (defined in the spec)
>async for everything even if it's unneeded
>npm

 No.1258

>>1256
>>1251
not that chud but javascript is bad on several metrics:
- inconsistent fundamental type system (see how all these operations on primitives are extremely counterintuitive)
- GC language, hard to write good code in those languages because you can't control when the GC kicks in
- Syntax is awful, and had it not been designed within literally a few weeks, millions of people wouldn't have to suffer today
- The whole web stack is actually hopelessly bloated and rotten. Modern browsers offer way too much functionality which shouldn't exist and have a huge memory footprint. Javascript can easily be used to track you, as there is no capability management.
There are other points, too, but that's all from the top of my head.

 No.1259

>>1171
This could probably save web development and replace javascript.

 No.1260

>>1257
>>1258
Informative.

 No.1270

So anon I currently have a few options in terms of rendering the JSON to the page. I started to go into it naively just createElement() and appendChild()-ing but quickly realized I was reinventing the wheel in an inconvenient way. One thing I could do is use your library to make this more convenient, once I figure it out a bit more. Another is to use the 'peer node' backend to generate not just the raw JSON but instead the formatted divs and such and then graft that into the page more simply. The latter does have the benefit of allowing me to reuse a bunch of the .pug files and such built into jschan, but might be bloating the peer node a bit prematurely, though maybe it's for the best since it'll have.a standalone viewer eventually.

Or maybe I should forego this whole page splicing thing and just make the standalone viewer outright and then just link back and forth to it from the main site. This could then be either static or dynamic page rendering. Kind of leaning towards this last option for now but I'm curious what you think.

 No.1275

>>1270
After a bit of consideration, the .pug files already exist, so I think just hooking up some routes so the user generates their own static pages and serves them to themself js probably the ideal option. Then everything would be noscript compatible, and the task of html page generation is offloaded onto the peer.

 No.1277

>>1270
I have been working on making my library compatible with both the browser context (DOM) and within nodeJS (non-DOM). Then you can use the same code in my library for server- or clientside rendering. Serving the JSON should be more compact, bandwidth-wise.

 No.1279

>>1277
that way you can serve the JSON to render for js-enabled clients, with the ability to dynamically re-render when interacting or when new posts appear or to render once on the server side while serving a static page.

 No.1282

>>1279
That makes sense, so it'd be a bit more lightweight for js-enabled clients. Nice.

 No.1284

>>1282
Updated it, you can now use the script in Node.js too like in the browser. I added a note on how to import it in Node.js in the readme.

 No.1299

File: 1663517066233.png (261.85 KB, 1886x1883, twocatalogs.png) ImgOps

>>1284
Awesome.
I manged to cobble together a bunch of the existing pug files and stuff into a catalog page such as it is. No CSS and it's a missing the proper links and metadata but it's progress.
Left shows the classic view from the site page, and right shows the "client side viewer" which reads from its own IPFS node. Data replication is pretty fast on the same machine, but I wonder how it'll work on the wider internet.

 No.1300

File: 1663518321007.png (368.92 KB, 779x790, 20362 - closed_mouth glass….png) ImgOps

>>1299
looking great.

 No.1301

File: 1663518901965.png (57.71 KB, 1160x1125, 1660789609840388.png) ImgOps


 No.1302

>>1300
Also something I found out the other day; apparently it's possible to use IPFS over TOR. If that's the case then it alleviates potential concerns over sharing one's IP with the swarm.

 No.1304

>>1303
And it would still be possible for the mediator server to block TOR nodes and such on the input side, when a user submits a post (since that doesn't go though IPFS). But in terms of actually retrieving and seeding post and file data, that could all be done through IPFS over TOR.

 No.1305

>>1304
it would be a bit slow but definitely a vital feature considering just about anyone can directly see your IP address and upload incriminating stuff.

 No.1316

>>1305
Yeah, though I think there would be some plausible deniability in that case, like with the browser cache on traditional sites.

 No.1334

>>1299
Fragmented the threads database into a per-board system. Now when you view the p2p catalog page it automatically obtains and places the hash-address of that board's thread database for you and there's a button that links to the actual p2p view. Eventually this might just be a straight hyperlink but for debugging and development it's useful to have it "splayed out" to see.

 No.1335

>>1334
This also broke a bunch of stuff like the overboard for now.

 No.1336

File: 1663545158162.png (3.28 KB, 202x95, fragments.png) ImgOps

>>1334
Chainposting here but this is a list of fragmented mini databases as the current structure stands.

 No.3597

File: 1663603413156.png (171.92 KB, 904x941, twocatalogscss2.png) ImgOps

Got css working and found out that MDNS (helps peer discovery on the local network) messes with pubsub for some reason, so I turned that off by default.

 No.3598

>>3597
what is MDNS and pubsub

 No.3599

>>3597
gem
>>3598
same question here, I'm 200% ignorant of popular tech stacks outside of what I was forced to work with on my job.

 No.3601

>>3599
what do you use at your tech job

 No.3602

>>3601
Go (which is a horrible language on all fronts), typescript + React for frontend, also sucks. And of course le epic blog chain maymay.

 No.3603

>>3602
NOTHING to do with networking therefore turbo coal

 No.3605

>>3598
>>3599
I am new to this myself but as I understand, pubsub is a protocol that allows different nodes in a network, in this case IPFS nodes, to publish and subscribe to messages being broadcast on different topics.
In this case, when someone adds a database entry to a given OrbitDB database, they broadcast it as a pubsub message over the IPFS network, and users subscribed to that database receive that update and modify their local database state accordingly.
MDNS I'm not too clear on the details of, but it seems that it's a way for devices on the same local network, like different computers in the same house sharing a router, to find each other. It's not necessary in this case but I had it enabled when I was trying to fix a bug so it was causing issues. It stands for multicast DNS apparently.

 No.3606

>>3603
yeah it's just a job, nothing more. My personal gem is my programming language. But recently I didn't make too much progress, God is humbling me and took away my strength to work hard.
>>3605
Strange that these would interfere with each other. But then again, anything that does anything with routing or DNS usually fucks up everything else. The current state of networking is a total clusterfuck.

 No.3607

>>3605
maybe because pubsub is just based on the type of content the publisher posts and the subscriber likes, whille MDNS tries to create a connection? both things seem like retarded concepts.

 No.3609

>>3606
God wants to create, not destroy. all creations of God are great, and their creations are great too.

 No.3610

>>3609
God will return soon to destroy all the evil nations. And we are cursed for not obeying His laws and believing in fake gods such as democracy. All our western mercantile laws are taken straight out of the talmud.
>and their creations are great too
Cain was a corruption of creation, he was half human and half demon (serpent). And now Cain's offspring is all around us and ruling over us.

 No.3611

>>3610
that is not destruction. it's re-construction.

 No.3612

File: 1663611839026.jpg (126.3 KB, 769x530, 1627588770313.jpg) ImgOps

>>3611
True. Still, I have no strength left, I was too haughty and proud of my skill I guess. Back during my younger days, I could program for 12 hours straight without a problem, and now I can barely get 2 hours out of a day. I am lucky on a day when I manage to take care of grooming, grocery shopping, and cooking. I hope this all ends soon and I can get back to doing real work. Not this fake economy and blog chain hype train bullshit.
>NFTs are real
>soulbound NFTs are good
>self sovereign identity
>gotta bank the unbanked
>democracy and voting (mining blocks)
>MVP
>"customers" and revenue
>social media marketing
>company sneedcord server
It's over.

 No.3614

>>715
>Appeal to authority fallacy. Vitalik is a fucking faggot and a retarded MIT-nigger atheist.

>atheism....... le bad!!!! cringe!!!!!!

 No.3615

>>3614
>>atheism....... le bad!!!! cringe!!!!!!
I say this. I had a dinner with Vitalik once and it was terrible. He's mentally crippled. Not only is he unable to look people in the eye when they are talking to him, he can't even nod or give any signs of acknowledging the other party. When I stopped talking because I was annoyed by his ulta turbo autism, he got so anxious, in the end, he sprinted away at full speed.

 No.3616

>>3610
>God will return soon to destroy all the evil nations.
How thoughtful of God, well that's a major relief.
What's the plan in the meantime? Cope and seethe?

 No.3617


 No.3623

File: 1663619868602.jpg (24.69 KB, 514x577, GigaChad-physical-stats.jpg) ImgOps

>atheism....... is bad!!!! cringe!!!!!!

 No.3624

>>3615
>I say this. I had a dinner with Vitalik once and it was terrible. He's mentally crippled. Not only is he unable to look people in the eye when they are talking to him, he can't even nod or give any signs of acknowledging the other party. When I stopped talking because I was annoyed by his ulta turbo autism, he got so anxious, in the end, he sprinted away at full speed.

I actually do this. I'm an autistic programmer (not famous or anything but have some projects with a few thousand GH stars) and once met up with some internet people briefly. Some months later I saw one of them wrote a 4chan post about me which was extremely similar to what you wrote here. I'm incapable of making eye contact with anyone or acknowledging people in conversation or really having a conversation or normal casual human interaction at all. I also have previously sprinted away from situations where I feel anxious, though I've tried to stop doing that.

We can't help it, ok. We're designed to stay behind our computers.

 No.3625

>>3624
kek. I'm also a computer person, never had a GF, and programming C++ for 12 years now (picked it up when I was 13). I can't talk to women my age properly, but at least I can hold a conversation with other guys, especially when it is about my topic of expertise (back then that conversation was about sharding).
>sharding on your 'erium

 No.3626

File: 1663627294418.mp3 (28.79 KB, fail.mp3)

>>3625
me and a girl were talking once, and i assumed that she was le heckin based trad girl, so i told her to go back to the kitchen as a joke. she got so mad at me that we stopped talking. this is a girl that agreed with me on the topic of niggers and trannies by the way

 No.3627

>>3626
Gem-grade chud moment. She was definitely a coaler with her feminism.

 No.3648

File: 1663708092209.png (96.63 KB, 887x1641, thread.png) ImgOps

Got the foundation of the thread page rendering.
The most glaring missing feature is images, but that's going to be its own thing since they aren't added to IPFS yet and it's probably going to work a bit differently than the post data.

 No.3649

>>3626
this story is so autistic I actually believe it

 No.3654

File: 1663737813104.png (33.27 KB, 781x189, persistence.png) ImgOps

>>3648
Working on the peer node side a bit. I added a sqlite database that stores database names and addresses so you can load them (and start seeding) as soon as you boot up the peer instead of waiting for an external command. So you can more easily seed and get updates to threads you're interested in without having to actively browse to them.
And I did a cozy optimization where the page templates are compiled once and then held in memory rather than reading them from disk and compiling every time.

 No.3657

>>3654
what's the roadmap/overall progress?

 No.3666

>>3648
The current state/roadmap is outlined here in the readmes and some of the issues:
https://gitgud.io/threshold862543/orbitchan
https://gitgud.io/threshold862543/orbitchan-peer
The current push is to get the peer node and viewer software functional so that people can browse threads and download posts and files entirely through IPFS. The meain feature lacking for this currently is the files.
The wider next goal is to have a functional browsing, posting, and moderation experience so that an imageboard can actually be run in a deployment setting. A lot of query-related functions broke when I ported the database from mongodb to orbitdb so I have to go through and fix them.
Then once a site is feasible a site can be hosted and we can see how it works in practice (ie. how well data can be replicated), and add features and possibly make it more distributed from there. In making a site and cultivating a userbase it may attract some collaborators to add stuff as well.

 No.3738

>>3666
Made it so when a user posts a file, that file also gets uploaded to IPFS. Eventually I'd like to remove the normal file directory as well and just store everything in the IPFS node, but until I figure that out, for for now there is some redundancy. Next I think I'll either handle thumbnails in a similar manner or see how to retrieve and display files correctly on the peer node viewer side.

 No.3772

https://www.bleepingcomputer.com/news/security/npm-packages-used-by-crypto-exchanges-compromised/
Yet another bullet dodged by staying away from this project. javascript trannies keep losing.

 No.3778

File: 1663977166705.jpeg (168.47 KB, 526x649, i love science.jpeg) ImgOps

>>3772
>problem caused by continuous integration
>blame it on unrelated projects and the language used
JS is cringe, but you have made a fallacious argument.

 No.3906

>>3738
I may be able to just use the inbuit 'ipfs gateway' functionality to serve the files, which allows you to access files via http.

 No.3919

>>628
based

 No.3957

>>3738
Was mainly working on a hardware mod I was doing on my desktop the past few days. But I found a library that makes porting the database queries way easier and integrated it into orbitchan: https://github.com/crcn/sift.js
For some reason I didn't think to look for this until now but this removes a big obstacle in terms of porting the remaining elements of the database over from mongodb to orbitdb.
Next steps are figuring out nginx/general proxy routing stuff so image and files can be simply served from the IPFS gateway node backend to the html pages, for both the "classic view" and peer node self-served view.

 No.3964

>>3957
you might have to write your own HTTP(s) server that takes care of that. There are node.js libraries for that that aren't that hard to use.

 No.3970

>>3964
I'm hoping to somehow fit it into the existing jschan http server/nginx and ipfs gateway to make things simple. The ipfs gateway already serves you images and stuff via simple http request, but it's running on a different port so I'm not sure how to route it.

 No.4047

File: 1664329532919.png (328.24 KB, 689x1876, proxied.png) ImgOps

>>3970
For the peer node side here's a simple test.
On top we have an image (screenshot the temporary p2p catalog interface). The top image is requested directly from the local IPFS gateway itself. On the bottom we have the image retrieved from the IPFS gateway indirectly through the peer node, with a proper filename attached. This allows us to serve files nicely in the page and have them be saveable with their normal filenames rather than simply an extensionless IPFS hash.
Another benefit is that this concept paves the way for us to serve files from the IPFS node backend itself for people using the "classic view" via html pages served by the main server. This is umportant so we can eventually remove the classic file storage system and just keep everything in an IPFS node and not need to have two copies of everything. But that's a bit later. The next step is messing with the peer node page render templates to get the file URLs working properly using this new proxy system.

 No.4057

File: 1664372742885.png (89.54 KB, 883x986, catalogimages.png) ImgOps

>>4047
And with that we can nicely load the catalog images over IPFS into the catalog view. It should be pretty simple to get full size images working for here and for the thread view as well.

 No.4058

File: 1664373951929.png (159.82 KB, 1789x845, sidebyside.png) ImgOps

>>4057
Here's how the two catalogs compare now. The difference in background color is just because I scrolled down to get things to line up.
Right is obtained over IPFS (except for the board name and description which are obtained over HTTP for now) and the left is the traditionally served HTML page from the orbitchan mediator server.

 No.4059

File: 1664376364056.png (244.05 KB, 1500x1500, doomer-feraljak.png) ImgOps

Still can't find the strength to continue on my compiler. Too exhausted, I think it's some illness or something, been going on for months now, and has been getting worse over time.
>>4047
>>4057
>>4058
Congratulations, looking good!

 No.4060

>>4059
Thanks.
Anon your health is the most valuable thing you have on this earth. Maybe it's time to consider a career change or some time off?

 No.4061

>>4060
>LE HEALTH
holy mother of soy
just drink more coffee or do adderall
otherwise consider transitioning

 No.4062

>>4061
You take it for granted while you have it.

 No.4063

>>4061
>adderall
fuck off, I knew I guy who was a great programmer until he drugged himself on those goypills

 No.4066

>>4059
dust

 No.4067

>>4061
shut up nigger

 No.4080

>>4059
>I think it's some illness or something, been going on for months now, and has been getting worse over time.
Did you take the clot shots?

 No.4082

>>4059
>I think it's some illness or something, been going on for months now, and has been getting worse over time.
Did you take the clot shots?

 No.4090

File: 1664474379640.jpg (34.1 KB, 360x350, 1651738702339.jpg) ImgOps

>>4060
Thanks. I already took a long vacation, but it didn't help at all.
>>4080
>>4082
of course not. I think it's just burnout from the general bleak situation we are in. I tried a better diet, working out, taking a vacation, but now I'm running on empty. Everything is pretty much meaningless since shit will hit the fan soon and Babylon will collapse. Once everything goes to shit, who'll care about some pet project I did? There's nothing to do with your life, you can't build up anything of value with your efforts, at least in this decade. In the kingdom, things will be different, but for now, all I can really do is endure life and try to find some small joys while they're still there.
All I can really look forward to in this situation is that after the collapse, the police will hopefully no longer be able to stand between us and the demons who invaded our lands. Then we can finally return to a functioning society.

 No.4093

>>4090
I mean I feel the same way but I wouldnt say it makes me tired, more like bored and lazy, work gives me no sense of accomplishment.

 No.4096

>>4090
Shit won't hit the fan and Babylon will not collapse. If you don't change your perspective you'll be in a neverending state of cope. Just stop caring about news and politics. Those are memes evolved to have the exact effect they're having on you right now. Like a virus. Your H. sapiens body is being parasitized by harmful memes; your brain is infested with memetic parasites. Instead try to replace them with memes that help your mental and physical health, find symbiotic memes, not parasitic ones.

 No.4102

>>4096
>Just stop caring about news and politics
I don't actually care about or follow news and politics. I also don't try to change the world.
>Shit won't hit the fan and Babylon will not collapse
I have the Word of God and He promises these things. It will happen, and there's nothing we can do about it.
Jeremiah 51:6-10 (KJV):
<6 Flee out of the midst of Babylon, and deliver every man his soul: be not cut off in her iniquity; for this is the time of the LORD'S vengeance; he will render unto her a recompence.
<7 Babylon hath been a golden cup in the LORD'S hand, that made all the earth drunken: the nations have drunken of her wine; therefore the nations are mad.
<8 Babylon is suddenly fallen and destroyed: howl for her; take balm for her pain, if so be she may be healed.
<9 We would have healed Babylon, but she is not healed: forsake her, and let us go every one into his own country: for her judgment reacheth unto heaven, and is lifted up even to the skies.
<10 The LORD hath brought forth our righteousness: come, and let us declare in Zion the work of the LORD our God.
>dude just reframe your worldview lmao
>muh evolution
That's not how it works. We're going through the greatest punishment the white race has ever faced or will ever face. I'm used to being detached from everything around me, but the comfort that allowed this has ended, and I am simply unable to ignore it at this point. I'm still doing my best not to think about it too much, and I try to appreciate whatever I still have left, but I know it's going to get worse.
Our situation is the result of every sin committed in the history of our race. All compromises our ancestors and we have made, and of all our transgressions, have accumulated and turned this world so rotten, it is unable to be healed by our hands. Only when Yahweh returns to restore our race and kill all abominations will the world be cleansed of sin and death. There is nowhere to go yet, because Babylon is still in the process of falling.
>>4093
It's only been the last half of the year that I felt like this, I think. In earlier years, it didn't affect me at all. I guess it wasn't tangible enough before. Pre-2020, we only had hints of what was to come, but now, it's full steam ahead into the abyss.

Now, I'm not condemning building whatever you want to build, it's a fulfilling pastime. Just know that our whole society will disintegrate soon, so you won't be caught unaware.

 No.4103

>>4102
>wordswordswords
The left can't meme

 No.4104

>>4103
incel

 No.4105

>>4103
vocel

 No.4106

>>4102
Touch grass.
Nothing's going to be made right and for that matter nothing's wrong.
You are just subconsciously addicted to torturing yourself and your worldview and spiritual outlook is merely a reflection of that.
Everything is a figment of a dream; you, me, God, Babylon.

 No.4107

File: 1664526969816.gif (517.44 KB, 760x704, tranny-rope-animated.gif) ImgOps

>>4106
>God isn't re–ACK!!!

 No.4111

>>4107
I didn't say that. Your human conception of God is merely a human thought running in a human brain. You torture yourself with your own thoughts.



[Return][Go to top] [Catalog] [Post a Reply]
Delete Post [ ]
[ home ] [ suggest ] [ soy / qa / g / pol / raid / incel / int / a / muv / qst / tv / r9k / r / giga / x ] [ b / sneed / fap / webm ] [ overboard ] [ rules ] [ blog ] [ kuz ] [ wiki ] [ dailyjak ] [ booru ] [ archive ]