Angel \”Java\” Lopez on Blog

December 12, 2017

New Month’s Resolutions: December 2017

The end of the year is near. As usual, I write my resolutions by month, not only by year. First, a review of the last month ones:

– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor
– Continue Elmie [complete] see repo
– Continue AprendiendoSolidity [complete] see repo
– Continue AprendiendoMachineLearning
– Prepare Machine Learning Mentorship [complete] see talk repo
– Prepare Smart Contracts Programming Course [complete]
– Continue SimpleGo [complete] see repo
– Continue AjGo [pending]

Also I was working on:

– Improve SoliditySamples [complete] see repo
– Improve Smartie [complete] see repo
– Improve SimpleDSL [complete] see repo
– Improve BInte [complete] see repo
– Improve BInte [complete] see repo
– Start Evm2Code [complete] see repo
– Improve SimpleLisp [complete] see repo
– Improve SimpleLists [complete] see repo
– Started MissHanna, a Wordical solver [complete] see repo
– Improve SimpleGA sample [complete] see repo
– Improve SimpleNeuro [complete] see repo
– Improve SimpleBoggle [complete] see repo
– Improve SimpleDraw [complete] see repo

My new month’s resolutions:

– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue Elmie
– Continue Smartie
– Continue Evm2Code
– Continue AprendiendoSolidity
– Continue AprendiendoMachineLearning
– Continue Machine Learning Mentorship
– Prepare another Smart Contracts Programming Course
– Continue SimpleGo

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
https://github.com/ajlopez
https://twitter.com/ajlopez

 

November 8, 2017

New Month’s Resolutions: November 2017

The end of year is near. Time to write the new month’s resolutions, but first, review the previous ones:

– Continue smartie [complete] see repo
– Continue simpleevm [pending]
– Continue BInte [pending]
– Continue Yasold [pending]
– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [pending]
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [pending]
– Continue Elmie [complete] see repo

I was also working on:

– Improve SimpleDSL [complete] see repo
– Improve SimpleGA [complete] see repo
– Start SoliditySamples [complete] see repo
– Improve RskApi [complete] see repo
– Improve RskApi [complete] see repo
– Start Dapplib [complete] see repo
– Start AprendiendoSolidity [complete] see repo
– Improve HuskyJS [complete] see repo
– Improve ClojureSamples [complete] see repo
– Improve SimpleGo [complete] see repo
– Improve SimpleGo [complete] see repo
– Start AprendiendoInteligenciaArtificial [complete] see repo
– Start AprendiendoMachineLearning [complete] see repo

My new month’s resolutions:

– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue Elmie
– Continue AprendiendoSolidity
– Continue AprendiendoMachineLearning
– Prepare Machine Learning Mentorship
– Prepare Smart Contracts Programming Course
– Continue SimpleGo
– Continue AjGo

Stay tuned!

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
https://twitter.com/ajlopez

October 7, 2017

New Month’s Resolutions: October 2017

The end of new year is near. It’s time to write down my list of resolutions for a new month. Review of the previous month ones:

– Continue Yasold
– Continue BlockchainJ [complete] see repo
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [complete] see repo
– Continue WikiExpert [pending]
– Continue Neurum [pending]
– Continue LLLJS [pending]
– Continue Elmie [pending]

Additionally, I worked on

– Improving RustScript [complete] see repo
– Improving BInte [complete] see repo
– Started simpleevm, Ethereum Virtual Machine in JavaScript [complete] see repo
– Improving SolidityCompiler [complete] see repo
– Writing EvmHook [complete] see repo
– Writing SimpleAbi [complete] see repo
– Improving RSharp [complete] see repo
– Improving EthSharp [complete] see repo
– Starting smartie, a new smart contract language compiler/transpiler [complete] see repo

My new resolutions are

– Continue smartie
– Continue simpleevm
– Continue BInte
– Continue Yasold
– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue Elmie

Stay tuned!

