yourfanat wrote: I am using another tool for Oracle developers - dbForge Studio for Oracle. This IDE has lots of usefull features, among them: oracle designer, code competion and formatter, query builder, debugger, profiler, erxport/import, reports and many others. The latest version supports Oracle 12C. More information here.
Cloud Computing
Conference & Expo
November 2-4, 2009 NYC
Register Today and SAVE !..

2008 West
Data Direct
SOA, WOA and Cloud Computing: The New Frontier for Data Services
Red Hat
The Opening of Virtualization
User Environment Management – The Third Layer of the Desktop
Cloud Computing for Business Agility
CMIS: A Multi-Vendor Proposal for a Service-Based Content Management Interoperability Standard
Freedom OSS
Practical SOA” Max Yankelevich
Architecting an Enterprise Service Router (ESR) – A Cost-Effective Way to Scale SOA Across the Enterprise
Return on Assests: Bringing Visibility to your SOA Strategy
Managing Hybrid Endpoint Environments
Game-Changing Technology for Enterprise Clouds and Applications
Click For 2008 West
Event Webcasts

2008 West
Get ‘Rich’ Quick: Rapid Prototyping for RIA with ZERO Server Code
Keynote Systems
Designing for and Managing Performance in the New Frontier of Rich Internet Applications
How Can AJAX Improve Homeland Security?
Beyond Widgets: What a RIA Platform Should Offer
REAs: Rich Enterprise Applications
Click For 2008 Event Webcasts
In many cases, the end of the year gives you time to step back and take stock of the last 12 months. This is when many of us take a hard look at what worked and what did not, complete performance reviews, and formulate plans for the coming year. For me, it is all of those things plus a time when I u...
Blockchain: Byzantine Generals and Achieving Consensus | @CloudExpo #Cloud #FinTech #Blockchain
One interesting feature about blockchain technology is that there’s no central authority or single source of the ledger

When discussing disruptive technologies, the topic of blockchain inevitably enters the conversation. Gartner recently listed blockchain as one of the ‘Key platform-enabling technologies to track.' Approximately $1.4B has been invested in blockchain just this year, according to PwC executive Seamus Cushley. IBM announced this week a Blockchain-as-a-Service Enterprise offering at their Interconnect Conference. While there is a lot of ‘hype vs reality' discussions going on, there is no arguing that blockchain is being taken very seriously across industries and cannot be ignored.

In simple terms, blockchain is a digital ledger. You can think of it as a spreadsheet. The blockchain ledger comprises a constantly growing list of transactions called "blocks" - all of which are sequentially connected. Each block has a link to the previous one in the list. Once a block is in the chain it can't be removed, so it becomes part of a permanent database containing all the transactions that have occurred since its inception.

One of the more interesting features about blockchain technology is that there's no central authority or single source of the ledger. Which means it exists on every node that's associated with it. Yes, every node has its own complete copy of the blockchain. As new blocks are added, they're also received by every node that participates. For this to work, it requires distributed consensus and trust to ensure the integrity of the system. Achieving this consensus is one of the challenges and complexities in such a distributed system.

The Byzantine Generals Problem
The consensus challenge is frequently described by a logic problem referred to as The Byzantine Generals Problem. Imagine a group of generals, encircling a city with their armies. They want to coordinate an attack. Their only method of communication is through messengers. Now, add into this mix that some of the generals may be traitors with their own agenda. Those traitors may intercept or modify the messages being sent in the hope of causing the attack to fail. How do the generals know they are receiving information? Solving that conundrum is a frequent challenge in distributed systems. How to ensure the orders are valid and trusted.

As with any challenge, there is always more than one way to address that challenge. I frequently describe my perspective as ‘There is no perfect solution, everything is a tradeoff.' What tradeoffs you are willing to accept determine the appropriate solution for your needs'. There are many techniques that have been developed in the blockchain space to address the consensus challenge, each with their own set of tradeoffs. Three popular ones are:

  • Proof of Work
  • Proof of Stake
  • Byzantine Fault Tolerance

Proof of Work
Proof of Work is the one most people are familiar with, as it is at the core of the biggest use of a blockchain ecosystem today, bitcoin. The basic concept is providing a mechanism that requires effort to add a block, but minimal effort to validate that work was done. In this consensus solution there are ‘miners.' Miners look for the next proposed block to add to the chain. To add the block, the miners are challenged with a mathematical problem to solve. Solving this puzzle requires significant resources, including time, computing power and electricity. Once a miner solves the puzzle, they can add the next block to the chain, with the appropriate hashing information for other participants to easily validate the work was done and that the block belongs. The miner is rewarded for their effort, which is the incentive to expend their resources. In the bitcoin world, they are rewarded with bitcoin, for example.

