Guest robv

Common Questions Answered

Recommended Posts

Guest robv
Until we have some official documentation, I’d like to answer a few common questions that may help you get started developing torrent based websites.

 

1. How do I host content on my own server, is this browser a server?

 

In order to publish a website to the network you'll have to create a torrent that contains it. The basics are that if you have a HTML file, name it `index.html` and create a torrent that contains that file, Project Maelstrom will discover that and display it. You can then share the BitTorrent URL that is displayed, or a magnet link of the torrent with anyone else and using Project Maelstrom they'll be able to view your website.

 

2.  I copy the magnet link from the UI in Bittorrent and paste it into the browser but it’s not loading the content.

 

Local peer discovery may be a little unreliable in the current build, meaning that if the torrent only exists on your local computer, the browser might have trouble finding that copy.

 

If you're familiar with Amazon Web Services / S3, I'd suggest hosting a copy of the torrent on there: http://docs.aws.amazon.com/AmazonS3/latest/dev/S3Torrent.html

 

If you do that, you could use a "ws" parameter on the magnet link to point to it which should 100% work. We link to all of our examples this way, for example: "magnet:?pt=urn:btih:&as=https://s3-us-west-1.amazonaws.com/project-maelstrom/Alien+Invasion.torrent"

 

3. Can I reference file from another torrent?

 

Absolutely. So for example, you could include common javascript files in one torrent and reference them in all of your other projects, much like CDNs work. The include URL would look something like "bittorrent://*INFO-HASH*/jquery.js". If you're trying to reference files from within the same torrent, you'd just do that using relative links such as “/jquery.js”.

Share this post


Link to post
Share on other sites

Here's a question that went unanswered from the Maelstrom blog that I'd like answered. Can you provide some insight @robv?

 

 

So if a site is hosted across many different computers, what happens when the site owner issues an update or content changes? Would it then have to send the update to all the computers hosting a piece of the code? And does anyone browsing the internet almost get an outdated version? - I mean, the web is constantly changing so all the browsers would have to constantly push and pull from the original sites

Share this post


Link to post
Share on other sites
Guest robv

We are planning to support BEP 39 which makes updating torrents possible via a feed URL. You can read more about the feature here: http://www.bittorrent.org/beps/bep_0039.html

 

Right now this isn't reflected in the UI in any way but we hope to make an update that supports this feature available to all of our Alpha users soon.

 

 

 

Abstract

With episodic content or content that recieves periodic updates, it's often useful for users to be able to subscribe to subsequent episodes or revisions. This BEP aims to provide a convenient way for users to do so by allowing content providers to embed a feed URL into a torrent file.

Overview

The feed URL through which content providers can distribute updates is specified by an "update-url" key in the torrent's info dict. A GET "info_hash" parameter whose value is the hexadecimal info hash of the torrent will be added to requests sent to this URL. If a response with a 200 status and a valid torrent file is recieved, the client should download that torrent.

Because in many cases it's preferable for clients to be able to download new content without user interaction, the torrent pointed to by the feed URL should be signed. For a client to download new torrents automatically, they need to be signed by the torrent originator, who should be specified by an "originator" key within the info dict. The value of this key should be a byte string containing the originator's DER encoded X.509 certificate. See BEP 35 [1] for details regarding torrent signing.

If a torrent is signed by its originator, and the originator's signature contains an "update-url" key inside of its optional info dict, that url will be used instead of the one in the torrent's info dict.

For each torrent with a feed URL, the client should periodically check for new downloads as described above. Once the feed URL for a torrent returns a valid torrent, the feed URL of the older torrent should no longer be checked. To continue providing updates, content providers should embed a feed URL into the newer torrent.

Example Torrent Format{
"announce": ...,
"info": {
"originator": com.bittorrent's DER encoded x.509 certificate,
"update-url": "http://www.bittorrent.com/update-feed",
...
},
"signatures": {
"com.bittorrent": {
"signature": info dict signature,
},
...
}
}
 
 

Share this post


Link to post
Share on other sites
Guest robv

We're working hard on getting an update out to everyone ASAP and you'll definitely be hearing from us soon.

Share this post


Link to post
Share on other sites

