Hot answers tagged

171

Both Swarm and Whisper are complementary technologies contributing to the vision of Ethereum as a "world computer". When imagining Ethereum as a metaphor for a shared computer, it should be noted that computation alone is not enough. For a computer to be fully useful, it also needs storage to "remember" things and bandwidth to "communicate" them. This could ...


78

Both Peer to peer Data sharing network in which files are addressed by the hash of their content (Content-addressable) Decentralized file transfer systems Can be used to store the HTML, CSS and JavaScript that implement an application on top of the other decentralized systems. Can be used to store (arbitrary) static files. Some imply that Swarm may be ...


26

Adding to tayvano's answer, the main author of Swarm has written a detailed perspective. Here are some parts of his answers (edited for clarity): Similarities Swarm and IPFS both offer comprehensive solutions for efficient decentralised storage layer for the next generation internet. Both high level goals and technology used are very similar... As a ...


20

Here's one illustration of distributed and decentralized systems: Distributed computing has a long history in computer science ("became its own branch of computer science in the late 1970s and early 1980s"). A distributed system is a model in which components located on networked computers communicate and coordinate their actions by passing messages. ...


13

While I mainly agree with eth's answer, I would like to spin up some confusion and since you are writing a paper, it's worth to mention that older literature is not consent on that determination of decentralized and distributed. In that context, Baran (1962) is often quoted, from "On Distributed Communication Networks", explaining it like that:


13

No, you will have to store your data somewhere else and store the hash of this data and its location in the blockchain. You should have enough space to store it but remember the shorter your data is the less gas you need. So use URL shorteners. Storing data into a transaction costs gas an blocks have a dynamic gas limit. You would have to make the gas limit ...


13

I don't agree at all. Plus, @Meije is from Storj Team. IPFS and Swarm are not just an idea but the most advanced technologies/protocols in decentralised blockchain based storage. IPFS and Swarm are being used by the blockchain community. Swarm: Swarm is part of the Ethereum stack http://swarm-guide.readthedocs.io/en/latest/ IPFS: https://github.com/...


11

whisper is part both the go and c++ clients. It is a fully functional implementation. swarm is being actively developed by the go-team. See the Devcon1 talk for the big picture. See the issues labeled 'swarm' on github. POC1 will be public and integration to Mist will start after some more serious network integration testing. Work towards using IPFS as ...


9

It's basically the other way around. The Ethereum blockchain will store a hash that points to a file in either Swarm, IPFS or something similar. From a DApp point of view the following could happen in a theoretical distributed twitter-clone: You go to my-awesome-app.eth in the Mist browser. The domain gets translated to a unique Swarm hash. Swarm ...


8

Such a feature (interpreted literally as access to content) is impossible for the same reason as random number generation, generic web access or system time: the VM has to be fully deterministic black box, executing exactly the same way in all nodes processing transactions. However, indirect 'access' will be possible in a similar way to btc relay: Indirect ...


7

Whisper is not receiving funding from the Ethereum Foundation but is still being developed on by developers in their spare time. A new version 5 is reaching its final stage soon. If you're interested you can talk to developers on Gitter in the Whisper channel: https://gitter.im/ethereum/whisper. Swarm still is being developed and you can read more ...


6

You need to add '0x' to the beginning of the content hash in the setContent function. publicResolver.setContent(namehash('5.test'), '0xf1a669a425b378bd8034fe0df7fea098c8b932a6037b688764afda1e92a8db1e', {from: eth.accounts[0], gas: 100000})


6

There are two main incentive systems within SWARM, Bandwidth Incentives, and Storage Incentives. Bandwidth incentives use the SWAP (Swarm Accounting Protocol). Basically each node keeps sets a highest accepted chunk price (how much you are prepared to pay per chunk) and a offered chunk price (how much you are asking to deliver a chunk). When information is ...


6

When you upload from the swarm console, you can give the default entry as the second argument like this: bzz.upload('/path/to/dir/', ,'index.htm') Similar functionality is being added to swarm up using swarm --index-file index.htm up --recursive /path/to/dir and will be extended to allow for multiple directories. See this github issue for more: https:/...


5

Just to point out, you don't need the public gateway. When you have a swarm node running, you have your own gateway at http://localhost:8500/bzz:/. (I'd post this as a comment but stackexchange won't let me. Apologies.)


5

