Zeronet: Merger sites

Created on 9 Jan 2016  路  58Comments  路  Source: HelloZeroNet/ZeroNet

The Merger sites feature allow to to query and display other site's data. Using this its possible to create infinitely scalable social sites by having separate sites for every user profile, so you will get updates for profiles that you follow.

ZeroMe: A twitter-like social site

  • [x] Layout mockups:

    • [x] Welcome page

    • [x] Profile profile

    • [x] User search

    • [x] News feed

  • [x] Static html version

    • [x] Welcome page

    • [x] Profile profile

    • [x] User search

    • [x] News feed

  • [x] Logo
  • [X] Merger site permission handling/request
  • [X] New database structure to allow easier and faster joins
  • [X] Merge sub-site data files to merger site's database
  • [X] Sub-site adding/delete/list
  • [x] Make Sign/File oprations merger site compatible: actionSiteSign, actionSitePublish, actionFileWrite, actionFileDelete, actionFileGet, actionFileRules
  • [x] Profile page data structure
  • [x] Merger site rebuild DB
  • [x] Profile page db structure
  • [x] User directory data structure
  • [x] User directory db structure
  • [x] Update database on new merger/merged site add/remove
  • [x] User directory
  • [x] Sub-site feed listing
  • [x] Profile creation
  • [x] Profile page
  • [x] Profile editing
  • [x] Posting
  • [x] Post editing
  • [x] Post deleting
  • [x] Activity list
  • [x] Like
  • [x] Commenting
  • [x] Comment editing
  • [x] Comment deleting
  • [x] Follow profile
  • [x] List followed users
  • [x] Auto download new site on follow
  • [x] Following without registered profile
  • [x] Also update user database on profile modification
  • [x] User content delete solution for efficient user directory archiving
  • [x] Avatar upload

Later:

  • [ ] Re-share
  • [ ] File upload
  • [ ] Image upload with thumbnail generation (optional files)

ZeroHello:

  • [ ] Group sites by type
enhancement hard

Most helpful comment

If you already upgraded to 0.4.0, then you can help testing ZeroMe: its visible at ZeroHello's "More sites" section.

All 58 comments

Why this is closed? Its not going to be implemented?

Merger sites #232: Open

With this feature does it mean your local zeronet node won't have to download these sub sites until the user requests them? I'm trying to think through the scalability implications of hosting a large site on zeronet and this is one of my concerns. Also useful for splitting a site up so the sqllite files for each site can stay small.

Is this only limited to user sites? I can think of some cases where it would be useful to use this feature even if they were coming from the same publisher. For example a reddit clone where you only want to follow and download a few subreddits not the entire reddit site.

Would these sub sites have the same features as existing zeronet sites? Could you nest them however many levels deep that you want?

Yeah, it's also add possibility to have a merged reddit-like site. It's won't be limited to user sites, so it could also help single-user sites.

Currently only planning one level nesting.

Query and display would be from the main site (zerome)? For eg searching and opening a user profile inside central /zerome.bit ?

Any time estimation?

I haven't started it yet...In the next few months

Thanks keep up :)

After thinking about it for a while, i'm not sure if one site per user is a good solution

One user per site

Every user has his/her own site, if you want to follow someone you start seeding the site. If you want to stop following simply remove site from seeding.

Pros:

  • No one can modify your profile, but you
  • ZeroID independent (comments still requires zeroid)
  • Probably easier to implement

Cons:

  • Initial seeding can be problematic
  • Needs lots of connections (5connection/site is minimum to make sure you got every update)
  • More network communication (tracker announce requests)
  • More files and hdd space requirement on hdd (if you comment on multiple profile you only need new file for every profile)
  • Less privacy: You exactly know who follows who (tor improves this)

More user per site

Instead of one site per user create "hub" sites that hosts a few 100 users. (10MB limit enforces decentralization)

Pros:

  • Initial seeding is no problem, because you joining to an already seeded hub
  • Does not need many connection
  • Other ppl only know what hubs you are following, but not the exact users

Cons:

  • There is a hub owner, who has ability to modify/remove users
  • ZeroID required to join a hub
  • You get the changes for every profile on the hub

But if you don't want to trust the hub owner, then you can create your own hub and this also eliminates the other "Cons".

So I think the user hub solution is better in every aspects.

I think One user per site is more scalable and and gives the ability to users to do everything they want (selective seeding). Network communication is needed and thats the point of p2p protocols. More user per site has privacy issues to on who is the hub owner (plus need of zeroid thats for now centralized) and making closed communities of hubs not open ones. I don't want my hub for a social network but a hub everybody could be a member!

Initial seeding can be solved with a "central" site that every other one can be its child. Search and listing could happen there to find who you want and feed their comments/tweets plus easy messaging to each other.

