TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Scaling Blockchains with Apache Kafka

113 pointsby nestlequ1kalmost 8 years ago

3 comments

galeaspabloalmost 8 years ago
&gt; If you aren’t familiar with the database pattern known as event sourcing (don’t worry — it’s relatively new),<p>It&#x27;s not relatively new. That “transaction file” thing in your database? Event Sourcing.<p><a href="https:&#x2F;&#x2F;goodenoughsoftware.net&#x2F;2012&#x2F;03&#x2F;02&#x2F;case-studies&#x2F;" rel="nofollow">https:&#x2F;&#x2F;goodenoughsoftware.net&#x2F;2012&#x2F;03&#x2F;02&#x2F;case-studies&#x2F;</a><p>&gt; If you’re not looking at the public chain, you’re wasting your time<p>I disagree. Not having a single point of failure (one place that can get hacked) is valuable.<p>&gt; From a trust perspective, it makes no difference if your banking cartel is writing to a Quorum, Hyperledger, or Kafka instance.<p>Of course it does. The protocol of blockchains makes them work with &quot;proof of X&quot;. Appending to any event store, whether in Kafka or SQL does not require proof of anything.<p>&gt; Blockchains are built for trust, databases for throughput. Event sourcing allows us to achieve a hybrid model with characteristics of both.<p>No, the reason blockchains can&#x27;t have high throughpout &#x2F; almost infinite horizontal scalability... is because there&#x27;s a logic check. E.g. in bitcoin, you can&#x27;t send more bitcoins than you have a balance. Event sourcing gives you the high throughpout if there&#x27;s no logic checks across aggregates --- if there are, you won&#x27;t have immediate consistency, and you have to be ready for compensating events.<p>I recommend two books, that cover event sourcing from a Domain Driven Design perspective. The consequences are similar.<p><a href="https:&#x2F;&#x2F;www.amazon.co.uk&#x2F;Domain-driven-Design-Tackling-Complexity-Software&#x2F;dp&#x2F;0321125215" rel="nofollow">https:&#x2F;&#x2F;www.amazon.co.uk&#x2F;Domain-driven-Design-Tackling-Compl...</a> <a href="https:&#x2F;&#x2F;www.amazon.co.uk&#x2F;Implementing-Domain-Driven-Design-Vaughn-Vernon&#x2F;dp&#x2F;0321834577" rel="nofollow">https:&#x2F;&#x2F;www.amazon.co.uk&#x2F;Implementing-Domain-Driven-Design-V...</a><p>-----------------<p>If that doesn&#x27;t do it for you, please just remember the good old CAP theorem.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;CAP_theorem" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;CAP_theorem</a>
评论 #14896498 未加载
评论 #14899447 未加载
buckiealmost 8 years ago
Preface: lead for Juno &amp; ScalableBFT<p>First, some additional benchmarks:<p>* Juno (w&#x2F; hardcoded language): 500 tx&#x2F;s<p>* TendermintBFT w&#x2F; EVM: 1k tx&#x2F;s<p>* ScalableBFT w&#x2F; Pact: 8k tx&#x2F;s<p>The thing about the high-performance private blockchains is that they are limited by the sequential smart contract execution performance. Juno ran an embedded &quot;rough draft of a langauge&quot; do it doesn&#x27;t really count (not a full language, more like a complicated hardcoded counter). From TendermintBFT&#x27;s docs, if memory serves, they say that if you hardcode a counter they hit +10k&#x2F;s. For ScalabeBFT, it&#x27;s it&#x27;s ~14k&#x2F;s. This is a minor difference, by the way, that isn&#x27;t due to the consensus mechanism but more to the engineering of the system.<p>The reason for the non-hardcoded performance difference is that ScalableBFT runs Pact for smart contracts, which was designed to be a high performance interpreted language in part because of this bottleneck. Even if&#x2F;when the EVM moves to WASM, the performance bump only impacts fat contracts by making them kill performance less. As in, if your 10k-step contract takes 200ms to execute and that drops to 2ms you can get 100x perf (not quite but it&#x27;s fine)... but that only takes you from 5&#x2F;s to 500&#x2F;s and not to 1k&#x2F;s or 8k&#x2F;s.<p>The numbers above are for a simple coin transfer contract so the performance is mostly dependant on the read&#x2F;write performance for keys in the DB. There&#x27;s just not much contract level work to do when you&#x27;re transferring coins between accounts so the WASM move won&#x27;t bump things up much if any.<p>More broadly, I think that the article misses the point of private blockchains when it discusses them:<p>&gt; I would discourage you from blockchain consortia if your intention is to never use the public chain and if you don’t care about Ethereum. I’m going to put it bluntly: if you’re not looking at the public chain, you’re wasting your time. The benchmarking numbers paint a pretty obvious story — Quorum will never give you the speed of Kafka, especially since blockchains get less efficient as more participants join (because of that pesky “consensus” thing).<p>They serve a specific purpose: being a multi-administrative DB. Distributed DB systems (like Kafka, raft-based systems, etc.) can&#x27;t robustly&#x2F;safely serve that end.<p>I have a longer comment about it here: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14853521" rel="nofollow">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=14853521</a>
GordonSalmost 8 years ago
&gt; If used correctly, it is tamper-proof, just like the blockchain<p>Is tamper proofing typically a feature of event sourcing systems? If so, how is it implemented?
评论 #14895845 未加载
评论 #14895746 未加载