3 ms·
Author here. Amusingly, I wanted to link to the HN discussion on the page, but couldn't figure out how to... I don't think it's possible! Something I hadn't con
by losvedir 11y ago
Author here. Amusingly, I wanted to link to the HN discussion on the page, but couldn't figure out how to... I don't think it's possible! Something I hadn't considered until just now with a content addressable web is there are no cycles in the links.
Edit: Another amusing anecdote. I've been following this on log2viz (the heroku realtime performance monitoring tool), and was aghast to see high response times and memory usage. Then I realized I was actually looking at the dashboard for one of my rails apps! Phoenix is sitting pretty at about 35MB memory usage, and a median response time of 5ms, so far.
- maxerickson 11y agoAre you able to adjust the url of the HN submission? I don't feel like creating one just to check, but that makes it easy to link the discussion, create the discussion before the page.
- losvedir 11y agoNo, but that would be the way to do it, for sure. There's a link to "edit" my submission, but the form it takes me to only allows updating the title. It displays the URL as ordinary text, rather than a text input.
- im3w1l 11y agoIt seems ID's are assigned sequentially, so by timing your submission you should be able to get a predictable url.
- bencoder 11y agoAn idea to make this(and the editable content suggestion in another comment) possible could be to add something to the protocol to define "previous versions" sha hashes. If you want to edit a page then create a new page which includes the sha hash of the previous versions. If you get a request for the content of a sha hash of an old version, you could suggest your sha hash as an updated version.
- kreeben 11y agoOr just send a new piece of content with the same ID and hope that it will win. But seriously, just a new created date. Same ID.
- nanofortnight 11y agoID is a hash of the content so that's not possible unless you find a hash collision (highly unlikely with sha256).
- deleted 11y ago[deleted]
- kreeben 11y agoHmm, ok, but that is just an implementation detail. I just see a really simlple service here that could become really beautiful if one could manipulate the content, once it is in your browser, so the next time it is passed along, it will have evolved. Into what? I don't know. But what if I seeded the system with an image, a simple drawing or a shape, vector or whatever, and then just sat back, observed how other people took it further. Like graffiti. Forking of content could be insteresting. Or a github, but a peer-to-peer version?
- shocks 11y agoThis is a really cool idea.
- 11y ago
- Filligree 11y agoThis is a problem that Freenet solved a long time ago. It means you need public-key cryptography rather than hashes for security, but they support updating pages--and, of course, any and all leaf content can still use hashes for better cacheability.
- sktrdie 11y agoDo you know about WebRTC and Webtorrent? You can do this even without a relay server. Just browser-to-browser.
- schwabacher 11y agoI have just written a library to make building something similar over webrtc easy: https://github.com/charlieschwabacher/ultrawave https://github.com/charlieschwabacher/ultrawave
- SomeCallMeTim 11y agoIt's worth noting that WebRTC still requires a server of SOME sort -- typically you want a "signaling" server, and you need at least a STUN server to pierce firewalls, though the latter can be found for free. And some corporate networks are too restrictive to be pierced by STUN, which means you need a TURN server, which is a relay server. But yes, 98% of the time, WebRTC can go directly browser to browser. As long as neither browser is Internet Explorer. Sigh.
- billmalarky 11y agoThese guys have an open source plugin that allows IE to join the webRTC party. http://skylink.io/plugin/ http://skylink.io/plugin/ This library they also have makes WebRTC cross browser compatible. https://github.com/Temasys/AdapterJS https://github.com/Temasys/AdapterJS
- cmdrfred 11y agoI never knew about STUN, this solves so many problems I've had. Thanks.
- amelius 11y ago> As long as neither browser is Internet Explorer. Sigh. If all popular torrent sites moved to in-browser downloads over WebRTC, virtually everybody would move away from IE :)
- amelius 11y agoIs it even possible to open a socket from a browser to another browser directly? I was under the impression that was restricted for security reasons (websites becoming botnets and such).
- mvanvoorden 11y agoI once solved a similar problem by creating a link at tinyurl and then updating that link to point to whatever the name of my uploaded file had become :)
- e12e 11y agoWell, the site already uses DNS as an escape hatch for getting a pointer to content, so setting up a http-redirector might be a good idea...
- deleted 11y ago[deleted]
- Achshar 11y agoOk I am at a loss here. Why can't you link this discussion on that page?
- pdenya 11y agoChanging the contents changes the hash and the hash is used in the url
- netcraft 11y agothe hash is a hash of the content itself, so the link is immutable - if you changed the content the link wouldn't be pointing to the same thing anymore.
- DSMan195276 11y agoThe web-pages are recognized by their hash, so you can't change them after you setup the page. The problem is that you would have to supply HN with the link to the page, and then go back and edit the page to include the link to the new HN article. Since you can't go back and edit the page, you can't include the link.
- tel 11y agoYou'd have to be able to generate some pretty fantastically unique hash collisions!
- ble 11y agoIt's great! Will the client complain if it receives content that doesn't hash from a malicious client?
- simcop2387 11y agoWould a page be able to leave and come back into the network by having a computer that's offline but viewing the page and then comes back? i.e. is there anything to prevent it?
- Freeboots 11y agoim not 100% sure how this all fits together, but you should be able to recreate a page, so long as the content was exactly the same, and therefor produced the same hash. So you could set it up to automatically recreate the page when your machine comes back online. is that what you meant?
- simcop2387 11y agoNot quite but I assumed similarly. I'm wondering if it'll connect to the peers automatically after coming back online if just left in the browser. If it did then it'd be possible to keep a page unpublished except when asked for through another channel. It's definitely a really interesting idea to play with. It makes me wonder if it could be used to create a nicer interface for things like Freenet by doing more clientside these days.
- spullara 11y agoI've actually seen people successfully get a tweet to link to itself through trial and error. You can try and guess the IDs and you will eventually get it right.
- femto 11y agoI just used firebug to alter the page in my browser. I changed the first heading from "This page exists only if someone is looking at it" to "What happens if I use Firebug to alter this page in-situ. Do I end up with malware?". Will this change propagate? Has anyone yet seen this modified page in their own browser? Edit: From the original page: "The server double checks the hash of the content it gets and then passes it along to the new person." I guess the answer is that the change won't propagate?
- losvedir 11y agoCorrect, the change won't propagate for the reasons you say. (See source [0]). Also, though, note that the content comes to you as a blob of JSON, which gets rendered into your page, and you respond to future content requests with that blob of JSON, rather than the HTML itself. [0] https://github.com/losvedir/ephemeral2/blob/master/web/channels/have_channel.ex#L21 https://github.com/losvedir/ephemeral2/blob/master/web/chann...
- femto 11y agoThanks for the explanation.
- INTPenis 11y agoI found this line amusing. >and you shouldn't be trusting me any more than any other random internet person. Because I did trust you more than most other random internet persons, I trusted your javascript by temporarily whitelisting it in my browser to view the contents. :)