We are looking together or a combination of browsers

    vse-p2pOnce again typing a query in a search engine, I thought: after all, someone already went this same way, wrote the same query, looked through a heap of various pages to find exactly what was needed, and made a bookmark so that the next time not to spend. It would be great to immediately receive a list of relevant bookmarks already made by others using a written search query.

    What is needed for this? You need a browser extension that allows you to save along with the bookmark and search phrase. Such an extension should somehow publish data, make it searchable.

    So the idea came up to write an extension to Firefox, combining browsers into a single "bookmark-sharing" p2p network. I would like to tell the distinguished assembly about the results of my work. In this article I will not touch on the technical details of the implementation, but simply tell and show in the pictures how the written extension works. If you have questions, I will be happy to answer in the comments.

    Briefly about the project

    The project is called Vseisk. A beta version of the extension for Firefox 3.6 is currently implemented. You can download it here . Since this is a p2p network, full-scale testing is possible only with a sufficiently large number of participants. One of the goals of this article is to invite those who want to install the current beta All-Isisk and share the results, comments, considerations, errors found, etc ...

    What does it look like

    The installed extension adds 2 buttons on the top control panel.


    The first (asterisk) is used to add new bookmarks related to the search query. The second ("magnifier") opens the All-Search page. This page looks like this:


    How data gets to Vseisk

    Suppose I needed to find information on the topic “java examples”. I go to any search engine and look for relevant pages. At this point, the extension adds my search query to the drop-down list under the asterisk button:


    I look at the pages found and select the one that is really useful to me. To bookmark the page, I click on the “star” and I see a drop-down menu in which I select “java examples”. A bookmark adding form opens, in which there is a "Search by" field. This is where the search query related to the current page is written.


    Another way is to open the bookmark dialog via the general menu and select the appropriate request in the drop-down menu (but this method is 2 clicks longer than the previous one):


    After creating a bookmark, the extension stores the link to the page and the search query in its own separate database. Information from this separate database is published from time to time on the network, that is, the Vseisk extension, which is one of the nodes of a p2p network, finds by some search algorithm that node of the p2p network that is "responsible" for storing a specific search query, and stores on this a node a pair of "request-link". Thus, the search data is “spread” across all nodes of this peer-to-peer network.

    How is the search

    To start the search, open the search page with the button "magnifier", enter the query and click the "search" button:


    The search process occurs in the same way as the publication process - first, the extension finds the p2p network node “responsible” for the search request, and then requests a list of links from it. We see the search results on the left half of the search page. In addition, on the right you can see the searches made earlier on the Vseisk network.

    What queries are associated with the page

    vseisk-button-popup-keywordsWhen a certain page is open for a long time, the extension finds on the Vseisk network those requests that users have already associated with this page. In this case, the icon on the “magnifying glass” button changes to highlighted, and by hovering the mouse over this button, a list of queries appears. If you click on one of the queries in the drop-down list, the dialog for adding a bookmark will open. Thus, if the user considers that the request matches the content of the page, he “votes” for this request, adding it to his database. Such a “voting” mechanism allows us to build search results by popularity, i.e. by the number of users who linked this page to a specific search query. With a sufficiently large number of participants in the search network, this mechanism will also allow you to filter out the inevitable garbage.

    Published links

    The “published” link leads to a page with a list of all links published by the user on the Vseisk network. Here is what this page looks like:



    In any p2p network, nodes need to communicate with each other both for publishing and searching, and for maintaining their routing tables in working order. Therefore, it is desirable that the site be accessible from the Internet using the TCP / IP protocol (unfortunately, there is no way to use UDP in Firefox yet ). You can set the network port for expansion on the Settings page. I will not go into detail about how to open a port on a machine for external access, since a lot has been written on this topic , and readers of this site will probably know how to do this.


    Unlike the classical search system, where special programs are involved in filling the database, in the Allisk search network this function is performed by end users, that is, consumers of information themselves, so we can expect that the relevance of the search will be significantly higher than in search engines. Currently, the Vseisk network is empty. Naturally, the main value of such a network is in its content, so if you liked the idea, you can contribute by bookmarking through the Vseisk extension.

    Also popular now: