Angel \”Java\” Lopez on Blog

September 24, 2017

Building A Blockchain (16)

Previous Post

In recent months I have been busy working on the RSK project. It’s time to write about my personal blockchain projects:

Currently, the most active one is the C# project. I added one project:

in Java. The experience I gained written all this code (using test-driven design, as usual) gaves me a clear idea of what is involved when building a blockchain. Writing my own implementations gave me better understanding of the parts related to the creation of a blockchain. And now the RSK project (Java core implementation) is public, I’m free to relate this work with an existing full implementation.

The key points to be written are:

  • Entities
  • States
  • Virtual machine to run smart contracts
  • Encoders
  • Consensus
  • Validation logic
  • Inter-node communication
  • Expose node state to external applications

The base entities are:

  • Block
  • Transaction
  • Account

The states to be kept are:

  • Blockchain
  • Account state
  • Contract state

My projects are oriented to have smart contracts, a la Ethereum. One reason to have a virtual machine is be agnostic of host programming language. I think that having a way of run smart contract that is independent of the programming language used in each project, is an interesting feature. So, I should define:

  • Virtual machine opcodes
  • Transient (memory) storage
  • Persistent storage

I need encoders for blocks, transactions and account states. The encoded entities are used in the network communication, local storage, and in the hash calculation. For example, when I have to transmit a block I encoded it. And if I want to send the block to another node, I should encoded the block before transmission. And the encoded data is the basis for hash calculation.

The inter-node communication includes:

  • Message definitions
  • Message and handshake protocol
  • Peer-discovery protocol

Validation logic refers to:

  • Validation of blocks
  • Sign of transaction and its validation

Consensus logic has:

  • Selection of the next block
  • Run of the transactions, updating the accounts/contracts states

The exposure of a node state is implemented in Bitcoin and Ethereum using JSON RPC (Remote procudure call), usually exposed via http. In this way, the node can be accessed by external technologies implemented in different technologies (JavaScript blockchain ecosystems are the more popular).

Followin Ethereum ideas, one entity I implemented many times is a trie. I think my implementations are very simple and effective. I hope to be able to write in the next posts about those implementations.

Stay tuned!

Angel “Java” Lopez




September 23, 2017

Blockchain: Links And Resources (84)

Filed under: Bitcoin, Blockchain, Ethereum, Links — ajlopez @ 4:11 pm

Previous Post

Scaling Lightning? How Revive Could Boost Bitcoin’s Boldest Scaling Plan

Ethereum’s ERC-20 Token Standard Has Been Formalized

Steak Is the New Salad: Why These Techies Are Embracing an All-Meat Diet

Estonia “Could Raise Billions” in an ICO Says e-Residency’s Director

World Governments Have Declared War on Bitcoin: John McAfee

Principales actores del ecosistem Blokchain en Argentina

Dubai Aims to Be a City Built on Blockchain

John McAfee: China Bitcoin Ban Will Not Extend to Mining

Stay tuned!

Angel “Java” Lopez

September 21, 2017

Blockchain: Links And Resources (83)

Filed under: Bitcoin, Blockchain, Ethereum, Links — ajlopez @ 11:55 am

Previous Post
Next Post

Ethereum Founder on ICOs: “We Are in a Bubble, A Lot of Projects Will Fail”

Hong Kong regulator ‘concerned’ by ICO funding boom

Ethereum testnet just verified a zcash transaction

El ABC del bitcoin: Lo que hay que saber de la moneda digital

zkSNARKs in a nutshell

What are zk-SNARKs?

Atomic Swaps: How the Lightning Network Extends to Altcoins

Atomic cross-chain trading

Stay tuned!

Angel “Java” Lopez

September 20, 2017

Blockchain: Links And Resources (82)

Filed under: Bitcoin, Blockchain, Ethereum, Links, RSK — ajlopez @ 11:53 am

Previous Post
Next Post

Key Findings From Cambridge Cryptocurrency Study

Global Cryptocurrency Benchmarking Study

At A Major Crypto Conference, Blockchain Projects Tighten Security With Math

Blockchain: Qué es y y por qué te cambiará la vida (con ejemplos)

Barbarian Investor Show Episode 4 – Coinsilium, RSK and The Internet of Value

Cracking the Ethereum White Paper

How Blockchain Is Kickstarting the Financial Lives of Refugees

China’s ICO ban makes more sense in light of its history with fintech

Stay tuned!

Angel “Java” Lopez

September 19, 2017

Blockchain: Links And Resources (81)

Filed under: Bitcoin, Blockchain, Ethereum, RSK, Smart Contracts — ajlopez @ 11:36 am

Previous Post
Next Post

A New Blockchain App Is Poised to Radically Change How People Vote

$4,000: Bitcoin’s Price Shrugs Off China Exchange News

RSK, Allowing Technology To Reach The Masses.

Major Chinese bitcoin conference flees to Hong Kong as government cracks down on cryptocurrencies

The Economic Case for Conservative Bitcoin Development

Decentralizing Everything with Ethereum’s Vitalik Buterin

