
Show HN: My experimental take on a decentralized ledger - buhrmi
http://github.com/open-core/network
======
repomies691
Needs a brief documentation "how it works" or something... I really don't
understand the concept, I'm very familiar with bitcoin and somewhat familiar
with ripple/stellar. How is the ledger maintained? How do we form the
consensus on the valid ledger? What are the incentives for running nodes? etc.

------
ianpurton
How would this prevent a flood attack ? What I mean is in Bitcoin and
presumably Stellar, you need coins to create transactions. There is therefore
a cost to spamming the system.

~~~
buhrmi
It doesn't prevent a flood attack. The challenge in this approach does not lie
in "preventing it" but in "dealing with it".

~~~
herendin
Do you have some ideas on how to deal with it?

~~~
buhrmi
Yeah

------
devit
It's interesting that it says that "Warning: Requires Postgres 9.5. You WILL
lose sync if you run against an earlier version. YOU HAVE BEEN WARNED."

Which PostgreSQL features new in 9.5 are being used that cause that? Or are
earlier versions somehow buggy?

~~~
buhrmi
I'm using upserts... The reason I'm using upserts is basically just lazyness
because I didn't feel like refactoring the source code to work around
requiring upserts. Also, I'm not very confident in C++ so I did not want to
take on that task.

~~~
opendomain
You can fix this with basic SQL

IF record EXISTS then UPDATE else INSERT

~~~
anarazel
No. Conccurrency makes it way harder than that.

~~~
devit
In PostgreSQL, you can set the SERIALIZABLE isolation level for the whole
database, put a retry loop around all database transactions and completely
stop worrying about concurrency issues.

I think all database applications should be written like this at least until
performance starts being an issue.

~~~
anarazel
Entirely depends on the the type of workload / application architecture. In
some cases the rollback ratios will be massive (I've seen 70%). In other cases
adding such a retry loop is unattractive because the latency jitter. Or
retaining all involved data for a retry is unattrictive.

Yet Another problem is that you need to enforce all sessions potentially
involved in a data race need to use serializable; that can be easy or hard,
depending on the scenario.

------
joeyspn
> Transactions are FREE (the fee is always zero)

How would you deal with DDoS attacks? Taking down a ledger like this could be
easy...

~~~
deckar01
Cloudflare doesn't have to charge a fee for every http request, although
transaction fees do seem like the elegant solution.

~~~
Karunamon
Cloudflare is a massive, well-funded, centralized entity.

------
kushti
How is it protected from Sybil attacks on consensus algo? The algo description
is definitely needed.

------
jgeerts
Is there any interesting lecture that got you this far or did you study source
code?

------
BinaryResult
Check out [https://morph.is/v0.8/](https://morph.is/v0.8/) if you haven't seen
it, decentralized encrypted file storage and email, exciting stuff.

~~~
explorigin
> Distributed Spam Proof Mail! Uncensorable, inherently spam proof and
> transparently encrypted and sender authenticated messaging! Secure enough
> for Edward Snowden! Easy and fool-proof enough for a child!

43 exclamation points on the front page. He has the hype cranked up pretty
high. Still, it's nice to see all of these P2P efforts.

------
col_rad
Cool. I really liked the idea of Stellar, but I just cant get over the
premined coin distribution. Nice to have a truly decentralized alternative!

~~~
oafitupa
What do you like about Stellar? It's not decentralized at all. Being premined
is just the icing on the cake.

~~~
col_rad
Stellar is indeed decentralized but not distributed [1]. What I like about
Stellar is the concept of gateways and trust. It adds a whole new dimension
for transactions.

[1]
[http://web.cs.ucla.edu/classes/cs217/Baran64.pdf](http://web.cs.ucla.edu/classes/cs217/Baran64.pdf)

------
zamalek
Basically, `Bitcoin - Politics`. A nice idea.

~~~
tinco
It's also `Bitcoin - all_the_hard_problems_bitcoin_solves`. Still nice but you
can't compare it with Bitcoin. This is more the sort of service banks could
use to track loans.

