5 ms·
I'm the creator of Locutus - happy to answer any questions.
by sanity31415 5y ago
I'm the creator of Locutus - happy to answer any questions.
- rklaehn 5y agoIt is really hard to see how this is intended to work from the README. Where is a good example of the programming model? This one? https://github.com/freenet/locutus/blob/main/contracts/test_contract/src/lib.rs https://github.com/freenet/locutus/blob/main/contracts/test_... Since this is written in rust: is there also a version of freenet in rust in the works?
- sanity31415 5y agoWe're definitely still working on how we explain it. That is an example of the contract API - you can find a better explanation of it here: https://github.com/freenet/locutus/issues/9 https://github.com/freenet/locutus/issues/9 We're not re-implementing Freenet in Rust, this is a separate project with related but different goals - however it does borrow a number of ideas from Freenet (like using a small-world network as a DHT).
- texaslonghorn5 5y agoGiven that Locutus was meant to be a centralized human intermediary for the Borg, is the name of the platform intended to be ironic? If so, I like it!
- sanity31415 5y ago:) "Locutus" also means "speaker" in Latin. Not sure we're going to stick with the name "Locutus" when we launch, so for now it's just a working title for the project.
- the_arun 5y agoDefine - Decentralized. Does it mean my data can stay in anyone’s computer safely? does it use p2p or such for communication? What are the sizing limitations? Where can read more?
- sanity31415 5y agoYes, it's P2P. Your data will be distributed around the network on the computers of other peers, with data integrity guaranteed through cryptography. With respect to reading more, currently there isn't too much beyond the Github project, although you can learn more about my previous work here: https://en.wikipedia.org/wiki/Freenet https://en.wikipedia.org/wiki/Freenet
- traverseda 5y agoA lot of these projects seem to utilize append-only data structures. It looks like this one doesn't? For example let's say I set of a chat room, and someone spams multiple GBs of data into a channel, can my moderators (in principle) remove those messages without essentially just publishing a new message saying "please ignore all this spam"? How do you deal with "network splits", that is a smart contract that could have two equally valid states? You say you use contracts as the key in a key-value store, can you have the same contract with two different data sets? Like two different chat rooms that work the same way but which have different moderators and different message histories?
- sanity31415 5y ago> A lot of these projects seem to utilize append-only data structures. It looks like this one doesn't? Correct, in Locutus contract state is mutable, with the contract determining whether changes are permitted and how they are applied to the state. > For example let's say I set of a chat room, and someone spams multiple GBs of data into a channel, can my moderators (in principle) remove those messages without essentially just publishing a new message saying "please ignore all this spam"? Yes (although such spamming shouldn't be possible in the first place thanks to the reputation system). > How do you deal with "network splits", that is a smart contract that could have two equally valid states? It should be very rare, but contract states that get out of sync can always be "merged" to produce a new state, peers will do this automatically as soon as they figure out the mismatch. The small world protocol that determines network topology should make network splits very unlikely. > You say you use contracts as the key in a key-value store, can you have the same contract with two different data sets? Like two different chat rooms that work the same way but which have different moderators and different message histories? Yes, a contract consists of web assembly code to specify the contract functionality, and also "parameters" which are arbitrary data that "configures" the contract (chat room name, owner, etc).
- traverseda 5y agoI've got to say, this looks like a solid approach. If you can handle content-addressed data storage well I can really see this taking off in a way others have not. I've seen a lot of thing similar to this, but this is the first one that has the right set of features that I think it's actually useful. I'll be keeping a close eye on it!
- ilaksh 5y agoIt seems like there is a lot of overlap with some leading edge cryptocurrencies (such as Algorand, which also has Turing complete contracts that control state). Does Locutus have a facility for something like payments? Also, although web assembly can theoretically be highly optimized by compiling to native code, there are hard limits on scalability especially since many things need to be executed in a specific order. So you have some mechanism for sharding, or are all computations repeated by 100% of the network? Also is there a mechanism for sharding data? Anyway, I believe that the future of cryptocurrencies, money, and new types of browsers or even normal web applications will all skew heavily towards web assembly.
- sanity31415 5y ago> Does Locutus have a facility for something like payments? It should be possible to build a cryptocurrency on Locutus, using the arbiter mechanism to prevent double-spending. > So you have some mechanism for sharding, or are all computations repeated by 100% of the network? Also is there a mechanism for sharding data? Computations are not replicated across the network. There is a mechanism that serves a similar purpose to sharding but is more "organic". Peers are assigned locations in the network when they join (a number between 0.0 and 1.0). Contracts also have locations determined from a hash of the contract code itself, and peers store contracts that are close to their location. The more people using a contract the more widely cached it will be, as a form of auto-scaling. Locutus uses a small-world network to allow contracts to be found very quickly in an entirely decentralized way.
- cropcirclbureau 5y agoIncluding big overlap with Holochain (which also has WASM and Rust but maybe a bit too ambitions), AD4M protocl over Holochain and maybe Gun. Always glad to see more effort in this area though.
- tough 5y agoCan I use this to build a internet video archive a la netflix? I don't trust the copyright owners to do so forever.
- deleted 5y ago[deleted]
- sanity31415 5y agoIt's more designed for distribution than bulk storage, but yes - this should be possible.
- EGreg 5y agoHow to best get in touch with you privately? There is a lot of interesting research we had to do with regard to implementing byzantine consensus and securing large amounts of value using this same kind of underlying framework. We use Kademlia DHT for swarming and then rely on some mathematical papers from 2007-2015 to estimate the probability of taking over a section of the network and preventing further progress. You’ll need to periodically shuffle consensus groups and a few other things, in order to recover from sabotage. I had to speak to Leslie Lamport, the people at SAFE network, Ripple etc. about aspects of the system. As it is right now, are you planning to have byzantine consensus for these contracts? Or just try to do verifiable computation?
- sanity31415 5y agoState changes propagate virally through peers storing any given contract. If a peer doesn't get an update for whatever reason there are a variety of mechanisms that get it back in sync ASAP, so it will be eventually consistent. The contract ensures that the state is valid both before and after any change and every peer who sees the state will ensure it is valid, so it is verifiable computation in that sense. Happy to chat - you can pm me on reddit or twitter, username "sanity" in both cases.
- EGreg 5y agoFollowed you as @IntercoinOrg. Need you to follow me back on Twitter to send you a DM.
- hitovst 5y agoIs Locutus a fork of SAFE Network?
- sanity31415 5y agoNo, it's unrelated. It's most closely related to https://freenetproject.org/ https://freenetproject.org/ - which was a previous project of mine.
- emacsen 5y agoDid you know that Arne and I have been working on a more universal secure base storage spec (ie everyone should stop reinventing the base blocks that underlie a secure CAS)? Just curious. :)
- sanity31415 5y agoI wasn't aware, I spoke to Arne a few weeks ago but I don't think he brought it up.
- aa-jv 5y agoWill we ever see an implementation that doesn't require a web browser?
- sanity31415 5y agoIt will have a websocket-based API so can work with any client software that can talk to that, no browser required.
- TimWillebrands 5y ago