The best explainer on how blockchains will upend banking comes from an unexpected source

Ethereum will match Visa in scale in a ‘couple of years’ says founder

Stay tuned!

Angel “Java” Lopez

September 17, 2017

Learning Ethereum/RSK (3)

Filed under: Bitcoin, Blockchain, Ethereum, RSK, Smart Contracts, Solidity — ajlopez @ 4:24 pm

Previous Post

In my previous posts I commented about two Bitcoin books/resources. They are many other ones, but it is time to write about Ethereum, the basis of RSK core.

First, the main reference is the project web site:

The first read should be the white paper:

The main author is Vitalik Buterin, the project creator. See:

In the white paper, Buterin describes Bitcoin protocol and its shortcomings. Ethereum is a blockchain, but it is different in many ways. In Bitcoin, you have UTXO (Unspent Transaction Outpus). In Ethereum, you have accounts with balances. In Bitcoin, you have limited scripts. In Ethereum, there is a Virtual Machine that can run smart contracts written in different specialized programming languages (altought the most popular so far is Solidity). And you have a trie and hash root for the state of world. Each contract has its own storage, again using a trie and hashes. These additions make Ethereum a very interesting project.

A good review of the white paper is at:

Cracking the Ethereum White Paper

A fragment:

So what is Ethereum really? In my previous article, I explained that Bitcoin acts as a trusted store of and means of transmitting value. I like to think of Ethereum as a means of transmitting value but also a trusted store for complex and shared interactive information and software. Understanding it is tough, but the reward might just be worth your time.

The next read is the Yellow Paper:

Written by another Ethereum co-founder, Gavin Wood. It has a detailed descripcion of account states, blocks, uncles, RLP (Run Length Prefix) the encoding of bytes used by Ethereum, hashes, and an appendix describing the Virtual Machine opcodes and operation.

In the next posts, I will describe the differences between Bitcoin and Ethereum transactions, the state storage, for world states, and contract states, and first steps using Solidity.

Stay tuned!

Angel “Java” Lopez


September 14, 2017

Blockchain: Links And Resources (80)

Filed under: Bitcoin, Blockchain, Ethereum, Solidity — ajlopez @ 11:40 am

Previous Post
Next Post

Wealdtech Solidity
Contracts and contract pieces for Solidity.

Beijing and Bitcoin Don’t Mix

Bitcoin OTC Service Suspends Trading Citing China Pressure

China is shutting down domestic Bitcoin exchanges

How Anonymous Zcash Cryptocurrency Actually Works

Over 1.65 Million Computers Infected With Cryptocurrency Miners in 2017 So Far

Bitcoin Price Crashes Below $4,000 as China Bitcoin Ban Rumors Intensify

Blockchains and voting

Stay tuned!

Angel “Java” Lopez

September 12, 2017

Blockchain: Links And Resources (79)

Filed under: Bitcoin, Blockchain, Ethereum, Links — ajlopez @ 5:02 pm

Previous Post
Next Post

Could SPV Support a Billion Bitcoin Users? Sizing up a Scaling Claim

Curl disclosure, beyond the headline

MASTer Plan: Better Bitcoin Smart Contracts Could Go Live This Year

Warsaw Block with special guest RSK – 11.09

MGT Capital Investments, Inc. (OTCMKTS: MGTI) ranks as one of the largest U.S. based Bitcoin miners.

Criminals Thought Bitcoin Was the Perfect Hiding Place, but They Thought Wrong

‘Very High Risk’: UK Finance Watchdog Issues Statement on ICOs

The Economics of Filecoin

Stay tuned!

Angel “Java” Lopez

September 11, 2017

Blockchain: Links And Resources (78)

Filed under: Bitcoin, Blockchain, Ethereum, Links — ajlopez @ 4:40 pm

Previous Post
Next Post

$257 Million: Filecoin Breaks All-Time Record for ICO Funding

Merged Mining: Curse or Cure?

Cryptographic vulnerabilities in IOTA

Revolutionary Blockchain Applications: Energy Utility – Developer Perspectives On Blockchain

MIT And BU Researchers Uncover Critical Security Flaw In $2B Cryptocurrency IOTA

China bans all initial coin offerings pending broad review

Cryptocurrency and Central Banks: The Quest to Dematerialize Money

Blockchain to Disrupt Utilities as Customers Trade Power: BNEF

Stay tuned!

Angel “Java” Lopez

September 9, 2017

Blockchain: Links And Resources (77)

Filed under: Bitcoin, Blockchain, Ethereum, Links — ajlopez @ 2:38 pm

Previous Post
Next Post

Blockstack: A New Decentralized Internet

Extending Existing Blockchains with Virtualchain

China Outlaws ICOs: Financial Regulators Order Halt on Token Trading

Mining Giant Bitmain Reportedly Raising $50 Million Funding Round

Introducing Prism: The world’s first trustless portfolio market platform

Blockchain company ConsenSys launches $50m venture capital arm

Casper Basics

Casper Economics

Stay tuned!

Angel “Java” Lopez


Older Posts »

Create a free website or blog at