Angel \”Java\” Lopez on Blog

June 29, 2016

Clojure: Links, News And Resources (31)

Filed under: Clojure, Functional Programming, Lisp, Programming Languages — ajlopez @ 10:32 am

Previous Post

Have to say by now I am tired of clicking on a Lisp titled article and having to… | Hacker News
https://news.ycombinator.com/item?id=7171141

Char Sequence: Scripting Clojure with Leiningen 2
http://charsequence.blogspot.in/2012/04/scripting-clojure-with-leiningen-2.html

cnake
http://chimeces.com/cnake/

joakin/cnake
https://github.com/joakin/cnake/

Clojure Java Interoperability
http://sebhoss.github.io/clojure-java-interoperability/

Clojure – java_interop
http://clojure.org/java_interop

Rylan Dirksen | Clojure’s Java Interoperability
http://www.rylandirksen.com/clojures-java-interoperability/

galdolber/clojure-core-java
https://github.com/galdolber/clojure-core-java

stefonweblog/stefon
https://github.com/stefonweblog/stefon

FUNCTIONAL functional reactive programming, state monads and all that, in Clojure
http://blog.podsnap.com/reactive-clj.html

galdolber/clojure-objc
https://github.com/galdolber/clojure-objc

clj-nstools – Enhanced namespace management for the Clojure language – Google Project Hosting
https://code.google.com/p/clj-nstools/

krisajenkins/yesql
https://github.com/krisajenkins/yesql

[Video] Why Clojure? | Corps of Engineers
http://axialcorps.com/2014/01/20/video-why-clojure/

oakes/play-clj
https://github.com/oakes/play-clj

bitemyapp/bulwark
https://github.com/bitemyapp/bulwark/

API Authentication with Liberator and Friend
http://sritchie.github.io/2014/01/17/api-authentication-with-liberator-and-friend/

ClojureScript Analysis & Compilation
http://swannodette.github.io/2014/01/14/clojurescript-analysis–compilation/

RyanMcG/incise
https://github.com/RyanMcG/incise

Getting Pushy: Pushing Data from Server to Browser
http://www.infoq.com/presentations/pushy-data

Core.async – Communicating Sequential Processes using Channels, in Clojure
http://www.infoq.com/presentations/core-async-clojure

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 25, 2016

Clojure: Links, News And Resources (30)

Filed under: Clojure, Functional Programming, Links, Lisp, Programming Languages — ajlopez @ 5:15 pm

Previous Post
Next Post

My old links about Clojure:

Expert to Expert: Rich Hickey and Brian Beckman – Inside Clojure – YouTube
http://www.youtube.com/watch?v=wASCH_gPnDw

cemerick/friend
https://github.com/cemerick/friend

metadata – What does “^:static” do in Clojure? – Stack Overflow
http://stackoverflow.com/questions/7552632/what-does-static-do-in-clojure

Clojure/West :: San Francisco March 2014
http://www.clojurewest.org/

frenchy64/dynalint
https://github.com/frenchy64/dynalint

jonase/eastwood
https://github.com/jonase/eastwood

Cloact: Minimalistic React for ClojureScript
http://holmsand.github.io/cloact/

bellkev/dacom
https://github.com/bellkev/dacom

weavejester/compojure
https://github.com/weavejester/compojure

swannodette/om
https://github.com/swannodette/om

Using Riak as a Storage Service for Datomic by Hector Castro of Basho – Clojadelphia (Wayne, PA) – Meetup
http://www.meetup.com/Clojadelphia/events/155920852/

Dynamic reloading of java code in emacs/nrepl
http://z.caudate.me/dynamic-reloading-of-java-code-in-emacsnrepl/

LightTable/LightTable
https://github.com/LightTable/LightTable

Chris Granger – Light Table is open source
http://www.chris-granger.com/2014/01/07/light-table-is-open-source/

halgari/clojure-metal
https://github.com/halgari/clojure-metal

Give your clojure workflow more flow
http://z.caudate.me/give-your-clojure-workflow-more-flow/

A dependency injection pattern in Clojure : Pure Danger Tech
http://tech.puredanger.com/2014/01/03/clojure-dependency-injection/