One use per site is less scalable, because you need 5+ connection per site, so if you follow 200 users it means minimum 1000 concurrent connections which is not really sustainable. If the hub owner delete/censorship your posts you are free to switch to an another one, so its not really an issue.

Central messaging / automatically seeding every site without any control is against zeronet philosophy and does not really works with many users.

And the hubs whould not have any communication between them?

You can use your zeroid to communicate on any hub (there is no difference on this between one site per user and multiuser hubs)

I think one difference is seeding a profile you don't want in the hub...And the only option is to switch hub...and loose all your follower/following posts..if the is an option to mute/stop seeding a profile it would be cool to fight spam and unwanted context

You will only see users in your newsfeed that you are really following (like you can follow only some of the topics on zerotalk), but you will keep receiving/seeding updates for this profiles. (the hub owner able to remove spamming users)

With user muting (#388) it could be possible to stop distributing updates for users you dont like.

I think a big problem in zeronet is searching and indexing...so information is lost..maybe searching inside a hub could be available (to find other users or context)? And muting will implemented as merger functionality?

You can easily index zeronet content, since everything is stored on your computer in json files. There is already a search engine with indexed content: http://zeroexpose.com/ (searching in followed content should be easy without any third-party services)

The muting feature is independent from merger sites

The fact that everything is stored on your local files it doesn;t make it easy to locate a user based on his username or content this particular user wrote (site/users/data/1......./data.json). And how i would connect to other users in my hub or hub if i cant find them. Or i cant locate a subject someone wrote? Why should i really on external search engines? Or i should post in 3 different sites my profile link blog so someone could find me? I think search should me embedded in every site to make it easier zerotalk/zeroblog/zeromail/zerome for everyone to access and to avoid duplication. I think muting should be available for merger sites too so a user can press a block button and delete/stop seeding someone profile/content.

If you want to search in content that you don't have, then you need external services. Searching can be implemented to zerotalk/blog/etc. it's only matter of javascript code and it's not related to merger sites in any way. The muting feature is also unrelated to merger sites, if you start seeding a hub it does not mean you will start following every user automatically.

Created an idea to be able to search in every site you serving: https://github.com/HelloZeroNet/ZeroNet/issues/419

So what did you choose? Hub sites? If so I think that everybody will want to be the hub owner and we will end up with one user per hub

I have not started implementing it yet, but I think the hub sites is the only possible, scalable implementation and its also better for privacy

At least would be a connection between hubs? For querying data? Can multiple hubs be part of a site type? Something like hub of hubs? Else this doesn't solve much and i am still afraid we end up with one hub per user so it will be the same like one site per user. Can we add a solution combining those two? Btw i seed about 200 sites and i have no connection problems. Cause getting updates for single user sites would be that much problem as updated data would be much less

Every hub site will be totally independent (there will be no difference between hub sites and any other current site), but it's not a problem, because the merger sites will solve this problem.

If you willing to host your content 0-24 then you can create your own hub, but inactive/not seeded profile sites will be removed.

You have to keep in mind, that one user per site is offer worse privacy to you and your users, because it's possible to know who is following who. (and later private messaging also planned later, so if you use separate site there will be possible to know who is messaged to you)

I do not think seperating sites a good idea. Why should we have a merger site when we can just create more independent smaller sites? Does it mean some kind of "centralization" when we are depending on merger sites?

Yes, it's more centralized, but there is no other way if you want to list/interact content in one place.

On the other hand it's also more decentralized, because the data will be separated from the display logic, so you can modify it (eg. different skin, new features) and you will be still able to browse the same data.

I think one user per site is more more attractive. If there's any chance, please treat this as a prime consideration.

Why I think zeronet social is very attractive?

  1. I have the total control of my date. That's why I choose p2p social instead of centralized site.
  2. My data will always online. Because my friends(followers) have big willing to seeding my site.

The more user per site solution is less attractive.

  1. I lost my total control. It's hard to choose a hub, because we have very small information of the hub.
    I need to choose a hub. I will worry about that he may banned my site, if he don't like my content. If I changed my hub, I may need to inform my followers that I changed my hub and ask them to seed again. Because the hub can modify my data, then it can fake me: Banned my profile and say I have changed to a fake profile. Because my followers have seeding the hub for a while, they may trust the hub. Because we have few information to choose a hub, maybe in the future, who have many servers and bandwidth will gain most users.
  2. My followers need to seed other 99 users they don't want to follow. This may decrease their willing to seed the sites.

Please forgive my poor English:)

Like is said before: if you want you will be able to create your own hub, so don't have to rely on anyone

Yes I know, create my own hub is a solution. But if there are many users like me care about the control of own data. Then this solution would be less attractive.

