What part of ActivityPub is used? In what way is it federated?
No real organization....
This site is based on the activity pub protocol. It is still a work in progress. You can get the source code here. https://github.com/FChannel0 I hope it provides some interest.
What part of ActivityPub is used? In what way is it federated?
All of the structures are based on activitypub. Each board is an actor which has a inbox, outbox, following, followers box. You access an instances posts by going to their outbox. If you go to https://fchan.xyz/prog/outbox you will see all the posts on this site. Users can then take those post for their own instances. eg. You have an instances myimageboard.com/g I can follow that instances and then I will see all of its posts from its outbox. I can then merge it with theses posts. Interacting with posts that are not on your instances. I will make another instances tomorrow to better showcase it. So what makes it federated is that each instances has its own posts, but others can access them and post to them instead of it all being only on one site side not, quoting another post is bugged for the moment.... its appending http://https:// to it.
I have fixed the double post problem when replying to some threads, also click a quoted link in a post should route correctly now when the post is not from the local instance. I have increase the file size limit to 7MB. I still have to fix the proper reply count and attachment count, also showing the correct file size of the attachment.
Cache system almost in place. This should help load time greatly.
Caching is in place. Post counts are going to be fucked again. Will fix soon. I dont notice a huge difference on my side from the caching from before, maybe others will. I will investigate other ways to cut down requests to improve performance
>>fprog-B2C6A732 its actually shit. Its not caching all post but only a select few. Didnt catch this on local setup. Looking into why its not caching all posts. Logic is off somewhere.
All images have been resized to have a tumbnail images so browsing the site with mobile should not kill your data and load times should be better with the smaller thumbnails, movies preload off and audio preload off. Caching actually was working.
>>fprog-AF085BFA (OP) It seems catalog page doesn't load thread thumbnails and instead load the full image. I can see the thumbnails slowly loaded on catalog for big image.
>>A83F6EAC ah right, file locks (https://www.sqlite.org/whentouse.html
I am working on consolidating the server and client program. There is redundancy with the client having to talk to the server when the server can just run the front end when someone requests the webpage. And when they want the activitypub ld+json they can request it by setting the content-type to application/ld+json; profile="https://www.w3.org/ns/activitystreams" I am doing this because it will be far easier to cache on the server side than client side for posts. The current bottleneck is pulling the feeds from the followers which I want to get rid off. Caching your followers outboxes and getting updates when they make new posts and updating your cache should allow for a smoother experience getting rid of this bottleneck Also, this will get rid of the dumb fchan.xyz subdomain and it will just be fchan.xyz where you can go to fchan.xyz/outbox fchan.xyz/following fchan.xyz/followers. I hope to have it done by this weekend. Thank you for visiting, I will make this platform better with time. And anyone who wants to help out where they can is appreciated. Posting here is help enough.
>>fprog-6DGBCC91 You can make a loop that with each iteration you either make content, share content or tell someone about FChannel >>fprog-G9G69783 Suggestions are welcome here in this thread for time being until a better spot is available. I plan to provide an index of instances running fchan as they come online. I'm hesitant to make many boards at the moment because the userbase is still growing and the current boards available have not been outgrown.
Im about 80% done with the caching of the posts for boards you follow and combining the server/client. Its taking a little more time than I was expecting. Since its such a big code revision I am not rushing so not to break more things on the live servers. Hopefully by this weekend it will be wrapped up. Real life obligations have been taking some of the time away from fully developing this platform. Thank you for checking back, theses improvements will make FChan a lot better and I would feel confident sharing it more and having others run their own servers.
New version is in place with caching. If an instance goes down or is offline the posts are still avaiable from the local cache. Only the attachments will be broken because those are not saved locally. I added a red board theme and fixed the post and image counts. There are bound to be bugs I missed. It seems to load a little better, I will see what can be tweaked more.
>>fprog-9E59GG8F Also I am in the process of transferring from the instance.xyz to just instance.xyz. I have to update the database to reflect the change. The current fchan.xyz nd 0x00000000.xyz are temporary.
load time improvements should be noticed. they have been cut down from 3-5 second load time for large posts counts such as https://0x00000000.xyz/b to about 1 second. more improvements soon(tm)
>The HTTP GET method may be dereferenced against an object's id property to retrieve the activity. Servers MAY use HTTP content negotiation as defined in [RFC7231] to select the type of data to return in response to a request, but MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams", and SHOULD also present the ActivityStreams representation in response to application/activity+json as well. Please add presentation with application/activity+json.
Add to Fediverse list: https://en.wikipedia.org/wiki/Fediverse Read about Zot protocol: https://zotlabs.org/help/en/developer/zot_protocol
Based instance fediverse list: https://fediblock.org/blocklist/
Add board creation
I am curious as to what benefits or differences FChannel provides in comparison to NNTPchan? https://github.com/martindale/nntpchan Also I'm a little confused how the federated aspect of it works on a larger scale. For example, if there are 10 servers, all whom run a /g/, and they federate with each other, would there be 10x /g/ board listings at the top of their sites?
Any chance anyone could submit a PR to add support for FChannel to KurobaEX? https://github.com/K1rakishou/Kuroba-Experimental
>>fprog-RD7CEKI8 nntpchan uses nntp protocol FChannel uses activitypub nntpchan is more mature, but you have to go through more hoops to access FChannel is new, but has direct access for users If there are 10 instances all with g, each instances just follows the other g instances in theirs. For example, if you look at the /b/ board. fchan.xyz has a /b/ that follows 0x00000000.xyz/b 0xChan has all of fchans boards consolidated into its one /b/ board There will not be duplicate boards in the menu.
>>fprog-33METGNO Ok, albums I guess.
>>fprog-CO62FROA >For example, if you look at the /b/ board. fchan.xyz has a /b/ that follows 0x00000000.xyz/b Ok so, if I self-host an instance, and I dislike what content comes from one host, can I choose to block that instance I assume? Then it will show content in /g/ from all instances I federate with, except that one I un-federated with? If this is the case, it sounds good but may need a little work. For one, currently it doesn't seem as if there is any way to identify which posts originate from which instance. I also think it would be beneficial to be able to filter posts in a thread by instance/see only local posts. So if I go on /g/, I can choose to only see posts that originate from one instance, and hide all others. These would be big tweaks that would make it feel more federated to the end user, rather than one massive cluster of instances, which long term can get out of hand when other instances come along posting shit nobody wants to see or spamming, etc.
>>fprog-ETZWRC3U Also, what's the deal with blue/red boards? Currently I see no way to identify whether a board is blue/red from the web interface? Also in a federated aspect, could someone setup a /g/ instance that's blue, and another that's red? In theory, I see no reason why not. Instances could just choose to hide the red instances if they don't want to see that content, or blur it, etc. They can also just choose to un-federate with all red instances. I think having a list of public instances and mark which have red would be beneficial as well.
>>fprog-N9OP5U6T - hover over the post id to see the original link - the activitypub inbox can obviously tell where a post comes from, see HTTP protocol
>>fprog-RJZB2Z08 noko test
>>fprog-BSV8TJEN nvm, i am tripping. probably didnt refresh my browser to newer version
>>fprog-9FA9AC6F Based question I also wanna know this.
>>fprog-387IYIFA think youtube comments from 4chan. linking youtube videos on a chan website is already a thing so it would just eliminate a step and be more interactive. >>fprog-H1N8LHHP what >>fprog-JTNVA9ZG said >>fprog-825Q4W7W >>fprog-JTNVA9ZG pen is a containment board for a few freaks. its literally just s4s. more people could interact with different boards and contribute, /pen/ aren't the only people on pleroma
how many instances of Fchan are there right now? will the whole thing stay up even if developer's shitty Pentium 2 box that is hosting fchan.xyz and 0x00000000.xyz goes down?
>>fprog-BTXJ87VL when i integrate activitypub instances that have usernames the name is going to be replace with redacted or namefag, there will still be a link to their profile via the post id, but will not be visible in the thread name field. if you see namefag instead of anonymous its someone who posted outside of fchan with a user account. still some testing before this happens. layed the foundations to have fchan more complaint with other federated instances such as using a webfinger, having pem keys for each actor, and using the signature header as verification with pem keys.
>>fprog-6KX8CJLR BASED DEVCHAD. i really like this approach, can't wait
>>fprog-6KX8CJLR Loks Interesting, I like it
>>fprog-7E132B59 >Suggestions are welcome here in this thread for time being until a better spot is available. I suggest either thread title or ID in the window <title> as currently inactive tabs from a /board/ all have the same title. Pic related.
>>fprog-4XP2XJD8 >>fprog-3P82S2G5 created #fchannel on irc.libera.chat which should be bridged with the matrix channel. >>fprog-HXTU4SVY cross referencing other posts needs to be implemented, quoting a post only checks the current thread for the post it is referencing. the tripple > needs to be supported in the parsing. thanks for reporting, i need to fix this asap because cross referencing needs to be supported. i also created a /meta/ board so that suggestions and general discussion about the site can be made so it doesn't overshadow other topic discussions in the current boards. new board suggestions that you would like to see are welcome to be made there. i made it hidden, but if its thought to be better if easily viewed by all, it can be added to the main board menu. i didnt want it to distract from other boards and be a more behind the scenes discussion i.e. meta https://fchan.xyz/meta
dev you should report in here: https://node9.org/item/853cada9-add4-43f6-b079-4d1b1c998b25 so that fchan gets listed in https://socialhub.activitypub.rocks/c/software/14
>>fprog-AF085BFA (OP) Captcha Discussion: We all know the current captcha isnt the best and it needs to be harded. Captchas are always a pain to deal with and the amount that are unreadable is too damn high. When making FChan I knew some form of verifying a user from bot was need, so captchas are necessary to have without further gathering user data. There has been a suggestion with a pull request to harden the captchas with the same ones you see in many places. I initially found it difficult to read these captchas and I am sure other users would too if there are already invalid captchas happening with the current weak version. So before I pull the merge request I wanted to ask the users their input since you will be interacting with them mostly. On the PR you can see the type of captcha suggested. https://github.com/FChannel0/FChannel-Server/pull/28 Also pic related. The other route is to modify the current captcha and harden it a bit. I have been preemptively thinking about this and I made a v2 of the current captcha that takes care of some of its weak points. Using a custom captcha you can do things unique to the site instead of same generic one you see everyone else. Also it can be customized to ease some of the pain, eg with the v2 its case insensitive and you do not have to use the shift key for symbols (or letters). If the captcha is FJR$# you can type in fhr43 I will post the v2 of the custom captcha in the next few posts. It still can use some work to be sure its more secure such as line confetti overlays that you see everywhere to obscure the text more. The main threat is OCR, while it can be trained it is easy to obscure its reading accuracy. So my reasoning for going with a "custom" captcha is it can be customized and unique to the site even though it might be "less" secure Or if users prefer proven "secure" captchas, less readable, more generic. I wont mind going that way either. It would be the simplest path.
>>fprog-Z1G33RAF use this instead: https://github.com/steambap/captcha
i have an irc net you can use for devchats if you want pick a channel name and append ?channels=name to the url https://2hu-ch.org/_irc/
i think this one could work: https://2hu-ch.org/_irc/?channels=general
>>fprog-7B783FM0 i would say ask this on /meta/
This may be a more appropriate question for meta, but I was wondering if we know that deletes propagate between instances? I just janny'd some spam posts and do not see them from a few sites I know federate with each other.
>>fprog-1M7ZWB2Y deletes propograte if the source of the thread is deleted from the instance it originates from. so if a post gets posted on penchan and federates with everyone else, if penchan deleted the post it gets deleted from all instances that follow that board. if the thread does not originate from the instant that deletes it, it is just a local delete to that instance.
>>fprog-7B783FM0 currently how the activity structs are used they are not in sync with pleroma. so there has to be a conversion to pleromas standard. one example is plreoma uses preferedUsername@instance where fchannel uses name@instance so right now you can go to a pleroma instance and do @firstname.lastname@example.org and it will attempt create a new posts. but some conversions do need to happen first to successfully write. i have been able to send a message from pleroma and have it write to the database and was able to do a follow req from pleroma and have it write to the database. this could bring up the discussion of how replying to a post should be formatted right now it requires the full URL. how can it be streamlined? @7B783FM:email@example.com might be excessive to write. @firstname.lastname@example.org is shorter, but referencing specific post swill be needed. maybe @7B783FM@fchan.xyz/prog and @7B783FM for local.
>>fprog-7J459F7X :o BOTNET
>>fprog-TQS8TYJX i have been mining ETH on everyone this entire time
>>fprog-7J459F7X i had the plan when starting this project of allowing users to add a crypto wallet to their post to promote shilling. if someone makes some type of contribution and they attach a wallet address to their posts others can choose to donate or w.e to that address.
>Unchecked runtime.lastError: Invalid color name. prog:1 >Error handling response: TypeError: Cannot destructure property 'h' of 'undefined' as it is undefined. at chrome-extension://hhckidpbkbmoeejbddojbdgidalionif/components/video_toolbar.js:310:46
>>fprog-S6DS0YJR >-Better .gif thumbnail handling (a lot of gif thumbnails are kinda shitty) this is a imagemagick issue with resizing gifs. the alternative is making it so thumbnails are not animated and are static until enlarged and then the gif will play. this will probably be less desirable, but it will stop the appearance of broken gifs. >-A feature to block certain keywords, to prevent spam bots from posting their spam yes, I have a keyword blocklist hardcoded on fchan to test with recent spam but ill add it to the repo code so admins can add their own regex to filter spam from the management page.
>>fprog-LQZECT7A Captcha per post is annoying and not necessary. It should be optional for site admins.
instance admin should update to v0.0.9 to have access to the post blacklist in the admin page. this will allow you to create regex statements to block predictable spam. who knows if the spammers will adapt and make variations. the one that is spamming the most has a predictable format that you can easily make a regex statement for. when entering the regex statement you do not enter them between // like some regex. escape characters like your normally would. it was not fully tested for all edge cases so please let me know if things go wonky. there is a test case comment section to test your regex statement. if it doesn't get added then the regex failed. if it gets added then it passed. it could throw errors on server side if the regex cannot compile.
>>fprog-77EXN28W insane shizo not even him pen hasn't even visited the site in 2 months
Also it would be cool if you could open images from .onion instances on clearnet instances. Right now there is no media proxy for that and it just tries to open the image directly from the .onion URL which obviously doesn't work.
>>fprog-Z4W7ZSEQ It would be nice but it's not fair on other admins since if someone posts CP while I'm asleep it's now their ass on the line. An idea I had was to let the user specify a Tor2Web gateway like onion.ws but all of the ones I can find check the referer to prevent hotlinking.
>>fprog-JLKPOV6Z Simple: make it optional. "Do you want to media proxy retrieve files from .onion instances?" in the settings. Plus there's already the "always spoilered thumbnails" feature built-in.
>>fprog-Z4W7ZSEQ or do the saner approach and proxy your browser's traffic through tor
add auto follow option for boards update to version v0.0.10 to be able to use them. it has not been extensively tested, so errors could occur please report if you run into any.
instance admins !!!!!! UPDATE TO v0.0.11 if you are on v0.0.10 !!!!!!! there was a bug with the logic for the auto follow that was fixed in v0.0.11 if you are using v0.0.10 update ASAP before your instance follows or gets any other followers
>>fprog-AF085BFA (OP) so if someone starts spamming illegal things at the indevidual level (not a specific instance), how should all the federated instances react? Could the admins from another instance moderate the board the illegal stuff was posted on?
>>fprog-N2WEX65A media is not replicated to each instance. an instance can just go offline if it is being attacked by spergs and do not want to deal with it. other instances can carry on just fine. ideally more instances than spergs. instances can locally delete posts. origin instances when deleting posts deletes it for all instances.
Fchannel instances that are no longer active should automatically disappear from the front page and from your follow list.
is there thread archivimng logic in Fchan? how would that evem work? what would be the criteria for makimg thread archived across all instances?
>>fprog-HEL2SCR2 added, after 24 hrs of not being able to send a request to an instance the instance removes the instance, but not the posts. >>fprog-WVGKJ7ZU added just now actually. works by archiving the oldest 165th+ post since other instances it might not be archived it can still be post to, its just archived locally to the instance where it exceeded 165th post in update time. if you view the archive page there can be new posts from other instances, it is just archived on the current instance. go to the instance it is active on if you want to interact with that thread
>>fprog-LUJOAP30 s/m/b/ my brain had hiccups
>>fprog-2WV26LMU i feel like the news box is a good place to report this, why not use that more? the archive is a fairly important thing to add to the news imo
>>fprog-AF085BFA (OP) Problem with it is that you can't actually talk to everywhere from anywhere. fchan.xyz is the biggest instance and it doesn't follow every other one so you have to use fchan.xyz or one of the few it follows in order to talk to anyone making it effectively centralised. for example, I posted >>fg-U5ODX6QZ → but nobody saw it. This place uses a paradigm that works for social media (ActivityPub) and transplants it onto imageboards with each board being treated like a user. That's what causes this problem. So I think there should be an option for boards to automatically follow back other boards which follow them, enabled by default. You can always unfollow boards individually if you want.
>>fprog-0P7DRPEL >So I think there should be an option for boards to automatically follow back other boards which follow them, enabled by default. I agree, that makes sense too bad that dev is dead, so someone else will have to make that work
>>fprog-0P7DRPEL Auto following was added back in July, I just added a /g/ board and 2hu, poopchan, and fchan followed back automatically. https://github.com/FChannel0/FChannel-Server/issues/43 Following and unfollowing were broken in v0.0.10 which is when CyberiaChan was created (I think), pen, poop and 2hu all think they are following cyberia but they don't show up in chan.clubcyberia.co/g/followers, and except for fchan, cyberia doesn't show up in the followers any of the boards it's following chan.clubcyberia.co/g/following. The cyberia admin should be able to fix it by unfollowing and refollowing.
>>fprog-OKLL4MAN Forgot to mention that they may need to unfollow and follow poop and 2hu again if they don't show up in cyberias followers, and that the penchan admin will have to refollow manually since they don't have auto follow.
>>fprog-AF085BFA (OP) do you take/need donations? Consider registering fchan or your github page with Brave Rewards, or putting up a crypto donation address somewhere. In fact, I have an idea for a feature you could add to make this project more sustainable: instead of filling out a captcha, site owners should be able to require a small crypto donation (preferably in a privacy-preserving coin with low tx fees, like Monero) before posting. Similar to a 4chan Pass. So let's say a site owner decides that users have to pay 0.0001 XMR to make one post on his instance of fchan. The site generates a Monero subaddress, to which the user sends 0.1 XMR, enabling him to make 1000 posts. Or maybe make unlimited posts for 100 days, you get the idea. He then uses the subaddress or another unique identifier as his password (perhaps stored in a cookie) to post on the site without having to fill out a captcha. This would of course require a Monero view-only wallet to run on the server so that the site can register the user's incoming payment. This would help paying for server/bandwith/domain costs without resorting to advertising (as if any advertisers would want to sell us ads anyway).
>>fprog-B6IPOQ28 which currency to use is not a very important point of discussion, I think. Ideally, site operators should be able to choose between different currencies that they accept. At some point this might include CBDC's, depending on how that whole thing pans out. That said, several things make Monero a good candidate: - It's ASIC-resistant and mined with CPU. Anyone with a mid-range desktop computer from the last 5 years can realistically get his hands on some XMR by mining, without having to sign up with a crypto exchange - It's more censorship-resistant than any transparent public ledger (BTC wallets are routinely blacklisted by exchanges based on who they transact with; BTC mining companies will eventually be pressured into not mining transactions made from/to certain addresses) - Has low fees at L1, doesn't require setting up or relying on someone else's LN server - Better privacy than Bitcoin/LN (this is according to LN developers)
>>fprog-SXB3WVOC >crypto donation address somewhere bottom of README fchanpass is most likely the future for quality control and providing instance support. up to this point i didnt want any walls to be in the way to post like registeration, passswords, paying. but it might be a positive for all in the long run. if you make the crypto donation and still make undesriable posts, atleast support the monitoring time needed for an instance to clean up posts. theres a lot that can be done before that though, there isnt a massive userbase to where you have to put some type of barrier to entry for quality control.
>>fprog-UP0DW5WW yes i am dead. summer just ended and i had little motivation to work on fchannel since i was occupied doing other things. summer is over and will have designated hours ill be putting in work. what i have been working on is moving the routing to the framework that was recommended in /meta/ gofiber while cleaning up the code structure since it has none at the moment. i have a long list of things that need to be implemented, but to not clean up the code base first and just keep patching thing together will cause even more headaches down the line.
>>fprog-OGU4NI74 welcome back speaking of being dead, did you consider reducing "bus factor" of FChannel-Server? So that development can be continued without forking in case that you have to go away for much longer?
>>fprog-Q3QSJBZ8 do you think running websites is free? Fchan either becomes financially sustainable or it's dead in the water.
All trademarks and copyrights on this page are owned by their respective parties.