The Netflix Tech Blog: Introducing PigPen: Map-Reduce for Clojure
http://techblog.netflix.com/2014/01/introducing-pigpen-map-reduce-for.html

Netflix/PigPen
https://github.com/Netflix/PigPen

Generative testing in Clojure – YouTube
http://www.youtube.com/watch?v=u0TkAw8QqrQ

Lost in a World of Data | Virtuous Code
http://devblog.avdi.org/2013/12/30/lost-in-a-world-of-data/

MichaelDrogalis/dire
https://github.com/MichaelDrogalis/dire

sunng87/slacker
https://github.com/sunng87/slacker

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 24, 2016

Clojure: Links, News And Resources (29)

Filed under: Programming Languages, Functional Programming, Lisp, Links, Clojure — ajlopez @ 9:28 am

Previous Post
Next Post

Introduction to Clojure – Modern dialect of Lisp (Part 1) / by @nardove @toxi
http://www.creativeapplications.net/tutorials/introduction-to-clojure-part-1/

stuartsierra/component
https://github.com/stuartsierra/component/
Managed lifecycle of stateful objects in Clojure

Clojure in the Large
http://www.infoq.com/presentations/Clojure-Large-scale-patterns-techniques

Clojure for Data Science – insideBIGDATA
http://inside-bigdata.com/2013/12/16/clojure-data-science/

How to Host Your Clojure App on OpenShift | OpenShift by Red Hat
https://www.openshift.com/blogs/how-to-host-your-clojure-app-on-openshift

Why use Clojure?
http://www.paradiso.cc/why-use-clojure/

james-henderson/frodo
https://github.com/james-henderson/frodo
A lein plugin to start a Ring server via configuration in Nomad

Skills Matter : Clojure eXchange 2013: Tom O Brien on Mining
http://skillsmatter.com/podcast/nosql/mining-social-data-with-cascalog

hoplon.io
http://hoplon.io/
Write everything in Clojure and ClojureScript, clientside and serverside.

Power to Complect (Live Session) by Meta-eX on SoundCloud – Hear the world’s sounds
https://soundcloud.com/meta-ex/power-to-complect

Dave Ray – Building User Interfaces in Clojure with Seesaw
http://darevay.com/talks/clojurewest2012/#/title-slide

Probabilistic Counting
http://blog.shriphani.com/2013/12/13/probabilistic-counting/

Book Review: Clojure High Performance Programming – Jake McCrary
http://jakemccrary.com/blog/2013/12/14/book-review-clojure-high-performance-programming/

Real-World Datomic: An Experience Report
http://www.infoq.com/presentations/datomic-use-case

opencv/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.rst at 2.4 · Itseez/opencv
https://github.com/Itseez/opencv/blob/2.4/doc/tutorials/introduction/clojure_dev_intro/clojure_dev_intro.rst

Functional Programming Workshop
http://iloveponies.github.io/

Functional programming with Clojure | MOOC
http://mooc.cs.helsinki.fi/clojure

nakkaya/static
https://github.com/nakkaya/static
Static Site Generator
http://nakkaya.com

Clojure: the JFDI language [PUBLIC] – Google Drive
https://docs.google.com/presentation/d/15-7qFy6URdE7Owi2LitkQI_OHBu1AFWPUwHxgBc-O4E/edit#slide=id.p

tech.puredanger.com
http://tech.puredanger.com/2013/12/01/clj-problems/

clojurewerkz/buffy
https://github.com/clojurewerkz/buffy
Buffy The ByteBuffer Slayer, Clojure library for working with binary data.

Forward-chaining rules in Clojure
https://github.com/rbrush/clara-rules

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 23, 2016

Clojure: Links, News And Resources (28)

Filed under: Clojure, Functional Programming, Links, Lisp, Programming Languages — ajlopez @ 9:40 am

Previous Post
Next Post

More of my historic links about Clojure

runexec/reaction
https://github.com/runexec/reaction
reactive programming library for Clojure

reiddraper/simple-check
https://github.com/reiddraper/simple-check/
QuickCheck for Clojure
http://reiddraper.github.io/simple-check/