UPDATE: swarm-guide at RTD http://swarm-guide.readthedocs.io/en/latest/usage.html (Work in progress, expect decent status by mid december 2017) but native to which level? so there three levels that support the bzz family of uri schemes there is mist with builtin support or in your normal browser https://github.com/ethereum/go-ethereum/blob/swarm/swarm/...


5

Watch this demo to setup IPFS node https://www.youtube.com/watch?v=8CMxDNuuAiQ Once Node is setup and you are able to create files in your node and access it then follow these steps. Command to install the ipfs js library npm install ipfs --global Here is the sample code to perform operations on an IPFS node https://github.com/ipfs/js-ipfs/blob/master/...


4

The reddit post you link to is rather old. Why don't you try http://swarm-gateways.net now? We have a brand new cluster backing the gateway. It is true that it has been down a lot in the past, but that is because swarm is under heavy development. It will only get more stable with time. To run your own swarm node, simply follow the swarm guide: https://...


4

Possible answer: It is not entirely clear where Swarm and Whisper fit into the development roadmap and when or if they will be delivered by the same developers that developed the EVM... Source


4

Replication and redundancy minimum nodecount to replicate each chunk is effectively achieved by the syncing protocol: the protocol ensures that each chunk when sent for storage is relayed all the way the nodes closest to the chunk's hash address. closest nodes broadcast the chunk to all peers in their "most proximate bin" (ie n-strong local neighbourhood ...


4

So how can I prevent my server from eating up disk space? There is a JSON configuration file in your bzz directory. You can set the two relevant storage capacity options to a custom value. You find this in the relevant section of the swarm guide Note: Zero memory cache size (CacheCapacity) is not going to work. Set that to at least a decent value of a few ...


4

In swarm "blocks" are called chunks. If you download a chunk, it will be stored on your machine. Later, when requested, it will be retrieved locally. Files are made up collections of chunks (organized in a Merkle Tree). If a version of a file contains one or more of the same chunks as the previous version, those chunks will still be retrieved locally. A ...


3

To enable whisper just run Geth with the --shh Enable Whisper flag i.e. geth --shh To enable SWARM you need to Build Geth & Bzzd (Swarm Daemon) from source: go get -d github.com/ethereum/go-ethereum go install github.com/ethereum/go-ethereum/cmd/geth go install github.com/ethereum/go-ethereum/cmd/bzzd Then run $GOPATH/bin/bzzd. Note you need to ...


3

No. Of course it's possible what you suggesting, but no, because you have a major mixup in terminology. For a peer 2 peer communication layer, have a look at devp2p. Here is the specification. For actual data/file transfer have a look at swarm, the peer 2 peer file hosting protocol. (See also.) Whisper is a peer 2 peer encrypted messanging protocol, ...


3

Just adding more explanation: Your website is sitting on a virtual host described by a manifest file. The manifest has entries associating paths to documents. Associating the empty path to a hash is totally legit manifest entry. A manifest can also be thought of as list of paths on a filesystem, say the recursive contents of a directory. This equivalence ...


3

I think the best summary is here: Differences tl;dr Subtle but important differences in both projects design will likely keep the two projects steady and separate on their own relative tracks. Since the big picture and the high level solution are so magically aligned, the differences can be found elsewhere. I will group them under: (A) ...


3

When I tested a couple of weeks ago, whisper works inside the geth client, in that messages can be sent, and that messages can be received using filters. When I tried using the web3 client, which makes rpc calls to geth for similar functions, I found that sending messages worked, but creating filters failed (so I could not receive messages). No replies ...


3

You are missing a resolver. On the console, I get: > ens.resolver(namehash('5chdfgh.eth')) "0x0000000000000000000000000000000000000000" So you need to do: ens.setResolver(namehash('5chdfgh.eth'), publicResolver.address, {from: eth.accounts[0], gas: 100000}); more info: https://swarm-guide.readthedocs.io/en/latest/usage.html#setting-up-a-resolver


3

What is the recommended way to store media files in DApps? There is no recommended way. Most DApps do not deal with media but with value, security and problems that require cryptographic proofs or authentication (who is who and who owns a certain private key). And yes, IPFS and Swarm are data storage options. IPFS is cutting edge right now, meaning not ...


3

Ethereum and Swarm networks are independent. You can use Swarm independently of Ethereum. A bit like using FTP and HTTP (this is not very accurate but may convey the point). However, if you want to resolve ENS addresses, you need to provide the ENS resolver to swarm, which can be done via the --ens-api flag. So you can run the geth binary on mainnet or any ...


Only top voted, non community-wiki answers of a minimum length are eligible