Angel \”Java\” Lopez on Blog

November 9, 2016

Connecting Blockchains (3)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, Open Source Projects, RSK — ajlopez @ 10:50 am

Previous Post
Next Post

Let’s start with the simplest use case. Blockchains manage blocks, and in the blocks, they could have different things. But one of the most popular use is: the block payload is a list of transactions, that transfer a crypto currency, a value between accounts.

Then, what is the simplest use case for connecting two blockchains based in transactions? That the transfer in one blockchain should be reflected in the other blockchain:

Why this transfer is special? Because the first transfer has an special target account: every value transfer to that special account will be reproduced as a transfer in the second blockchain. The transfer value is the same: if you transfer 1000 units in the first transaction, then you will transfer 1000 units using the second (automated generated) transaction.

You controls the first account (Acc1) in the first blockchain. Knowing that account, the second blockchain will transfer the second transaction using an associated second account (Acc1’) in the second blockchain. Then, you can use that value in the second blockchain, having access to Acc1’.

The amount transferred in the first transaction will be locked in the special account of the first blockchain. In another use case, we will describe the recovery of that value, to be released again.

The special accounts are managed by the connection system, not by human beings.

More use case are coming, stay tuned!

Angel “Java” Lopez

November 7, 2016

Connecting Blockchains (2)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, RSK — ajlopez @ 10:31 am

Previous Post
Next Post

Sure, there are many ways to connect two blockchains. I want to explore one, following some guidelines:

Simplicity: To me, it is the key of software development. Try to implement something simple, not a Rube Goldberg machine. When making implementations simple, you can understand the problem and the simple solution. And you will have something that can evolve, change, adapt in the future, instead of having a big and complicated, astronautical, convoluted architecture.

Guided by Use Cases: Not by technology, but by the concrete use cases. See clearly the problem. implements the simplest solution. Avoid adding something that no use case needs.

Make it work, make it right, make it fast: Evolutive implementation, software that grows. You don’t need to have all pieces connected from the beginning. Try a simple case, and start to add functionalities. No optimization at the first steps.

Test-Driven Development: I confess I’m a big supporter of TDD. To me, it is the way to write production code. TDD pushes for simplicity, evolving implementations, and clear understanding of the use cases, problems and chosen solutions.

Resilience: The implementation should be robust. We are managing value, virtual currency, money. And the solution should be resistance to occasional failure.

Stay tuned!

Angel “Java” Lopez

November 5, 2016

New Month’s Resolutions: November 2016

Filed under: Blockchain, C Sharp, Ethereum, JavaScript, Open Source Projects, Solidity — ajlopez @ 9:09 pm

End of year is coming. Time to write my new month’s resolutions. And my past month’s ones.

– Improve CrysSharp [complete] see repo
– Improve SharpGo [complete] see repo
– Improve BlockchainSharp [complete] see repo
– Improve SimpleBlockchain [complete] see repo
– Continue Solidity Compiler [complete] see repo
– Continue ChineseP [pending]
– Write about implementing a block chain [pending]
– Write about simplicity and implementing a two-way peg [complete] see post


– I gave a talk about Connecting Blockchains [complete] see slides
– Example source code, WIP, PegSharp [complete] see repo

My new month’s resolutions

– Improve CrysSharp
– Improve GoSharp 
– Improve BlockchainSharp
– Improve SimpleBlockchain
– Continue Solidity Compiler
– Continue ChineseP
– Continue PegSharp

Stay tuned!

Angel “Java” Lopez

November 2, 2016

Connecting Blockchains (1)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, RSK — ajlopez @ 9:38 am

Next Post

The success of Bitcoin is everywhere: the most popular virtual currency, supported by a distributed blockchain, is chaging the fintech world. But it success is not coming alone: it has limitations (transaction throughput, block size limits, transfer-oriented, inertia to change, no smart contracts… ) that are more evident with the spread of its success.

One path to overcome such limitation is to evolve. But historically, Bitcoin change (via Bitcoin Improvement Proposals, soft and hard forks…) was a not-so-easy process, that precludes innovation. And it has its reasons: the security gained by Bitcoin is not so easy malleable for innovation. There are many interests that fight against changes that could affect the basis of the system.

The “new kid on the block”, Ethereum, is an example of controlled innovation: the platform supports the execution of smart contracts, that could open a new world of applications to virtual currency management and related assets.