Clojure/conj 2013 – loganlinn.log
http://loganlinn.com/blog/2013/11/18/clojureconj-2013/

Results of the 2013 State of Clojure & ClojureScript survey
http://cemerick.com/2013/11/18/results-of-the-2013-state-of-clojure-clojurescript-survey/

Everything I Have Learned I Have Learned From Someone Else
http://www.infoq.com/presentations/learning-developer

Code With Others
http://cwo.io/

Sudoku solver via https://gist.github.com/swannodette/3217582, modified for Twitter REPL
https://gist.github.com/pbostrom/5342129

Caribou
http://let-caribou.in/
Caribou is a dynamic web application ecosystem for crafting production-ready web inhabitants with minimal effort.

rururu/rete4frames
https://github.com/rururu/rete4frames
Clojure RETE implementation for frames

Concerned about Clojure’s license choice. – Google Groups
https://groups.google.com/forum/#!msg/clojure/bpnKr88rvt8/VIeYR6vFztAJ

Clojure Reactive Programming
http://reactiveclojure.blogspot.it/

ClojureScript 101
http://swannodette.github.io/2013/11/07/clojurescript-101/

Videos – Øredev 2013
http://oredev.org/2013/videos

Ritz, The Missing Clojure Tooling
http://www.infoq.com/presentations/ritz-clojure

pallet/ritz
https://github.com/pallet/ritz

Introduction to Light Table – YouTube
http://www.youtube.com/watch?v=1f13TTu_X9k

mythz/clojure-linq-examples
https://github.com/mythz/clojure-linq-examples

Clojure Understood: the Rush Hour Platform
http://michaeldrogalis.tumblr.com/post/65274692089/clojure-understood-the-rush-hour-platform

The Essence of ClojureScript
http://swannodette.github.io/2013/10/27/the-essence-of-clojurescript/

Combining tests and documentation
http://z.caudate.me/how-i-fell-in-love-with-documentation/

Clojure from the ground up: welcome
http://aphyr.com/posts/301-clojure-from-the-ground-up-welcome

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 21, 2016

Clojure: Links, News And Resources (27)

Filed under: Programming Languages, Functional Programming, Lisp, Links, Clojure — ajlopez @ 10:16 am

Previous Post
Next Post

More historic links about Clojure:

Try 10 Programming Languages in 10 minutes
http://trelford.com/blog/post/ten.aspx

Test Driven Development (TDD) with Clojure – Mein(un)sinn
http://velrok.github.io/blog/2013/10/20/test-driven-development-tdd-with-clojure/

Clojure and me » Macros, closures and unexpected object retention
http://clj-me.cgrand.net/2013/09/11/macros-closures-and-unexpected-object-retention/

Concatenative programming in Clojure
http://pepijndevos.nl/2013/10/18/concatenative-programming-in-clojure.html

mikera/ironclad
https://github.com/mikera/ironclad

SublimeREPL — SublimeREPL 1.0.30 documentation
http://sublimerepl.readthedocs.org/en/latest/

ClojureScript Core.Async Dots Game
http://rigsomelight.com/2013/08/12/clojurescript-core-async-dots-game.html

Cursive: The IDE for beautiful Clojure code
http://cursiveclojure.com/

modern-cljs/doc/tutorial-21.md at master · magomimmo/modern-cljs
https://github.com/magomimmo/modern-cljs/blob/master/doc/tutorial-21.md

The Functional Database
http://www.infoq.com/presentations/datomic-functional-database

reSRC · List of free programming books
http://resrc.io/list/10/list-of-free-programming-books/

Clojure open source projects – Stack Overflow
http://stackoverflow.com/questions/2444893/clojure-open-source-projects

twashing/stefon-datomic · GitHub
https://github.com/twashing/stefon-datomic

twashing/stefon · GitHub
https://github.com/twashing/stefon
Blog engine

Core.Typed Adds an Optional Type System to Clojure
http://www.infoq.com/news/2013/10/core-typed

https://github.com/narkisr/puny
Clojure and Redis

Thoughts About Datomic • myNoSQL
http://nosql.mypopescu.com/post/19310504456/thoughts-about-datomic

