[ANN] Link - The Blockchain File Sharing Protocol
-
[quote name=“HopeStillFlies” post=“41254” timestamp=“1386440056”]
Is there any way the concept of holding the magnet files can encourage or push people to use i2p for further security?I’m just envisioning people running the Link through Tor and going “Huh! It’s good enough for that. Let me go ahead run my torrent client through it.” and having a small nightmare about it.
[/quote]Well they can run the blockchain download through the Tor network. That’s easy to do. I personally run my uTorrent over Tor and while I won’t max my bandwidth that way, it works well enough.
-
Ok, I’ve made a few changes to the initial pass. Specifically I’ve changed it from a fixed-length block-based encoding scheme to a variable-length stream-based encoding scheme based on op-codes to maximize compression and minimize wasted space in the blockchain.
Now is the time to get your op-codes submitted for inclusion. The list is far from complete, but please read the description of the ones suggested so far and if you have any ideas for other ones please let me know!
-
Is there anything someone who doesn’t have cryptos to donate, and doesn’t have the underlying computer skills, can do to help? It think this idea is brilliant.
-
[quote name=“Kevlar” post=“41313” timestamp=“1386448154”]
Ok, I’ve made a few changes to the initial pass. Specifically I’ve changed it from a fixed-length block-based encoding scheme to a variable-length stream-based encoding scheme based on op-codes to maximize compression and minimize wasted space in the blockchain.Now is the time to get your op-codes submitted for inclusion. The list is far from complete, but please read the description of the ones suggested so far and if you have any ideas for other ones please let me know!
[url=https://github.com/TSavo/Link/blob/master/README.md]https://github.com/TSavo/Link/blob/master/README.md[/url]
[/quote]I would do this for opcodes:
1st byte = module slot
2nd byte = module functionSo what you have defined so far is module 0 - the core link module. I would move 10, 11, FE, FF to 0A, 0B, 0D, 0E.
Module function 0 for all modules is the module key. Module function F for all modules is the extension range. Function 0 would identify the module we expect to be installed there. Function F would allow us to extend a module over several slots.The module key could be a digest of module name, version, VFW Post, geocaching GPS info, and other identifiers - they wouldn’t need to be listed, just the digest would need to match. The extension range would tell us the beginning and ending module slot which are allocated.
So core module/module key = Opcode 00. The extension key just points to module slot 0 as beginning and end. Say module 1 is a track list and module 2 is a list of ratings. Then track list/module key = Opcode 10 and ratings list/module key = Opcode 20. Both would also have extension range with beginning and end 1,1 and 2,2.
This means 14 functions per module slot. It allows for extreme extending of any concepts we want to add without getting lost. Core module in slot 0 is reserved for basic link protocol. I would suggest reserving slot F as well. The rest can be used by extenders. That leaves 14 slots of 14 functions each, for whatever we want to do. There is some duplication of info, but that may be the best way to do it.
If this isn’t too weird, I’ll set up FLUX (Flux Link Unit eXchange) functions within this same scheme.
One thing I would add (Peter Falk voice): some of these functions may require read write capability, but that’s for another time.
One favor Kevlar, I want to be able to read these streams from nodejs just for correctness in encoding. I might need to check with you on that.
-
[quote name=“zerodrama” post=“41331” timestamp=“1386453754”]
I would do this for opcodes:
1st byte = module slot
2nd byte = module function
[/quote]Sounds good. I’ll start organizing them next time I’m in the doc.
[quote]
One thing I would add (Peter Falk voice): some of these functions may require read write capability, but that’s for another time.
[/quote]Yeah, I’ve thought about a version scheme. It wouldn’t be hard. You could just say that this transaction succeeds this prior transaction, and sign the whole thing for security so only intended authors could version.
[quote]
One favor Kevlar, I want to be able to read these streams from nodejs just for correctness in encoding. I might need to check with you on that.
[/quote]Yep, I’m probably going to be doing the same in my initial pass. I’ve not decided on a language just yet. I’ll be sure to post anything nodish. Sails.js is lookin’ pretty rockin.
-
[quote name=“Kevlar” post=“41346” timestamp=“1386455714”]
[quote]
One thing I would add (Peter Falk voice): some of these functions may require read write capability, but that’s for another time.
[/quote]Yeah, I’ve thought about a version scheme. It wouldn’t be hard. You could just say that this transaction succeeds this prior transaction, and sign the whole thing for security so only intended authors could version.
[/quote]I’m gonna experiment with soft-reorgs here. If it works we can expand it to end 51% attacks. This would allow a safe environment for large and small currencies unencumbered by the philosophies of big players or unreasonable devs (ONE TROO COIN).
[quote]
[quote]
One favor Kevlar, I want to be able to read these streams from nodejs just for correctness in encoding. I might need to check with you on that.
[/quote]Yep, I’m probably going to be doing the same in my initial pass. I’ve not decided on a language just yet. I’ll be sure to post anything nodish. Sails.js is lookin’ pretty rockin.
[/quote]I normally hate frameworks (I want to know everything lol), but that looks very nice.
-
[quote name=“zerodrama” post=“41368” timestamp=“1386460296”]
I’m gonna experiment with soft-reorgs here. If it works we can expand it to end 51% attacks. This would allow a safe environment for large and small currencies unencumbered by the philosophies of big players or unreasonable devs (ONE TROO COIN).
[/quote]So, this could mean an end to ACP?
-
[quote name=“Tuck Fheman” post=“41383” timestamp=“1386463986”]
[quote author=zerodrama link=topic=5558.msg41368#msg41368 date=1386460296]I’m gonna experiment with soft-reorgs here. If it works we can expand it to end 51% attacks. This would allow a safe environment for large and small currencies unencumbered by the philosophies of big players or unreasonable devs (ONE TROO COIN).
[/quote]So, this could mean an end to ACP?
[/quote]The danger from 51% comes from two places:
1. 2 options - accepted or rejected - this gives us the > 50% value. FIX: create partial transactions, leading to more options, which will then require n-1/n of the network to override given n options.
2. no barrier once you cross the threshold - this means reorgs are free. FIX: make reorgs cost processing power#1 is a logical puzzle and will take some sideways thinking
#2 can be implemented as a feature and generalizedACP is a crutch. It will be removed eventually.
There are a couple more subtle reasons. But we’ll leave those for later.
-
And now for something completely different…
-
Ok, Payload op-codes are in, Meta-data op codes are up next. Also ZD’s organizational changes to op-codes has been implemented. 0 is Payload, 1 is Meta-data, and F is sequencing.
Anyone else have any other op-codes they would like to see?
-
[quote name=“Kevlar” post=“41442” timestamp=“1386475508”]
Ok, Payload op-codes are in, Meta-data op codes are up next. Also ZD’s organizational changes to op-codes has been implemented. 0 is Payload, 1 is Meta-data, and F is sequencing.Anyone else have any other op-codes they would like to see?
[/quote]Suhweet. :)
-
[quote name=“Kevlar” post=“41442” timestamp=“1386475508”]
Anyone else have any other op-codes they would like to see?
[/quote]be gentle, I have no clue what’s possible or already handled by something else but …
If there will exist categories, will they be handled via the keywords?
(source file) File type.
(source file) File size.
A few “Arbitrary user-defined meta-data” to be used as users please. Possibly to cover the three above.Edit : What about the ability to make these private? Sure the source file can be encrypted, but what about allowing entries to be private (password protected or otherwise) or the ability to designate who the source files are made available to be it individuals or a group or a continent, etc.
-
I’ll take #2 for Flux. I’ll play with some kind of module registration steps but we are go. o/.
-
[quote name=“Tuck Fheman” post=“41448” timestamp=“1386477154”]
[quote author=Kevlar link=topic=5558.msg41442#msg41442 date=1386475508]
Anyone else have any other op-codes they would like to see?
[/quote]be gentle, I have no clue what’s possible or already handled by something else but …
If there will exist categories, will they be handled via the keywords?
(source file) File type.
(source file) File size.
A few “Arbitrary user-defined meta-data” to be used as users please. Possibly to cover the three above.
[/quote]I’m not completely against that, but file type is discoverable from format in the beginning of the file. File size sounds like an important one tho.
Keep in mind, we can use modules now and modules can replace each other except 0 and F. 1 is a feature of Link so required for full Link, but it’s not as critical as the core and sequencing.Think of it like mix and match modules in the same blockchain for custom applications without the 80+ odd coin.
-
Kevlar, I think you did it better. With the exception of 0 and F, the 2nd byte F is the only one that needs to be explicitly describing the module itself.
So now there’s 15 OpCodes for each module.0 is the core, F keeps it tied together, 1 is for users. I claim 2 (20 - 2F) for FLUX.
EGGCELENTE.
-
There’s no one else doing this lol. I love it. They’ll be cloning us soon.
-
Kevlar, I forked the suppository. I’ll be working on Modules.md and modules/FLUX/README.md. Goosebumps.
-
[quote name=“Tuck Fheman” post=“41448” timestamp=“1386477154”]
If there will exist categories, will they be handled via the keywords?
[/quote]Categories are something that can be left up to the users to define. For instance, they could make a special keyword that starts with a #, and whatever follows it is a category… “#tucksporn”. Then it’s up to the client how they want to deal with organizing them.
[quote]
(source file) File type.
(source file) File size.
[/quote]Included and included! 8)
[quote]
A few “Arbitrary user-defined meta-data” to be used as users please. Possibly to cover the three above.
[/quote]Included! 3 for 3! :D
[quote]
Edit : What about the ability to make these private? Sure the source file can be encrypted, but what about allowing entries to be private (password protected or otherwise) or the ability to designate who the source files are made available to be it individuals or a group or a continent, etc.
[/quote]Well, it’s the blockchain. You can’t specify who can/can’t see the blockchain. Encryption is the correct solution.
-
[quote name=“zerodrama” post=“41449” timestamp=“1386477214”]
I’ll take #2 for Flux. I’ll play with some kind of module registration steps but we are go. o/.
[/quote]Perfect. :) 2 is reserved for Flux!
[quote author=zerodrama link=topic=5558.msg41457#msg41457 date=1386478519]
Kevlar, I forked the suppository. I’ll be working on Modules.md and modules/FLUX/README.md. Goosebumps.
[/quote]Awesome! Very excited. ;D
-
[quote name=“Kevlar” post=“41459” timestamp=“1386479163”]
“#tucksporn”
[/quote]lulz
[quote author=Kevlar link=topic=5558.msg41459#msg41459 date=1386479163]
Included! 3 for 3! :D
[/quote][Celebratory GIF]