Angel \”Java\” Lopez on Blog

September 26, 2017

Blockchain: Links And Resources (85)

Filed under: Bitcoin, Blockchain, Ethereum, Links, Smart Contracts, Solidity — ajlopez @ 10:59 am

Previous Post

What is Ethereum Metropolis: The Ultimate Guide

Ropsten testnet chain state
Testnet fork activation for the Byzantium (Metropolis part 1) hard fork! Activation block is 1700000 (1.7 million)

‘Crazy’ ICOs are driven by Bitcoin millionaires who need to diversify but don’t want to pay tax

Announcing the winners of the first Underhanded Solidity Coding Contest

Lessons Learnt from the Underhanded Solidity Contest

Writing upgradable contracts in Solidity

Library Driven Development in Solidity

Toyota pushes into blockchain tech to enable the next generation of cars

Stay tuned!

Angel “Java” Lopez


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
Next 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 22, 2017

Artificial Intelligence: Links And Resources (42)

Filed under: Artificial Intelligence, Links — ajlopez @ 4:57 pm

Previous Post

The Future of Go Summit: AlphaGo & Ke Jie match 1 moves analysis

Time For A Paradigm Shift Has Come

IBM Watson: Getting Started with Watson Content Hub APIs (JavaScript)

DIY Object Recognition with Raspberry Pi, Node.js, & Watson

This Is Why All Companies Need An AI Strategy Today


Natural Language Understanding

Plexus: An Interactive Visualization Tool for Analyzing Public Emotions from Twitter Data

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 13, 2017

Artificial Intelligence: Links And Resources (41)

Filed under: Uncategorized — ajlopez @ 4:38 pm

Previous Post
Next Post

More artificial intelligence, fewer screens: the future of computing unfolds

Why AI Isn’t The Robot Apocalypse For Jobs

Exploring the Artificial Intelligence Ecosystem: AI, Machine Learning, and Deep Learning

Google’s Research In Artificial Intelligence Helps In Preventing Blindness Caused by Diabetes

TensorFlow 1.0 unlocks machine learning on smartphones

The Business of Artificial Intelligence – Harvard Business Review

Our Fear of Artificial Intelligence – MIT Technology Review

Artificial Intelligence | edX

Stay tuned!

Angel “Java” Lopez

Older Posts »

Blog at