Clojure at Netflix // Speaker Deck
https://speakerdeck.com/daveray/clojure-at-netflix

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 19, 2016

Clojure: Links, News And Resources (26)

Filed under: Programming Languages, Lisp, Links, Clojure — ajlopez @ 6:08 pm

Previous Post
Next Post

Staples Acquires Runa to Transform Shopping Experience Through Personalization – WSJ.com
http://online.wsj.com/article/PR-CO-20131002-904169.html

Inching Forward: 2013 Clojure Cup Postmortem
http://inchingforward.blogspot.com.ar/2013/09/2013-clojure-cup-postmortem.html

Clojure’s core.typed vs Haskell – Adam Bard and his magical blog
http://adambard.com/blog/core-typed-vs-haskell/

Typed Clojure | Indiegogo
http://www.indiegogo.com/projects/typed-clojure

jonase/cljsfiddle
https://github.com/jonase/cljsfiddle

CLJSFiddle
http://cljsfiddle.net/

The Pragmatic Bookshelf | Seven Web Frameworks in Seven Weeks
http://pragprog.com/book/7web/seven-web-frameworks-in-seven-weeks

Why we’re supporting Typed Clojure, and you should too!The Circle Blog | The Circle Blog
http://blog.circleci.com/supporting-typed-clojure/

A Shorter Path from Clojure to ClojureScript
http://www.infoq.com/presentations/clojure-clojurescript

Living in a Post-Functional World
http://www.infoq.com/presentations/post-functional-scala-clojure-haskell

Understanding list comprehension in Clojure – YouTube
http://www.youtube.com/watch?v=5lvV9ICwaMo

Generate Beautiful (and Correct) Documentation from Unit Tests Files – YouTube
http://www.youtube.com/watch?v=8FjvhDPIUWE&feature=youtu.be

zcaudate/lein-midje-doc
https://github.com/zcaudate/lein-midje-doc

Nightcode
https://nightcode.info/

Datomic Datalog – YouTube
http://www.youtube.com/watch?v=bAilFQdaiHk

Clojure Cup: Apps
http://clojurecup.com/apps.html

Too Much Code: Rules as a Control Structure
http://www.toomuchcode.org/2013/09/rules-as-control-structure.html

Tapestry Central: Named Parameters for Clojure
http://tapestryjava.blogspot.com.ar/2013/09/named-parameters-for-clojure.html

Thoughts on Programming: Coin Change Kata in Racket and Clojure
http://programming-puzzler.blogspot.com.ar/2012/11/coin-change-kata-in-racket-and-clojure.html

Manticore/clojure-scribble
https://github.com/Manticore/clojure-scribble

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 17, 2016

Clojure: Links, News And Resources (25)

Filed under: Clojure, Links, Lisp, Programming Languages — ajlopez @ 10:58 am

Previous Post
Next Post

An implementation of Racket’s Scribble in Clojure
https://github.com/Manticore/clojure-scribble

Clojure on Windows 7
http://frozenlock.org/2012/03/06/clojure-on-windows-7/

Glicko Rating System: A simple example using Clojure at Mark Needham
http://www.markhneedham.com/blog/2013/09/14/glicko-rating-system-a-simple-example-using-clojure/

Protocols, Functors and Type Classes
http://www.infoq.com/presentations/polymorphism-functional-oop

Graph: Composable Production Systems in Clojure
http://www.infoq.com/presentations/Graph-Clojure-Prismatic

Core Functions in Depth | Clojure for the Brave and True
http://www.braveclojure.com/core-functions-in-depth/

Immutant | WebSockets and SockJS with Immutant and Vert.x
http://immutant.org/news/2013/09/17/websocket-sockjs/

‘ClojureFest with LJC and London Clojurians’ – LJC – London Java Community (London, England) – Meetup
http://www.meetup.com/Londonjavacommunity/events/138309612/

Replephant: Analyzing Hadoop Cluster Usage with Clojure – Michael G. Noll
http://www.michael-noll.com/blog/2013/09/17/replephant-analyzing-hadoop-cluster-usage-with-clojure/

Strange Loop Conference Videos
http://www.infoq.com/conferences/strangeloop2013/

