What part of ActivityPub is used? In what way is it federated?
Anything related to programming and creating software.
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.
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.
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
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.
>>https://fchan.xyz/prog/EA089B0C sqllite is just a file save locally. And that won't scale well with many posts. Postgres has better optimization for many queries from my understanding. I never considered sqlLite because I saw it as something for small scale database.
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.
>>https://fchan.xyz/prog/FF53781G I don't know where suggestions go so I'll just throw it out here. I propose a place to list other instances, maybe a board /shill/ or something? Also theme support would be nice. I don't know any code, otherwise I'd help, sorry
>>https://fchan.xyz/prog/6DGBCC91 You can make a loop that with each iteration you either make content, share content or tell someone about FChannel >>https://fchan.xyz/prog/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.
>>https://fchan.xyz/prog/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.
OP I've been following this for months but I don't see the /g/ threads much anymore. Do we have a Matrix room or IRC channel up? Giving feedback and seeing updates isn't great via imageboard.
>>https://fchan.xyz/prog/ODWLOWAE the posts on 4chan get deleted once created. someone is prolly reporting them. here is a matrix channel i will try to keep updates posted to. pretty inactive atm, but would appreciate feedback and other contributions #fchan:matrix.org
>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.
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?
>>https://fchan.xyz/prog/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.
>>https://fchan.xyz/prog/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.
>>https://fchan.xyz/prog/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.