I’m a member of development team of @RSKSmart, where we are working hard to connect Bitcoin network (virtual currency, security) with an RSK network based on Ethereum (smart contracts). In this personal blog post series, I want to discuss some ways to connect blockchains, in general, and Bitcoin, Ethereum/RSK in particular.

Stay tuned!

Angel “Java” Lopez

October 31, 2016

Scaling Ethereum/RSK (1)

Filed under: Scalability, Blockchain, Ethereum, RSK — ajlopez @ 9:48 am

I’m a member of development team at @RSKSmart. We are working implementing a blockchain based on Ethereum (Java version) that is connected with Bitcoin using a two way peg.

There are many ideas (not published yet) to improve scalability in Ethereum/RSK. In this new post series, I want to share a personal idea to achieve scalability: to run transactions in parallel, taking advantage of current processors.

Ethereum/RSK, as other blockchains, have blocks with transactions. The key difference with Bitcoin is that they support the execution of smart contracts. So, each transaction could be a simple value transference, or it could be a call to a contract method. Each created contract has an address, and an associated storage. The transactions in a block are executed in order, to obtain a deterministic result (state of world), at the end of its execution, in any node of the network. The whole block has an associated state of world, result of execute all its transactions in order, starting from previous block state of world.

But in many situations, two consecutive transactions are independent. The state of world at the end of their execution, is the same, without regarding the order of execution. Even calling the same contract, two transactions, in some cases, could be executed in parallel. Ie, a contract manages an asset/tokens by user, and transaction T1 alters the asset value associated to user U1, and transaction T2 alters the asset value associated to user U2. Both transactions could be interchangeable in order. And they could be executed in parallel. In this way, a contract is not the bottleneck of execution. The transaction semantic determines if the transactions are independent or not.

I was experimenting with lightweight implementations of tries, the data structure used to keep storage and calculate hash roots of state of worlds (see Building a blockchain (5)). My idea to parallelize the execution of transactions is to use a trie that support multithreading execution, detecting any conflict of read/write storage btw transactions. If N transactions can be executed without conflicts (ie, a conflict could be two transactions writing the same storage cell), then they could be executed in parallel. The base idea: use ideas from software transactional memory implementations (see Memory Transactions In AjSharp Using References).

Stay tuned!

Angel “Java” Lopez

October 19, 2016

Blockchain: Links And Resources (11)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, Links — ajlopez @ 10:41 am

Previous Post
Next Post

The DAO: An Analysis of the Fallout – CoinDesk

The Uncanny Mind That Built Ethereum — Backchannel

MIT Media Lab Releases Code for Digital Certificates on the Blockchain

Solidity and the Ethereum Virtual Machine – Dom Steil

Will The DAO Become Ethereum’s Mt Gox? – CoinDesk

IBM’s New Watson Centre Merges Blockchain With AI – CoinDesk

Rootstock: Is the two way peg secure?

Merkling in Ethereum – Ethereum Blog

Bloomberg Editorial Board: Public and Private Blockchains Need Level Playing Field

Bitcoin and the Future of Blockchain in International Payments Systems

October 18, 2016

Blockchain: Links And Resources (10)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, Links — ajlopez @ 9:52 am

Previous Post
Next Post

Digital Currency ‘Still on the Agenda’ at Russian Central Bank – CoinDesk

Making Sense of Blockchain Smart Contracts – CoinDesk

Untangling “The Business Blockchain” | Marginalia

How Blockchain Technology Will Disrupt Financial Services Firms

The DAO: are we taking “The Wisdom of the Crowd” too far? – Backfeed Magazine

Blockchain Company Wants to Reinvent Companies – Bloomberg View

Pandas are More Plentiful Than Blockchain Developers – Blockchain News

Is The DAO going to be DOA? — Steemit

Skuchain | Blockchain Technology for Supply Chain

On Settlement Finality – Ethereum Blog

This Early Ripple Supporter is Using Ethereum to Rethink Banking – CoinDesk

Finance and Beyond: An Infographic Map of Bitcoin and the Emerging Blockchain Ecosystem

Blockchain Smart Contracts: A Hyper-Deflationary Force for Health Care Delivery

IBM Launches Blockchain Cloud Services and Releases Hyperledger Code on Bluemix

IBM raises its blockchain game with secure cloud services and Docker integration

Slock.It Takes DAO to ‘IoT’ — Decentralized Autonomous Organizations 101

yeasy/hyperledger-py: Python client for hyperledger

Lightning Network