Looking forward to it. Are there any plans for making regular web site resources available through torrent? Something like, I go to a video streaming website and the browser looks at the ETag/Last Modified header and starts streaming the video from multiple peers. Of course there are obvious security and privacy concerns for something like this.

 

We're working hard on getting an update out to everyone ASAP and you'll definitely be hearing from us soon.

Share this post


Link to post
Share on other sites
Guest robv

Looking forward to it. Are there any plans for making regular web site resources available through torrent? Something like, I go to a video streaming website and the browser looks at the ETag/Last Modified header and starts streaming the video from multiple peers. Of course there are obvious security and privacy concerns for something like this.

 

No plans for this now. However, a publisher could detect our user agent and stream that video from a torrent when available.

Share this post


Link to post
Share on other sites

I really like the fact that I can click on a magnet link or a torrent file and see the content and download if I want to. However it seems to be way slower than using any torrent client. I know it's still work in progress but am I wrong to expect it to connect to and download from regular torrent users?

 

I also noticed that it sometimes just stops downloading until I kill the chrome.native.torrent process and restart Maelstrom.

Share this post


Link to post
Share on other sites
Guest robv

I really like the fact that I can click on a magnet link or a torrent file and see the content and download if I want to. However it seems to be way slower than using any torrent client. I know it's still work in progress but am I wrong to expect it to connect to and download from regular torrent users?

 

I also noticed that it sometimes just stops downloading until I kill the chrome.native.torrent process and restart Maelstrom.

 

Thanks for the feedback. We have some fixes that we'll be getting out as soon as possible that should make the experience a lot smoother. As far as downloads being slower than other torrent clients, this may be the cost of streaming versus standard prioritization. When the default magnet link view shows up and you try play back of media, the content is being streamed so that playback can start as quickly as possible. The download speed in this case will differ from traditional BitTorrent downloading.

Share this post


Link to post
Share on other sites

Hi,

 

I have a complete static website in a torrent; all images and stylesheets load fine on index.html, but browsing within the site is just not working - no reaction to clicking. Is there some test torrent with a full site available? The one single torrent I found in the forum (no docs?!) is for that game, which is just one page.

 

Thanks

Share this post


Link to post
Share on other sites

Is this for static websites only? Or for dynamic websites that require re-rendering and database access? (e.g. a php website).

I wish to know that too. I understand that at this moment Mealstrom only supports static websites, but I think this (really awesome) project will catch on only with some kind of (even limited) support for dynamic websites. What's the roadmap?

(Note to admins: I am unable to set my profile picture, I tried both custom and gravatar image.).

Share this post


Link to post
Share on other sites
Guest robv

@balupton @giulio currently it only supports static content. We're in the process of trying to make the platform more powerful so any suggestions or feedback really helps.

Share this post


Link to post
Share on other sites

I've made a .torrent for my website to be used with maelstrom, it's a good thing but that not easy.

I must admit it's not something that most of the webdesigners will be able to do.

 

I believe you should make a simple webpage where one enters the URL of its website (or at list the path from its computer), and then download its .torrent/magnet from this webpage. (eventually an option to feed a bitorrent client automatically, well I guess you know the stuffs better than me)

 

You have to make it user firendly if you want to be used by everybody (which we all hope)

Share this post


Link to post
Share on other sites

We are planning to support BEP 39 which makes updating torrents possible via a feed URL. You can read more about the feature here: http://www.bittorrent.org/beps/bep_0039.html

 

Right now this isn't reflected in the UI in any way but we hope to make an update that supports this feature available to all of our Alpha users soon.

 

It's based on http(s) instead of bittorrent protocol, so there is no way to make updating torrents without http servers. And it seems, that bittorrent protocol can be extended to support updates without using http links(for instance, using same mechanism as torproject uses for .onion links). Did you consider that option?

Share this post


Link to post
Share on other sites

@balupton @giulio currently it only supports static content. We're in the process of trying to make the platform more powerful so any suggestions or feedback really helps.

 

I too am very excited by this aspect of Maelstrom. Is there an early version in the nightlys that can be enabled?

 

Have you decided on a data replication format or protocol? How will a web page be given access to the data?

 

Will everything be in the browser or will there be a server-like structure like a bundled instance of NodeJS?

 

Can users login and sign data? Can a user hierarchy be created (mods and admins etc)?

 

So many questions!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...