For the issues of one user per site solution

  • (a)Initial seeding can be problematic
  • (b)Needs lots of connections (5connection/site is minimum to make sure you got every update)
  • (c)More network communication (tracker announce requests)
  • (d)More files and hdd space requirement on hdd (if you comment on multiple profile you only need new file for every profile)
  • (e)Less privacy: You exactly know who follows who (tor improves this)

Consider most zeronet users don't treat 1.easy to use and 2.decrease hdd space as top priority, so (a),(c) are not big problem right now.
And with tor, (e) also can accept.
So the really problem are (b) and (c). Am I right?

it should not be less attractive: If you create your own hub it's exactly the same as one user per site solution

I will take more time to think about this. Thanks for your hard work, it is really awesome.

any suggestions for the social site name?

some ideas:

  • ZeroHome
  • OneZero
  • GoZero
  • ZeroMe
  • ZeroFeed
  • GroundZero
  • ZeroLoop
  • ZeroWay
  • WeAreZero
  • ZeroWay
  • BeZero
  • ThinkZero
  • PushZero
  • ZeroSociety
  • ZeroNation
  • ZeroWorld
  • OnZero
  • MeetZero
  • ZeroSpark
  • ZeroSignal
  • Zolo
  • Zelf
  • Zello

MeetZero is good!

I vote for ZeroSociety or ZeroMe

You might consider not using zero in the name here are some more ideas for a name.
Chatter
Blabber
ChitChat
Babble

@makdisse ZeroSociety was my first thought too - http://mrrobot.wikia.com/wiki/Fsociety :)

Zerotopia

Zerome or myzero

Users from different hubs will have the ability to share content?

Every zeronet site is totally independent. Hub = normal ZeroNet site

So yes!?! Cross hub - normal site queries will be possible?

GroundZero should be avoided because it has negative cultural connotations in the U.S. (the site of the wreckage of the World Trade Center buildings on 9/11 is still referred to as "ground zero") and, of course, Japan (Nagasaki and Hiroshima were ground zero for nuclear bombs).

ZeroMe and MeetZero are the most appealing choices from the list.

I also have a less serious name suggestion taken from the Star Trek universe: "Unimatrix Zero," which is the name of a censorship-free decentralized social network of rogue Borg. Perhaps it's silly, but I had to mention it given the obvious parallels.

I'm sorry but I don't have read all he discussion, but instead of one/more user per site I have an idea:
create bundle sites to hold content, it's base on one user per site, but, for exampe with some people you get 30+ common friend, then all this could be bundle with this group of friends. this will limit the number of connection needed and keep enough data data online.

Some short of pm's could be trivially added?

ZSociety

ZeroMe :+1:

Would it be possible to create a normal website which isolates large media files or sections of the website so that a viewer onlky downloads them when they try to view it?

Or is the Merger Sites feature only restricted to the social site being planned?

@62gs8ha: Merger site (and zeronet) is mainly for data-based sites, but you can define optional files that only downloaded when the user's browser requests it.
Example: https://github.com/HelloZeroNet/ReactionGIFs/blob/master/content.json#L1796
site: http://127.0.0.1:43110/1Gif7PqWTzVWDQ42Mo7np3zXmGAo3DXc7h (currently has 560 MB of video, but they only downloaded if your client's browser requests it)

@HelloZeroNet Thanks. Can you explain the syntax of that Optional Files argument? So say if I wanted to make MP3 embedded audio or embedded PDFs optional, how would I do it? What are the js and css arguments in that syntax string?

To save having to go to the other page, here is the Optional Files argument for everybody:

"optional": "((js|css)/(?!all.(js|css))|data/mp4-._/._)",

Here is another one:

"optional": ".*.(jpg|png|gif)",

the syntax is a standard called regexp (http://www.petefreitag.com/cheatsheets/regex/)

  • "optional": ".*\.(jpg|png|gif)" will make all png, jpg, gif file optional on your file (not recommended if you have other, smaller images in your site, eg your logo)
  • "optional": "(data/videos/.*|data/documents/.*)" will make all files inside data/videos and data/documents directory optional

@HelloZeroNet, so when the release date? :)

@Split7fire If I can't find any more bug then tomorrow.

I think i was able to fix all the bugs, tomorrow morning i going to re-check everything, then publish it

Zerotopia would have been awesome.

If you already upgraded to 0.4.0, then you can help testing ZeroMe: its visible at ZeroHello's "More sites" section.

Great news! Is there a zite address you could share with us?

@wigy-opensource-developer It's better click from the homepage (it's only visible if you update to 0.4.x), because it using new database structure for merger sites, so if you visit it using 0.3.x version, then you have to delete and re-add it to make it work.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  4Comments

sermont picture sermont  路  3Comments

mkg20001 picture mkg20001  路  3Comments

DaniellMesquita picture DaniellMesquita  路  3Comments

yurivict picture yurivict  路  4Comments