Rich Hickey’s Greatest Hits – The Changelog
http://thechangelog.com/rich-hickeys-greatest-hits/

Clojure Engineers Needed at Factual // Functional Jobs
http://functionaljobs.com/jobs/8646-clojure-engineers-needed-at-factual

Cognitect :: Clojure | Datomic | Software Consulting | Enterprise Support
http://cognitect.com/

ClojureScript Source Maps
http://swannodette.github.io/2013/09/15/source-maps/

Start Using Emacs | Clojure for the Brave and True
http://www.braveclojure.com/basic-emacs/

Building Clojure services at scale – Joseph Wilk
http://blog.josephwilk.net/clojure/building-clojure-services-at-scale.html

Luminus – A Clojure Web Framework
http://www.luminusweb.net/

Data, Visibility, and Abstraction on Vimeo
http://vimeo.com/album/2525252/video/74363040

A Clojure wrapper for JaCoP, a Java constraint programming engine.
https://github.com/aengelberg/clocop

Embedded Event Processing in Clojure
https://github.com/clojurewerkz/eep

A structural function finder for clojure
https://github.com/stackoverflow/wally

Event Sourcing in Clojure | Safari Books Online’s Official Blog
http://blog.safaribooksonline.com/2013/09/04/event-sourcing-in-clojure/

Understanding Clojure’s thread macros – YouTube
http://www.youtube.com/watch?v=qxE5wDbt964

beaglebone clojure robot code
https://github.com/hiredman/blackbox

My Links
http://delicious.com/ajlopez/clojure

Stay tuned!

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

June 13, 2016

Building A Blockchain (13)

Filed under: Bitcoin, Ethereum, JavaScript, NodeJs, Open Source Projects — ajlopez @ 9:31 am

Previous Post

An important piece of a blockchain a la Ethereum, is the execution of transfer transactions. Each account has a public address and a state containing its balance. The account states are stores in immutable tries. This week I worked on my personal blockchain project written in JavaScript/NodeJS:

https://github.com/ajlopez/SimpleBlockchain

to execute a transference between accounts. As usual, my development workflow follows TDD (Test-Driven Development). My first test:

exports['execute transfer'] = function (test) {
    var from = utils.hash();
    var to = utils.hash();
    var value = 1000;

    var states = tries.states().put(from, { balance: 3000 });

    var tx = transactions.transfer(from, to, value);
    
    test.ok(tx);
    test.equal(tx.from, from);
    test.equal(tx.to, to);
    test.equal(tx.value, value);
    
    var newstates = transactions.execute(tx, states);

    test.ok(newstates);
    
    var oldfromstate = states.get(tx.from);
    
    test.ok(oldfromstate);
    test.equal(oldfromstate.balance, 3000);
    
    var oldtostate = states.get(tx.to);
    
    test.ok(oldtostate);
    test.equal(oldtostate.balance, 0);
    
    var newtostate = newstates.get(tx.to);
    
    test.ok(newtostate);
    test.equal(newtostate.balance, 1000);
    
    var newfromstate = newstates.get(tx.from);
    
    test.ok(newfromstate);
    test.equal(newfromstate.balance, 2000);
}

After the execution of the transaction, a new account states trie is returned. But I should reject transfers that have no enough funds:

exports['execute transfer without funds'] = function (test) {
    var from = utils.hash();
    var to = utils.hash();
    var value = 1000;

    var states = tries.states();

    var tx = transactions.transfer(from, to, value);
    
    test.ok(tx);
    test.equal(tx.from, from);
    test.equal(tx.to, to);
    test.equal(tx.value, value);
    
    var newstates = transactions.execute(tx, states);

    test.equal(newstates, null);
    
    var oldfromstate = states.get(tx.from);
    
    test.ok(oldfromstate);
    test.equal(oldfromstate.balance, 0);
    
    var oldtostate = states.get(tx.to);
    
    test.ok(oldtostate);
    test.equal(oldtostate.balance, 0);
}

My current simple implementation is:

function execute(tx, states) {
    var fromstate = states.get(tx.from);
    var tostate = states.get(tx.to);

    fromstate.balance -= tx.value;
    
    if (fromstate.balance < 0)
        return null;
        
    tostate.balance += tx.value;
    
    return states.put(tx.from, fromstate).put(tx.to, tostate);
}

Next posts: executing a block with its transactions, storing the state tries, etc…

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

June 8, 2016

New Month’s Resolutions: June 2016

Filed under: Blockchain, C Sharp, JavaScript, NodeJs, Open Source Projects — ajlopez @ 9:01 am

Let’s review my previous new month’s resolutions:

– Improve WangTiles [pending]
– Improve WangTilesJS [complete] see repo
– Improve CrysSharp [complete] see repo
– Improve BlockchainSharp [complete] see repo
– Improve SimpleBlockchain [complete] see repo
– Prepare and give a Bitcoin related talk [complete]

I also worked on:

– Improve SimpleForth [complete] see repo

My new month’s resolutions:

– Improve WangTiles
– Improve WangTilesJS
– Improve CrysSharp
– Improve GoSharp 
– Improve SimpleForth
– Improve BlockchainSharp
– Improve SimpleBlockchain

Stay tuned!

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

June 6, 2016

Building A Blockchain (12)

Previous Post
Next Post

In a previous post I described the C# implementation of an immutable trie. I need the trie structure to keep the state of accounts in the blockchain: their balance could be retrieved by account public address. The structure should be immutable, so I can retrieve the account states at different times. Each trie has the states of all accounts at a given time. Having an immutable trie, each time I added a value to a key, a new trie is created, and the old one can be still available.

These days, I added a trie implementation to my personal blockchain project written in JavaScript/NodeJS:

https://github.com/ajlopez/SimpleBlockchain

The implementation was written using TDD (Test-Development Driven) workflow. I have simple tests like:

exports['put data and get data'] = function (test) {
    var trie = tries.trie();
    
    var result = trie.put('0123', 42).get('0123');
    
    test.ok(result);
    test.equal(result, 42);
};

exports['put two new data and retrieve them'] = function (test) {
    var trie = tries.trie();
    
    var result = trie.put('0123', 42)
        .put('3210', 1);
    
    test.ok(result);
    test.equal(result.get('0123'), 42);
    test.equal(result.get('3210'), 1);
    test.equal(trie.get('0123'), null);
    test.equal(trie.get('3210'), null);
};

Using a dynamic language like JavaScript, without type declaration for variables and arguments, I was able to write a simple implementation, as a function:

function Trie(values) {
    if (values == null)
        values = [];
        
    this.get = function (key, offset) {
        if (offset == null)
            offset = 0;
            
        var ky = key[offset];
        
        if (offset === key.length - 1)
            return values[ky];
        else if (values[ky])
            return values[ky].get(key, offset + 1);
        else
            return null;
    };
    
    this.put = function (key, data, offset) {
        if (offset == null)
            offset = 0;
        
        var newvalues = values.slice();
        var ky = key[offset];
        
        if (offset === key.length - 1)
            newvalues[ky] = data;
        else {
            if (!newvalues[ky])
                newvalues[ky] = new Trie();
                
            newvalues[ky] = newvalues[ky].put(key, data, offset + 1);
        }
            
        return new Trie(newvalues); 
    };
}

Each value has a key. I created a tree of tries. To add a value using a key, I added the value to the tree, using each letter in the key to traverse the trie internal tree. In a typed language, I should declare the type of keys and values, but using JavaScript, only the algorithm is important: the declaration of types is not needed to write the code.

The offset argument is used to select the character in the key. So, if the key has four characters, the value is saved in a composite trie with four levels.

This is a simple implementation, and I could improve it, having new use cases, writing new tests describing the expected behavior. Some things to add: persistent to disk/file/database, and hash by trie. Each processed block and transaction would have the hash of their resulting states, so I could retrieve it at any moment, and check if the block, after its processing, reach the same state.

When a new block is built, the initial state from parent block is known, and each transaction in the block had the hash of its final state. In this way, the block execution consistency can be checked against the output states.

Next posts: block and transaction processing, storage and validation.

Stay tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

Older Posts »

The Shocking Blue Green Theme. Create a free website or blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 73 other followers