Monthly Archives: September 2017

Blockchain: Links And Resources (88)

Previous Post
Next Post

How one hacker stole thousands of dollars worth of cryptocurrency with a classic code injection hack on EtherDelta and what you can learn from it

Cardano mainnet is live

Cardano project

China’s Crypto Crackdown Won’t Slow Down Asia, Says Ethereum Creator Vitalik Buterin

Viper, new contract language

Indian Blockchain Revolution Backed by John McAfee

Governments in race for blockchain

Litecoin Creator Charlie Lee Publicly Opposes SegWit2x

Stay tuned!

Angel “Java” Lopez


Blockchain: Links And Resources (87)

Previous Post
Next Post

BREAKING: Amazon Will Accept Bitcoin By October

Bitcoin Was Just Used to Pay for a New Home in Texas

Ripio Credit Network Announces ICO Pre-Sale, Crowd Sale Starts on October 17

Welcome to Bitcoin Country: Silk Road and the Lost Threads of Agorism

Ethereum Solidity Contract Tutorial

Untangling Bitcoin: Why Russell Yanofsky Is Taking Apart Crypto’s Oldest Code

One in five central banks say they will be using blockchain tech by 2019

CoinDash Weekly update — September 19th

Stay tuned!

Angel “Java” Lopez

Blockchain: Links And Resources (86)

Previous Post
Next Post

A Smart Contract Creator

Todo sobre Ethereum en Español

How to implement Cryptographic algorithms in smart contracts

Is there a (theoretical) limit for amount of data that a contract can store?

Strategist predicts bitcoin, digital currency trading volume will ‘soon surpass’ Apple’s

Barclays Joins CLS Blockchain Consortium in Search of Swift Alternative

RANDAO: A DAO working as Random Number Generator of Ethereum

How can I deploy a contract with reference to a library contract without using a graphical user interface like Browser Solidity?

Stay tuned!

Angel “Java” Lopez

Blockchain: Links And Resources (85)

Previous Post
Next 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


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




Blockchain: Links And Resources (84)

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

Artificial Intelligence: Links And Resources (42)

Previous Post
Next 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