Angel “Java” Lopez
https://github.com/ajlopez
http://www.ajlopez.com
https://twitter.com/ajlopez

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:

https://github.com/ajlopez/BlockchainSharp
https://github.com/ajlopez/SimpleBlockchain
https://github.com/ajlopez/RskSharp

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

https://github.com/ajlopez/BlockchainJ

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
https://github.com/ajlopez
http://www.ajlopez.com
http://twitter.com/ajlopez

 

 

 

September 6, 2017

New Month’s Resolutions: September 2017

Filed under: C Sharp, Java, JavaScript, NodeJs, Open Source Projects — ajlopez @ 5:25 pm

A lot of ideas and projects, and only one life. Time to review the last month’s resolutions:

– Continue Yasold [complete] see repo
– Continue SimpleBlockchain [pending]
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue SimpleTensor [complete] see repo
– Continue WikiExpert [pending]
– Continue Neurum [complete] see repo
– Continue LLLJS [pending]
– Continue HuskyJS [pending]

Additionally I worked on:

– Started BlockchainJ [complete] see repo
– Improve RustScript [complete] see repo
– Start Elmie, Eml-like language transpiler to JavaScript [complete] see repo
– Improve PLangRe [complete] see repo
– Improve RSharp [complete] see repo
– Improve RskAPI [complete] see repo

My new resolutions:

– Continue Yasold
– Continue BlockchainJ
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue WikiExpert
– Continue Neurum
– Continue LLLJS
– Continue Elmie

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

 

August 8, 2017

New Month’s Resolutions: August 2017

Filed under: C Sharp, Haskell, JavaScript, Open Source Projects, Smart Contracts, Solidity — ajlopez @ 2:35 pm

It was a very busy and interesting month. It’s time for review my previous resolutions and write down the new ones.

– Continue RskSharp [pending]
– Continue SimpleBlockchain [pending]
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue RSharp [pending]
– Continue WikiExpert [pending]
– Continue SimpleGA [pending]
– Continue Neurum [pending]
– Continue HuskyJS [complete] see repo

I also was working on:

– Minor improve in SimpleGrammar [complete] see repo
– Refactor in Complexo [complete] see repo
– Improve SharpGo [complete] see repo
– Start Yasold, Solidity decompiler [complete] see repo
– Improve Domie, simple DOM [complete] see repo
– Start BInte [complete] see repo
– Create BRati [complete] see repo
– Improve SparkSharp [complete] see repo
– Start Llljs, compiler of LLL to Ethereum VM bytecodes [complete] see repo
– Start Smarc, Smart Contracts in JavaScript [complete] see repo
– Improve SolidityCompiler [complete] see repo
– Start Smarc, Smart Contracts in JavaScript [complete] see repo
– Minor improve on Golin [complete] see repo
– Start SimpleTensor, TensorFlow ideas in JavaScript [complete] see repo

My new month’s resolutions:

– Continue Yasold
– Continue SimpleBlockchain
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue SimpleTensor
– Continue WikiExpert
– Continue Neurum
– Continue LLLJS
– Continue HuskyJS

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com

 

July 11, 2017

New Month’s Resolutions: July 2017

We are in the second part of the year, a long year with interesting projects. Time to write the new month’s resolutions and review the past ones:

– Continue RskSharp [pending]
– Continue SimpleBlockchain [pending]
– Continue BlockchainSharp [complete] see repo
– Continue ChineseP [complete] see repo
– Continue TensorSharp [pending]
– Continue RSharp [complete] see repo
– Experiments with RSKJ fork [complete] see repo
– Continue Vyu [pending]
– Continue Domie [complete] see repo
– Continue Wordie [pending]

Also, I was working on:

– Start WikiExpert [complete] see repo
– Start PerProm [complete] see repo
– Start RskApi [complete] see repo
– Improve SharpGo [complete] see repo
– Improve Neurum [complete] see repo
– Improve ClojJS [complete] see repo
– Improve SimpleScraper [complete] see repo
– New Sample in SimpleGA [complete] see repo
– Start GenPrj [complete] see repo
– Start RskUtils [complete] see repo
– Start SimpleJsonRpc [complete] see repo
– Start HuskyJS [complete] see repo
– Improve Husky [complete] see repo

My new month’s resolutions:

– Continue RskSharp
– Continue SimpleBlockchain
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue RSharp
– Continue WikiExpert
– Continue SimpleGA
– Continue Neurum
– Continue HuskyJS

Stay tuned!

Angel “Java” Lopez*
http://www.ajlopez.com
http://twitter.com/ajlopez

 

 

 

 

June 6, 2017

New Month’s Resolutions: June 2017

Filed under: C Sharp, Domie, JavaScript, NodeJs, Open Source Projects, Vyu, Wordie — ajlopez @ 11:17 am

A new month begins, time to write down the monthly resolutions. But first, a review of the past ones:

– Continue RskSharp [pending]
– Continue SimpleBlockchain [complete] see repo
– Continue BlockchainSharp [pending]
– Continue ChineseP [pending]
– Continue TensorSharp [pending
– Continue RSharp [complete] see repo

I also worked on:

– Improve AjDrawJS [complete] see repo
– Improve AjTalkJS [complete] see repo
– Improve SimpleForth [complete] see repo
– Improve ClojJS Clojure in JavaScript [complete] see repo
– Additional sample for SimpleGA, genetic algorithms [complete] see repo
– Experiments on RSKJ form [complete] see repo
– Create wordie, literate programming language [complete] see repo
– Create domie, a DOM-like for JavaScript testing [complete] see repo
– Create vyu, a vue.js-like framework [complete] see repo

My new resolutions:

– Continue RskSharp
– Continue SimpleBlockchain
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue RSharp
– Experiments with RSKJ fork
– Continue Vyu
– Continue Domie
– Continue Wordie

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

May 8, 2017

New Month’s Resolutions: May 2017

Filed under: AjTalk, Blockchain, C Sharp, Ethereum, JavaScript, NodeJs, Open Source Projects, RSK — ajlopez @ 11:51 am

There is a new month, time to write the new resolutions. First, a review of the previous ones:

– Continue RskSharp [complete] see repo
– Continue SimpleBlockchain [complete] see repo
– Continue Solidity Compiler [pending]
– Continue ChineseP [complete] see repo
– Continue TensorSharp [complete] see repo
– Continue RSharp [complete] see repo
– Continue SimpleForth [pending]

Additionally, I was working on:

– Continue BlockchainSharp [complete] see repo
– Start Neurum, neural networks in C# [complete] see repo
– Improve AjTalkJS, Smalltalk interpreter in JavaScript [complete] see repo
– Improve SimpleProlog, Prolog interpreter in JavaScript [complete] see repo
– Improve AjDrawJS [complete] see repo

New month’s resolutions:

– Continue RskSharp
– Continue SimpleBlockchain
– Continue BlockchainSharp
– Continue ChineseP
– Continue TensorSharp
– Continue RSharp

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

April 6, 2017

New Month’s Resolutions: April 2017

A new month begins, it’s time to write down my monthly resolutions. First, a review of the last month ones:

– Continue RskSharp [complete] see repo
– Continue SimpleBlockchain [pending]
– Continue Solidity Compiler [complete] see repo
– Continue ChineseP [pending]
– Continue TensorSharp [complete] see repo

Additionally, I was working on:

– Improve SimpleProlog [complete] see repo
– Continue RSharp [complete] see repo
– Improve AjDrawJS [complete] see repo
– Improve SimpleForth [complete] see repo

My new month’s resolutions:

– Continue RskSharp
– Continue SimpleBlockchain
– Continue Solidity Compiler
– Continue ChineseP
– Continue TensorSharp
– Continue RSharp
– Continue SimpleForth

Stay tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

Older Posts »

Blog at WordPress.com.