
Show HN: Decentralized application starter with Vue, Ethereum and IPFS - mknze
https://github.com/redacademy/vue-ethereum-ipfs
======
chippy
Can someone explain what this does?

Like, what should a user expect to see when visiting the application, and what
a developer could expect to make developing this application further?

I see a "gas" and a "gasprice" used, but ctrl-f doesn't show anything in HN
comments, nor in the readme outside of the code, indeed the code itself is
commented with:

    
    
      // Someone help me understand this.

~~~
jklepatch
Just to add to echelon answer, gas represents the computational effort of a
specific EVM (ethereum virtual machine) instruction. For example, deploying a
contract cost a certain amount of gas, storing a variable another, etc...

However when you send an ethereum transaction (i.e you modify data in the
blockchain) you need to pay the miner in ether. You cant pay in gas. So you
have to specify how much ether you are willing to pay for each unit of gas,
i.e the gasprice. The combination of both (gas x gasprice) will give you the
maximum amount of ether you are willing to spend for this transaction.

~~~
patrickk
Just to add to this, here's a website listing some real time stats for ether
gas: [https://ethgasstation.info/](https://ethgasstation.info/)

------
jklepatch
Awesome! Since you use Truffle, it would be even better if your code was
wrapped in a truffle box, so that it can be installed very easily with the
"truffle unbox" command.

If you are interested, I have actually just published a video about the
"truffle unbox" command:
[https://youtu.be/LlVj1wAEMAU](https://youtu.be/LlVj1wAEMAU)

And here you will find the official docs for how to publish your own truffle
box: [http://truffleframework.com/docs/advanced/truffle-
boxes](http://truffleframework.com/docs/advanced/truffle-boxes)

~~~
throwawaysecops
A trifle to Truffle.

~~~
foobarbecue
The Trouble with Truffles

~~~
lowpro
Let's stop touting the terrible trouble with truffles.

------
wanderingstan
If you're looking to use React instead of Vue, the Origin Demo Dapp is a great
starter also combining IPFS with Ethereum.

[https://github.com/OriginProtocol/demo-
dapp](https://github.com/OriginProtocol/demo-dapp)

(Disclaimer: I was a big contributor)

Also note that `ganache-cli` is not strictly required in addition to truffle,
as one can use `truffle develop` to get a local test chain.

------
qwerty456127
What exactly does it do? Although it is such a buzzword nowadays I still have
absolute zero idea about how are these "smart contract" things used and what
Ethereum is if not "a better BitCoin" (and if it is - what kind of
applications can you build with it? money exchange/ecommerce/gambling?).

~~~
kolinko
You can easily google what smart contracts are. A good starting point is also
ethereum.org, which has three easy to understand examples.

~~~
qwerty456127
A smart contract is a computer protocol intended to digitally facilitate,
verify, or enforce the negotiation or performance of a contract. Smart
contracts allow the performance of credible transactions without third
parties. Smart Contracts are self-executing contractual states, stored on the
blockchain, which nobody controls and therefore everyone can trust. Etc...

So what exactly can these be used for other than for what ordinary paper
contracts are used? What does it mean to build an app with this? Is this just
about developing digital wallets/baskets or what?

Yes, I am this stupid when it comes to this subject. I would really appreciate
if somebody could direct me to an article/video/book that would explain the
thing from the practical point of view for a plain old application developer
having zero understanding of what's this all about.

~~~
dingo_bat
You're right. I also cannot think of anything useful that "smart" contracts
can accomplish that a normal contract cannot. Also, wtf does "apps" mean? Can
I run this "app" on my phone? Is it like instagram?

~~~
eksemplar
You probably live in one of the less corrupt countries in the world, where the
public record the ownership you hold over your house won’t disappear over
night.

More than 4 billion people don’t, and even those of us who do, should probably
use our non-corrupt climate to implement these anti-corruption use cases while
our political leadership isn’t corrupt. I mean, even if we never turn to
corruption it’s infinitely easier to implement when you don’t need it.

Aside from that private sectors like container shipping desperately need a
secure and global way to authenticate container ownership. Shipping the piece
of paper that will let you pick up a container at a dock is currently more
expensive than shipping the container itself, because anyone with that paper
can steal your stuff.

Or what about making sure consumers know that they are actually buying your
brand and not a copy?

That being said, most of those use cases won’t be decentralized. Maersk isn’t
going to utilize public nodes, they’ll run their own.

~~~
qwerty456127
> You probably live in one of the less corrupt countries in the world, where
> the public record the ownership you hold over your house won’t disappear
> over night.

In sufficiently corrupt countries they don't even have to disappear, they just
can be either ignored easily or proclaimed illegitimate. A blockchain record
saying you own something means nothing in countries where these are not
legally recognized and I don't know any where they are (but Estonia, perhaps)
and especially in corrupt countries where police and judges do whatever they
are told by particular people rather than the law, the evidence or whatever.
Also, a person can just come and beat the secret key out of you and submit
whatever transactions he wants to the actual blockchain in countries like
that.

~~~
phoneboy
I understand that even Estonia requires a manual process, with two witnesses
at site to a property transaction. Then the question becomes how you digitize
this on the blockchain?

------
cheschire
There has gotta be an encryption enthusiast out there that can explain to me
how secure multi-user private communications can occur in a decentralized web.

Assuming the crypto was strong enough to guarantee privacy, how does an
application automatically allow a user to transparently decrypt topics they’re
invited to?

Point to point trust seems relatively easy with asymmetric encryption but
point to point to point to point?

~~~
riskable
Privacy is not a feature of Etherium or "smart contracts". It's the opposite,
in fact. All transactions are public. The only "private" aspect is your
address used to make a transaction but it has the same problem as Bitcoin in
that regard: When you turn it back into _real money_ your identity can now be
attached to that address.

~~~
cheschire
Is there a notification feature I can enable on HN to tell me when I get a
reply?

Anyways, yes I completely agree with you, privacy is not a feature.
Decentralization in general suffers from the inability to manage privacy and I
think that’s where future applications of the technology are going to struggle
to gain traction beyond niche audiences.

~~~
grzm
> _”Is there a notification feature I can enable on HN to tell me when I get a
> reply?”_

Check out Dan Grossman’s [http://www.hnreplies.com](http://www.hnreplies.com)

~~~
cheschire
Thank you kind stranger!

------
tomasien
I'm actually trying to expand Kumavis's "Universal Dapp" which seems to only
sort of work here if anyone would like to help:

[https://github.com/rareartlabs/udapp](https://github.com/rareartlabs/udapp)

------
donpdonp
This seems like a great way to explore ethereum contracts, but the README
stops early.

Following the README, I've got a ganash testnet and imported the accounts into
metamask. truffle compiles the (empty) contracts into ./build/. It seems like
at this step there should be an http server to give firefox/metamask something
to visit, or a gateway.ipfs.io url to retrieve some HTML that was uploaded
into IPFS. This second half of HTTP/IPFS is still a mystery. Please extend the
README, thx.

~~~
donpdonp
I added a bit more detail in the README ([https://github.com/redacademy/vue-
ethereum-ipfs/pull/2](https://github.com/redacademy/vue-ethereum-ipfs/pull/2))
though it runs into the question of is this repo an empty skeleton for apps or
can it double as a hello world Dapp? Currently the Vue app compiles to a
placeholder page with no eth/metamask bits on it.

------
marknadal
This is a nice bundle of things to install, however what is the end result
here?

It seems to be an app that initializes web3 and saves a contract... a contract
to do what?

We also have a decentralized tool, and people are building stuff like:

\- Testing character-by-character realtime updates on a social networking dApp
in a P2P mesh-network of devices:
[https://www.youtube.com/watch?v=C3akdQJs55E](https://www.youtube.com/watch?v=C3akdQJs55E)

\- A 3D multiplayer VR game in the browser:
[https://www.youtube.com/watch?v=s_m16-w6bBI](https://www.youtube.com/watch?v=s_m16-w6bBI)

And more! Note, this is not using Ethereum, but our decentralized tool:
[https://github.com/amark/gun](https://github.com/amark/gun) , and here is a 4
minute and 40 LOC interactive coding tutorial that shows you how to get
started: [https://scrimba.com/c/c2gBgt4](https://scrimba.com/c/c2gBgt4)

So far CryptoKitties is the most interesting actual dApp I've seen with
Ethereum. Does the op/parent github repo help enable building real dApps like
above? I hope so.

~~~
zitterbewegung
The idea is not to make an app but to have as a starting point for people to
do apps in Ethereum. The contract is there just to have something so you can
get feedback.

~~~
throwawaysecops
Quick, someone name an Ethereum app that does something useful and is in
widespread use.

~~~
diegocerdan
Dai Stablecoin System

~~~
drdeca
Is that in widespread use yet? I know it is in some use already, but not sure
how much yet.

I look forward to when it works with being able to be backed with multiple
types of assets (e.g. The digix asset)

------
jpcapdevila
I think a better term would be "Dapp starter"

~~~
sova
Does Dapp mean distributed or decentralized?

~~~
kss238
decentralized

~~~
sova
prove it

------
ukulele
It's a fun idea, but I really hope we don't have to sit through a multi year
cycle of people using the term "Web 3.0"

~~~
intjk
If ajax was Web 2, I feel like decentralization feels apt enough to define Web
3. Like a major upgrade. ^^

~~~
amelius
Web 1.0 was decentralized (see e.g. the email protocol), Web 2.0 centralized
everything, and now Web 3.0 is about decentralization again. I can see how the
cycle will go ...

~~~
codegladiator
Every cycle should increase the power consumption by 10x.

------
decorator
If it's on Ethereum, it's not decentralised. Their state is mutable -- as per
the DAO.

~~~
patrickbolle
I understand this, but good lord people need to stop bringing this up in every
damn thread that mentions Ethereum. We all know about the DAO and what
happened afterwards.

~~~
decorator
That's probably because people think decentralised apps should be
decentralised.

~~~
cortesoft
What does having mutable state have to do with being decentralized?

~~~
drdrey
Mutable history is the problem. What's written to the blockchain is supposed
to be immutable forever and independently verifiable by everyone. If an entity
can rewrite history (eg drop or revert transactions), it becomes a problem.
This is what happened after the DAO hack and it resulted in the Ethereum
classic fork.

~~~
drdeca
Well, sort-of?

The chain still includes the transaction history of what happened with the
DAO, but the hard fork added a special case unique state change which undoes
most of the effects of the transactions that happened with the DAO.

So, the transactions still are recorded as having happened, but the state was
edited?

Not that that necessarily is a particularly important distinction, but I think
it is one that can reasonably be made.

