Hi,
 
about half a year ago I built Hyperledger (one of many blockchain 
implementations - there is no single this is the blockchain implementation) 
from sources on Linux for System z. There are a couple of depencies (also C 
code) which are not available for the s390x platform. So you have to compile 
them from sources and add to the local maven repositories. Some of them only 
work on little endian machines, so they do not have the target for s390x, but 
if you add it manually, they compile just fine (but would not work). For 
example they include e.g. 20 protocols as the dependencys, but then use only 
one (http2). This is all open source software, so e.g. changing the endianess 
for a http2 based framework took just one week to be changed, but the next 
release build, where hyperledger could be base upon took 2 months to come out.
You can then start instances that bring up a hyperledger network (e.g. 4 nodes 
plus certificate authority server, etc.) Each instance of the chaincode (the 
actual implementation of a blockchain transaction) and version brings up a 
separate docker container. This is pretty resource consuming. If Go is used, 
the binarys are huge, like 40MB for trivial things.
Part of the build can be a Java client. There were some endianess bugs for the 
http2 communication they are using (its actually binary record based unlike 
http), but once they were resolved, the Java client worked on z/OS. I used a 
small IMS transaction with COBOL/Java interoperability to invoke a blockchain 
transaction and someone else tried it for CICS.
Actually not a big deal. But since hyperledger prereqs a lot of stuff that is 
not ported to z/OS (maybe yet), like docker or the go language, it would be 
hard to run the nodes on z/OS. The docker containers are based on linux). 
Between the nodes its just TCPIP (of course encrypted).
I doubt that the article is correct about processing faster than today, the 
fastest transaction processor I know is TPF with flat files as database (like 
some airline booking and checkin systems), then maybe IMS with fastpath 
databases, but blockchain? Where every record inserted needs to be encrypted 
and update means read record, decrypt it, verify the hashes back to the first 
block, update it, encrypt it and add as new record to the chain? Maybe in 20 
years.
Blockchain is good to get rid of intermediate parties for trades, dealing with 
customs papers or do lots of things paperless where unmodifyable documentation 
is needed, like for a goverment property register or selling things or 
maintanance records for air plane (parts) or other expensive equipment. But I 
do not see blockchain as a replacement for high volume low response time 
transaction processing.
Selling your bitcoins can take forever if you choose your transaction fee for 
the miners too low that they are willing to select your transaction a input for 
the next block, which they start mining for (basically finding a hash that is a 
little bit higher in value than the previous blocks hash and consists of a 
nonce + hash from the previous block (making it a chain) + the actual block 
that contains 1-n transactions). The mining is just changing the nonce and 
calculate the hash for nonce+block. Actually wasting electric energy for 
hashing until you get a hash that is good enough.
Currently the blocksize for bitcoin I think is 1MB. There was a huge fight 
about increasing it to 2 MB. 1 MB means for bitcoin 4-7 tx/sec:
https://www.cryptocompare.com/coins/guides/what-is-the-block-size-limit/
Not to mention the growth of a blockchain, you need to keep the whole 
blockchain from day 0 to be able to back-verify all the hashes back to the 
first one (genesis block).
Assuming for VISAs transaction workload you need block sizes of 500MB, after 1 
month, the whole blockchain will have a size of 1235 TB. Which client can 
handle this today, likely not a POS device in a shop or your favourite 
smartphones, not even in 10 years. Furthermore you need to wait for at least 6 
more added blocks before you can sure that your block is actually part of the 
real blockchain and not abandoned (the miners mine in parallel and several 
different miners might find different nonces that make the same hash, which 
results in forks), because other miners were faster (basically the longest 
valid chain wins and all other forks become invalid and their transactions or 
the ones that were not selected in the valid block go back to the pool of 
unprocessed transactions). So assuming you pay at McDonalds and have to wait 
30min before your payment was finally accepted. Or you need an intermediate 
that takes the risk that your payment was not valid - for a fee.
Sorry, I do not see blockchain as a replacement for payments pretty soon, 
except, every family gets his own coin blockchain and they trade with other 
families or companies - yes how - by using intermediates - exchanges or brokers 
- then you might ask the question, why to get rid of banks and credit card 
processors and their fees in the first place? To replace it with fees paid for 
miners, brokers and exchanges? With fees that result in hash mining, which is a 
waste of electric energy?
Or some smart guy comes around the corner and finds a solution...
 
 
Just my 2 cent,
Denis.
 
-----Original Message-----
From: Rob Schramm <rob.schr...@gmail.com>
To: IBM-MAIN <IBM-MAIN@LISTSERV.UA.EDU>
Sent: Fri, Oct 20, 2017 7:10 pm
Subject: Re: Blockchain on Mainframe ?

>From what I have seen so far, I don't think native blockchain on z/OS is
there. I think all the work for mainframes is done in Linux on z.

It has been 3-6 months since I last looked and everything blockchain
related is in "heavy fluctuation".

Rob Schramm

On Fri, Oct 20, 2017 at 1:05 PM Jake Anderson <justmainfra...@gmail.com>
wrote:

> Hi
>
> Is it possible to run blockchain on zOS ? Is it going to be completely a
> different layer within Mainframe ?
>
> One of the article says if blockchain comes then it can process the
> transaction even faster than VISA .
>
> Any thoughts ?
>
> Regards
> Jake
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>
-- 

Rob Schramm

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to