This has proven to be a very successful technique for gaining consensus and trust in a blockchain ecosystem. The tradeoff is processing time. Solving the puzzle can take up to 10 minutes, obviously having a direct impact on throughput. The time window can be reduced by reducing the complexity of the puzzle. The tradeoff then becomes the risk that it is easier to insert/produce invalid transactions to the chain.

Proof of Stake
In Proof of Stake solutions, mining is done by participants who have a stake in the blockchain ecosystem they belong to. This is unlike proof of work, where the miners can be anyone. Who can insert the next block is done based on a cost associated with the block, the total value(stake) the participant has in the ecosystem, and usually some pseudo-random selection process to avoid risk of only the largest stakeholders having control of block insertions. There are still hashing techniques involved, like proof of work, but not at the resource consuming levels of that solution. This technique is used by the Ethereum blockchain ecosystem.

This solution has become more attractive than proof of work, as it doesn't suffer from the latency issues of proof of work. As everything is a tradeoff, the risk with proof of stake is referred to as the ‘nothing at stake' scenario. This is the fact there is nothing to lose by voting for multiple blockchain histories, creating a problem with reaching consensus. Several alternatives to address this situation exist, including ‘punishment' for bad behavior, as well as reconciliation problems. The other risk, as previously mentioned, is large stakeholders dominating the blockchain.

Byzantine Fault Tolerance
Byzantine Fault Tolerance takes a different perspective. All participants in the blockchain ecosystem are known and each possesses a public key. As a block passes through their node, it is validated, and the message is signed with that public key. Once a predefined number of participants sign the block, it is considered valid and added to the chain. This is the technique used by the Hyperledger blockchain solution that is the underpinning of IBM's solution. This has significant benefits. Unlike proof of work, large amounts of resources are not required to participate. Additionally, it is a much more ‘democratized' solution, as the largest stakeholders don't have any unfair leverage such as can occur in proof of stake solutions.

There are two key tradeoffs with this solution. First, it requires all participants to agree on who belongs in the blockchain. Additionally some method of confirming membership, some level of central authority or agreement is needed, which tends to bounce up against the philosophy of blockchain.

We have miles to go and promises to keep
As with any technology, blockchain is a tool, not a destination. Ultimately, as technologists, our job is to help the business achieve its goals - and reach its destination - by leveraging tools that provide business value. The potential use case scenarios cross multiple industries, from changing the way financial transactions are conducted, into healthcare and the maintaining of Electronic Health Records, over into supply chain as well as the explosively growing Internet of Things.

I count having blockchain in our toolbox as a net positive, and look forward to how this tool can help us provide value back to the business.

About Ed Featherston
Ed Featherston is VP, Principal Architect at Cloud Technology Partners. He brings 35 years of technology experience in designing, building, and implementing large complex solutions. He has significant expertise in systems integration, Internet/intranet, and cloud technologies. He has delivered projects in various industries, including financial services, pharmacy, government and retail.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

SOA World Latest Stories
"We started a Master of Science in business analytics - that's the hot topic. We serve the business community around San Francisco so we educate the working professionals and this is where they all want to be," explained Judy Lee, Associate Professor and Department Chair at Golden Gate...
There is a huge demand for responsive, real-time mobile and web experiences, but current architectural patterns do not easily accommodate applications that respond to events in real time. Common solutions using message queues or HTTP long-polling quickly lead to resiliency, scalability...
We call it DevOps but much of the time there’s a lot more discussion about the needs and concerns of developers than there is about other groups. There’s a focus on improved and less isolated developer workflows. There are many discussions around collaboration, continuous integration a...
The dynamic nature of the cloud means that change is a constant when it comes to modern cloud-based infrastructure. Delivering modern applications to end users, therefore, is a constantly shifting challenge. Delivery automation helps IT Ops teams ensure that apps are providing an optim...
Modern software design has fundamentally changed how we manage applications, causing many to turn to containers as the new virtual machine for resource management. As container adoption grows beyond stateless applications to stateful workloads, the need for persistent storage is founda...
"CA has been doing a lot of things in the area of DevOps. Now we have a complete set of tool sets in order to enable customers to go all the way from planning to development to testing down to release into the operations," explained Aruna Ravichandran, Vice President of Global Marketin...
Subscribe to the World's Most Powerful Newsletters
Subscribe to Our Rss Feeds & Get Your SYS-CON News Live!
Click to Add our RSS Feeds to the Service of Your Choice:
Google Reader or Homepage Add to My Yahoo! Subscribe with Bloglines Subscribe in NewsGator Online
myFeedster Add to My AOL Subscribe in Rojo Add 'Hugg' to Newsburst from CNET Kinja Digest View Additional SYS-CON Feeds
Publish Your Article! Please send it to editorial(at)!

Advertise on this site! Contact advertising(at)! 201 802-3021

SYS-CON Featured Whitepapers