Forum Home
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Popular

    [ANN] Link - The Blockchain File Sharing Protocol

    Technical Development
    19
    138
    72838
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • N
      Nixxle last edited by

      That looks like it would be one giant chain. Please forgive this question, because it’s been birthed in a pool of total ignorance, but would a file sharing blockchain suffer issues from a ballooning size? I know there has been mostly technical discussion here, so if its been addressed or is irrelevant, just pat me on the back and give me a sugar cookie.

      1 Reply Last reply Reply Quote 0
      • zerodrama
        zerodrama Regular Member last edited by

        [quote name=“Nixxle” post=“41910” timestamp=“1386564560”]
        That looks like it would be one giant chain. Please forgive this question, because it’s been birthed in a pool of total ignorance, but would a file sharing blockchain suffer issues from a ballooning size? I know there has been mostly technical discussion here, so if its been addressed or is irrelevant, just pat me on the back and give me a sugar cookie.
        [/quote]

        Yes it would.

        Link protocol simply makes torrent files available.

        Flux will enable massive file storage.

        1 Reply Last reply Reply Quote 0
        • K
          Kevlar Spammer last edited by

          [quote name=“Nixxle” post=“41910” timestamp=“1386564560”]
          That looks like it would be one giant chain. Please forgive this question, because it’s been birthed in a pool of total ignorance, but would a file sharing blockchain suffer issues from a ballooning size? I know there has been mostly technical discussion here, so if its been addressed or is irrelevant, just pat me on the back and give me a sugar cookie.
          [/quote]

          No… blockchains with lots of usage suffer from a ballooning size. When you embed Link in the blockchain, you destroy coins, meaning you’ll NEVER send them again. That means you’ll NEVER grow the blockchain with those coins again.

          1 Reply Last reply Reply Quote 0
          • K
            Kevlar Spammer last edited by

            Ha! I did it.

            Wrote up a program in Node that accepts the magnet link, name, and keywords, and generates the addresses. The code is in github here: https://github.com/TSavo/Link

            You can even check them on blockchain.info, and see the link encoded message!

            [code]
            C:\NodeLink\NodeLink>node LinkAddressMaker.js
            What is the magnet link? magnet:?xt=urn:btih:fbab636f9c91fb58038055dfce83cd8099a
            7366e&dn=TPB+AFK%3A+The+Pirate+Bay+Away+from+Keyboard+%282013%29+720p+h264+581m
            What is the name?TPB AFK: The Pirate Bay Away from Keyboard (2013) 720p h264 581
            m
            Keywords?TPB AFK,The Pirate Bay,Away From Keyboard,Simon Klose,Documentary,720p
            17y2f5PYdSwFhzPTjPpMTVmZVTsttnpzk9
            1B3qGjZ9SeqtuTcddSk5GHBry8BQnpRDWz
            19xGyZ8rM6BxouZH6NDRVpJr4dkwrCfZ2M
            16EPybUXLYBsUvPGCjNYdvPh8V5SnACDYY
            16waq56MzXV8RKtA4x8XB34MLcJZHAEiTv
            1C3gki8S17uBbE8WTnkKe1ciihEJvSphn9
            15PpNfoKrEqwFoEPo8maqgUJM5Wfwe9vBe
            1AwfpgH8E6c4K273EVsd4jNY7oheZybKZz
            19tHysnPeZZuiXsxwBGxzuxsXzPEjWxBz9
            1C4pgbr41jxhfWpVEkvHGSih5eRGUiWjDy
            15aVij3HUiLfCwKz7mEroiFQbsYqkAUjKZ
            1AWzRKnFNC6y5QLSngBMc4JDGM2AMbJAog
            1BS5WuK3FynDCSjQpAwE2HAT9MwHmnCeGn
            1AtMVTEx3eduyjRvAcUhok4Gsd3YjsZdGy
            1BDCgV8ZgmTFz18ASzmhiJgXqbYuxPToBr
            [/code]

            Try putting that first address into blockchain.info. Not only is it a valid address, but if you look at the hash160, you’ll see the Link protocol in action!

            [code]
            4c696e6b0100866d61676e65743a3f78743d7572
            ^^^^^^^^ Link Start sequence
            ^^ Inline payload op-code
            ^^^^ size
            ^^^^^^^^^^^^^^^^^^^^^ The magnet link (well, the first few bytes)
            [/code]

            Ooooooooomg so exciting!

            Ok, next up is to do it with Feathercoin addresses, and then to actually send the transaction using your donated coins.

            But for that I need to know: What’s the Feathercoin version number? Bitcoin is 0x00 for mainnet. What’s FTC’s?

            1 Reply Last reply Reply Quote 0
            • ?
              A Former User last edited by

              [img]http://whinybaby.files.wordpress.com/2013/04/mind-blown.jpg[/img]
              +1 rep
              and
              110 ftc coming your way.

              [img]http://image.bayimg.com/2b719c8bc91b2374fe431bf2e7c73d60bcd26f47.jpg[/img]

              [size=8pt]Sorry, tried to cut or hide or spoiler but I couldn’t figure out how. If someone can give me the BBcode, I’ll fix this… or simply just remove the screencap.[/size]

              1 Reply Last reply Reply Quote 0
              • K
                Kevlar Spammer last edited by

                Ok, I spent a bunch of time cleaning up the code.

                You can now do:
                [code]
                var sequence = new LinkSequenceBuilder();
                sequence.addPayloadInline(magnet);
                sequence.addName(name);
                sequence.addKeywords(keywords);
                var buf = new Buffer(sequence.toString(), “hex”);
                var addresses = encodeAddresses(buf, 0x00);
                for (x in addresses) {
                console.log(addresses[x]);
                }
                [/code]

                Which I think is a whole lot cleaner than my first pass. Bushstar just got back to me with the version number for Feathercoin so I’m gonna give it a try here in just a few…

                Edit: Tried it out in the code… looks pretty feathery to me!!!

                [code]
                C:\NodeLink\NodeLink>node LinkAddressMaker.js
                What is the magnet link? aaaaaaaaaaaa
                What is the name?aaaaaaaaaaaa
                Keywords?aaaaaaaaaaaaaaa
                6khUSbZaZtMv7czsXDqxWKgKTxofTBbtzY
                6djhcj3jj1v97miAFqNZ97Vzdaqw1RCTQS
                6ncLzEh3A1MJ3G7CkakETFdLwE3h93Aa1z
                [/code]

                I’m going to give it a try… wish me luck!

                1 Reply Last reply Reply Quote 0
                • ?
                  A Former User last edited by

                  [me=Calem]wishes Kevlar all the luck possible![/me]

                  1 Reply Last reply Reply Quote 0
                  • K
                    Kevlar Spammer last edited by

                    So it ALMOST worked using the client.

                    Unfortunately the client stuck the change address in the middle of the sequence:

                    [url=http://ftc.cryptocoinexplorer.com/tx/cc66ef78c1bcfbaf2a691b3dda77847bc80350ad262f17af38f7950879ecaef2#o2]http://ftc.cryptocoinexplorer.com/tx/cc66ef78c1bcfbaf2a691b3dda77847bc80350ad262f17af38f7950879ecaef2#o2[/url]

                    Bummer. Owell, this simply means I’ll have to write my own client to do the sending so it always gets the sequence in the right order.

                    OMG I’m so excited that this almost worked. If you ignore that change send, you can see it totally did exactly what it was supposed to!!!

                    Tomorrow I’ll work on some code to reverse the process and read them back out of the blockchain. It’s pretty straightforward actually. ;D

                    1 Reply Last reply Reply Quote 0
                    • ?
                      A Former User last edited by

                      Hi five!

                      I’ll be watching with anticipation. This seems to be the most awesome idea I’ve seen pitched for the use of the network to date.

                      100% Behind you Kevlar!

                      1 Reply Last reply Reply Quote 0
                      • E
                        Ernesto last edited by

                        astonished :o

                        1 Reply Last reply Reply Quote 0
                        • zerodrama
                          zerodrama Regular Member last edited by

                          Can we use Pay to Script Hash for Link?

                          https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki

                          1 Reply Last reply Reply Quote 0
                          • A
                            Aldanga last edited by

                            This is really sweet. I’m going to take a look at the spec tonight after work.

                            1 Reply Last reply Reply Quote 0
                            • K
                              Kevlar Spammer last edited by

                              [quote name=“zerodrama” post=“42025” timestamp=“1386592639”]
                              Can we use Pay to Script Hash for Link?

                              https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki
                              [/quote]

                              Yes, we could, but I’m not sure what would be gained. It’s 20 bytes in the address, or it’s 20 bytes in the script. Since this doesn’t need to interoperate with the blockchain protocol, I feel pretty strongly that making it as simple and standard as possible is the way to go, unless there’s a really compelling reason to use p2sh. Can you think of one?

                              1 Reply Last reply Reply Quote 0
                              • zerodrama
                                zerodrama Regular Member last edited by

                                [quote name=“Kevlar” post=“42140” timestamp=“1386615479”]
                                [quote author=zerodrama link=topic=5558.msg42025#msg42025 date=1386592639]
                                Can we use Pay to Script Hash for Link?

                                [url=https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki]https://github.com/bitcoin/bips/blob/master/bip-0016.mediawiki[/url]
                                [/quote]

                                Yes, we could, but I’m not sure what would be gained. It’s 20 bytes in the address, or it’s 20 bytes in the script. Since this doesn’t need to interoperate with the blockchain protocol, I feel pretty strongly that making it as simple and standard as possible is the way to go, unless there’s a really compelling reason to use p2sh. Can you think of one?
                                [/quote]

                                My brain instinctively goes meta like doge on crack. P2SH would keep that window open. We could use scripts to save some common searches, such as for translations of content that is in torrents. The torrent would be in one place and people could use different addresses to find parts they want.

                                Just a habit of mine of taking any constant assumption and making it a variable.

                                1 Reply Last reply Reply Quote 0
                                • N
                                  Nixxle last edited by

                                  My head exploded like Calem trying to figure out how it works, but as the person on the sidelines,
                                  very happy to watch this unfold.
                                  [img]http://waybeyondthedream.files.wordpress.com/2013/01/happy_life_.jpg[/img]

                                  1 Reply Last reply Reply Quote 0
                                  • K
                                    Kevlar Spammer last edited by

                                    [quote name=“Nixxle” post=“42254” timestamp=“1386628616”]
                                    My head exploded like Calem trying to figure out how it works, but as the person on the sidelines,
                                    very happy to watch this unfold.
                                    [/quote]

                                    I’m excited too! With all the donations I’ve received I’ve got all I need to make this really work. I expect that by sometime in January, I’ll have something automated that non-techie users can use. With the spec finished (enough to be usable) and the encoding code done, it’s time to do decoding, and then hook it up to the network. If I have the free time, I hope to have it done by this time next week, and then we can start on user interfaces for it! :)

                                    BTW: Is that a pic of you? Or just some random person on the interweb?

                                    1 Reply Last reply Reply Quote 0
                                    • N
                                      Nixxle last edited by

                                      [quote name=“Kevlar” post=“42265” timestamp=“1386629803”]
                                      BTW: Is that a pic of you? Or just some random person on the interweb?
                                      [/quote]

                                      Ha! Thats totally a pic off of google images under the search happy. I prefer to think of myself as grossly unphotogenic. For some reason that makes me feel fairly content. Like…I take a strange little joy in the idea that my face could break a camera.

                                      [quote author=Kevlar link=topic=5558.msg42265#msg42265 date=1386629803]
                                      I’m excited too! With all the donations I’ve received I’ve got all I need to make this really work. I expect that by sometime in January, I’ll have something automated that non-techie users can use. With the spec finished (enough to be usable) and the encoding code done, it’s time to do decoding, and then hook it up to the network. If I have the free time, I hope to have it done by this time next week, and then we can start on user interfaces for it! :)
                                      [/quote]

                                      Its pretty awesome. I’m glad people have had coins to give. I’m too new to have successfully mined coins, but if I ever get to that point, I’'ll be happy to support this too. I’m especially happy for the interface for the people like me, and super happy y’all are using your expertise to do this. :)

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User last edited by

                                        [s]Hey Kevlar… Did you get that 110 ftc I tried to send?

                                        My wallets sync’d but it’s still saying 0 of 6 confirms…

                                        I’ve double checked the address and that’s fine.

                                        I can’t see the deposit in the blockchain either.

                                        Any idea what I’ve done wrong or am not seeing?[/s]

                                        Never mind! Confirms going through now.

                                        1 Reply Last reply Reply Quote 0
                                        • K
                                          Kevlar Spammer last edited by

                                          And… decoding works!

                                          Here’s the output for you non techies with annotations.

                                          [code]
                                          ***** First I enter in the test data *****
                                          What is the magnet link? This is a test
                                          What is the name?this is a bigger test
                                          Keywords?This is to make sure we see no data loss
                                          ***** This results in a bunch of addresses for FTC *****
                                          6khUSbZaZtSc6s2yRJQBY7q9E96oFjymCa
                                          6pK8LVhU99pxqjUzXGudZfhaTuHkGSo2Mf
                                          6gh3r1sVpquUNCCQE6vLotLuAX1d8tuQqq
                                          6ncYz4mkS7pZHsXEwDEydR1Xb1tESfQ6zV
                                          6ncjkJzuPg2TuZ2sdRspFwDBSKTRwCiwLs
                                          ***** I then take those addresses, and decode the Link Sequence embedded in them.
                                          Presumably these would come from the blockchain itself. *****
                                          4c696e6b01000e546869732069732061207465737410001574686973206973206120626967676572
                                          20746573741200285468697320697320746f206d616b65207375726520776520736565206e6f2064
                                          617461206c6f7373000e0e0e0e0e0e0e0e0e0e0e
                                          ***** I then run them through a parser. You can see each data marker being found in the stream *****
                                          01
                                          10
                                          12
                                          00
                                          ***** Finally I output the decoded data *****
                                          This is a test
                                          this is a bigger test
                                          This is to make sure we see no data loss
                                          [/code]

                                          This means round-trip publishing, AND reading back works!

                                          Next up is to automate the task of putting it INTO and getting it OUT OF the blockchain. :)

                                          1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User last edited by

                                            Awesome awesome awesome!

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post