1,054 karma · joined July 1, 2009
Glide takes our team 90% of the way, but is a bit glitchy (need to wipe ~/.glide sometimes) & lacks a command for `npm link` type functionality.
In any case, building on TMSP will make Texas future proof to any consensus engine that favors safety. Let's discuss.
Smart contracts require you to work in a completely new language and toolset.
You don't need smart contracts to create a blockchain application, if you use the right libraries (e.g. go-merkle) and write your application to be deterministic. See Basecoin in the page below:
http://tendermint.com/ecosystem
If you want the benefits of Tendermint BFT consensus but w/ Ethereum's virtual machine, take a look at Ethermint.
http://github.com/tendermint/ethermint
Disclaimer: I'm a founder at Tendermint, the OG BFT blockchain engine. ;)
For all of our job listings, since we're a team this is a good opportunity to define good culture.
Like Bitcoin or Ethereum? Ping us if you want to create open-source blockchain infrastructure.
Computer science & open-source background preferred. Willingness to learn BFT algorithms required.
We are a small & funded team.
http://github.com/tendermint/tendermint http://forum.tendermint.com:3000 http://cosmos.network <- check out whitepaper
Email us for more information. hired@tendermint.com
pro A: 51% pro B: 49%
If B miners move to attack A, it means B will be successfully double-spent sooner. I'm not sure how best to coordinate the attack vs defense, but pretty sure ultimately the majority would win out. And yes, there is mutual destruction in play.
This is less of an issue with say, 67% and 33%.
Anyways, I also argue that there's only room for 1 secure PoW blockchain, and that's basically Bitcoin.
A minority-miner pow-chain quickly loses credibility. If say a 67% coalition of miners say that a hard-fork will not happen, then the 33% coalition of miners are in a bind, even if the exchanges choose to support the 33% -- which they won't, because it's too vulnerable to double-spend attacks.
Ergo, the minority-miner pow-chain must either also hard-fork the mining algorithm (to require investment in new hardware), or hard-fork to a non-PoW system.
I do understand your definition of a hard-fork. What I'm talking about is a protocol-extrinsic, cryptoeconomic justification of my argument. There's a game of chicken involved, for example.
So the miners do have quite a bit of say. Depends on what your strategy for hard-forking the PoW algo is. Or, you need to understand PoS.
It's in the blog post. Read it :P
http://tendermint.com/blog/on-thedao-and-blockchain-governan...
draft thesis from Ethan Buchman: https://github.com/ebuchman/thesis/blob/master/Buchman_Ethan...
It would be interesting to see Intel open their SGX platform so as for it to be configurable, and use it to attest Tendermint nodes. Accountable BFT consensus benefit from hardware attestation.
https://github.com/tendermint/tendermint/wiki/Byzantine-Cons...
Calling this a journaled database is an understatement.
A fault-tolerant consensus algorithm is a consensus algorithm that can tolerate failure of any nodes (e.g. miners or validators). By failure, I'm referring to fail-stop failures, where a miner or validator crashes or goes offline. The key metric for fault-tolerant consensus algorithms is the threshold for how many failures the system can tolerate. For example, Raft is a fault-tolerant consensus algorithm can tolerate up to 49.99% of node failures.
A Byzantine fault-tolerant consensus algorithm is a fault-tolerant consensus algorithm that can tolerate not just fail-stop failures, but arbitrary failures. For example, one or more nodes that get hacked by a malicious hacker might be coordinated to subvert consensus from within. Bitcoin is exciting because it can tolerate such attacks from within (e.g. any miner) to a significant degree. Tendermint is similar, except it doesn't require significant energy expenditure for its security.
Proof-of-Stake was a family of early consensus algorithms from cryptocurrency projects that don't use PoW mining. A lot of them are terrible and suffered from the "nothing at stake" problem. For a while, the Tendermint project had been using collateral bonds to ensure that there is actually "something at stake". But Tendermit is more general than that. You can have stake with collateral posted on-or-off-chain, or, you don't need to use collateral at all. It all depends on what you're trying to build.
If you want a standalone cryptocurrency blockchain, you'll want in-chain collateral with bond deposits. But different blockchains have different requirements, so posting collateral to put something at stake may not be one of them.
Personally I think we should just avoid the term "proof of stake".
See ErisIndustries using Tendermint for ErisDB: https://github.com/eris-ltd/eris-db/blob/master/erisdb/serve...
Actually, we wrote the Ethereum virtual machine implementation that they're using. We're moving away from the EVM though, because the TMSP architecture allows for easier native-application development.
http://github.com/tendermint/tmsp
If you want proof on the security of the Tendermint consensus algorithm, it's in the Github wiki.
https://github.com/tendermint/tendermint/wiki/Byzantine-Cons...
There's a lot of great innovations in Bitcoin. One of the primary reasons why it's exciting, is that it's the first widely deployed BFT ledger. Tendermint uses a different BFT algorithm that doesn't use mining.
Raft and Paxos aren't BFT, btw. As of 2012 there still weren't good implementations of PBFT/BFT middleware. http://cgi.di.uoa.gr/~mema/publications/middleware-2012.pdf . Tendermint is that middleware.
Here's a post on why Tendermint ledgers should be called blockchains:
https://news.ycombinator.com/item?id=10847136
A lot of people say that blockchains aren't blockchains without PoW. It's not surprising that people are saying this... there's been a ton of phony consensus algorithms that purport to not use PoW mining. Tendermint is different.
If Bolt supports MVCC using a page log, why does Redis destroy Bolt on random write volume?
Also, I'm seeing wildly different write performance measures. Siddontang on #237 back in 2014 for Ledis suggests 970 Sets per second. This HN article mentions 800 requests per second. Running "bolt bench --count 10000000 --batch-size 10000 --write-mode rnd" gets me 29203 ops per second. Can you shed some light on what random write performance I can expect?