joequant/hyperledger: Docker image for hyperledger

bitquant/smart-contracts at master · joequant/bitquant

My Links

Stay tuned!

Angel “Java” Lopez

October 15, 2016

Blockchain: Links And Resources (9)

Filed under: Bitcoin, Blockchain, FinTech, Links — ajlopez @ 7:35 pm

Previous Post
Next Post

etherparty/explorer: A lightweight ethereum block explorer

maran/ethereum-blockchain-explorer: It is what it is

Home – – The ethereum blockchain explorer

The Blockchain Wars: How Startups And Enterprises Are Competing To Create The Web 2.0

Incubating Project Proposal 20160329.docx – Documentos de Google

Hyperledger Whitepaper – Documentos de Google

hyperledger/hyperledger: Hyperledger Project is a new Collaborative Project at The Linux Foundation

hyperledger/fabric: Fabric is a blockchain project in Incubation proposed to the community


Juan Llanos (@JuanLlanos) | Twitter

Ethereum Stack Exchange

R3’s Tim Swanson: A Public Blockchain Has Settlement Risks

Develop Blockchain applications on Azure

Sidechains, Drivechains, and RSK 2-Way peg Design

ConsenSys (@ConsenSysLLC) | Twitter

Eris Industries | eris:db

Ethereum Emerges, Bitcoin vs. “Bankchains” :: Blockchain Letter, March 2016

Zcash – Hello, World!

EB122 – Zooko Wilcox: Zcash – An Open Financial System With Privacy – YouTube

My Links

Stay tuned!

Angel “Java” Lopez

October 14, 2016

Blockchain: Links And Resources (8)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, Links — ajlopez @ 9:34 am

Previous Post
Next Post

Elliptic takes in $5M for its blockchain forensics tool | TechCrunch


Bitcoin Descendant NXT Features 100% New Code, Green Mining, Decentralized Trading

Blockchain Tech Lab

Eris Industries

A Journal of Musical ThingsDoes Blockchain Hold the Key to Music’s Future?

Ethereum Emerges, Bitcoin vs. “Bankchains” :: Blockchain Letter, March 2016

Lawrence Lundy (@lawrencelundy) | Twitter

The best free research papers on fintech and blockchain | BankNXT

Blockchain-based microgrid gives power to consumers in New York | New Scientist

Consensus 2016 – CoinDesk

Gatecoin CEO: Ethereum Drastically Increased Our Trading Volumes


Rootstock – Smart Contracts on the Bitcoin Blockchain | CryptoIQ

Christian Lundkvist (@ChrisLundkvist) | Twitter – Blockchain IoT

Eight Months Since Release, Ethereum Is Second Only To Bitcoin

Drivechain – The Simple Two Way Peg | Truthcoin: Making Cheap Talk Expensive

Eris Industries

Azure Blockchain as a Service Update #4 | Blog | Microsoft Azure

My Links

Stay tuned!

Angel “Java” Lopez

October 13, 2016

Blockchain: Links And Resources (7)

Filed under: Bitcoin, Blockchain, Ethereum, FinTech, Links — ajlopez @ 9:47 am

Previous Post
Next Post

Microsoft Explores Adding Ripple Tech to Blockchain Toolkit

Azure Blockchain as a Service update | Blog | Microsoft Azure

Ripple Releases Interledger to Connect Bank and Blockchain Worlds

Africa’s big banks are betting on fintech startups and bitcoin to beat disruption

Tokken Puts the Legal Marijuana Industry on the Immutable Bitcoin Blockchain

Microsoft continues its blockchain-as-a-service push | ZDNet

Lessons Learned from BitShares 0.x – BitShares

Technical Roadblock Might Shatter Bitcoin Dreams

The Looming Problem That Could Kill Bitcoin

Ukraine Embraces Ethereum Blockchain For Election Transparency – NEWSBTC

Ethereum Computation Market

Block Size Debate Attracts Interest From US Government – The Merkle

Bitcoin Block Size Debate – Segregated Witness Roadmap – The Merkle

Capacity increases FAQ — Bitcoin Core

The Merkle

Bankchains Could Be A Mix of Bitcoin And Ethereum Technology – The Merkle


MIT’s New Blockchain Project Enigma Wants To Let You Share Your Data On Your Terms

Zcash – All coins are created equal.

My Links

Stay tuned!

Angel “Java” Lopez

« Newer PostsOlder Posts »

Blog at