Karachi   ->   Sweden   ->   Karachi, again   ->   Dubai   ->   Bahrain   ->   Karachi, once more   ->   London and Leeds
Showing posts with label payment-systems. Show all posts
Showing posts with label payment-systems. Show all posts

Wednesday, August 01, 2018

Blockchain 101 for Developers - Part 1

What problem does Blockchain address?
(In very simple terms) Blockchain primarily addresses aspects of record keeping across multiple, distributed peers such that trust between them is no longer an issue and no central authority is needed either.

In today’s world, each organization/ peer participating in a business network performs its own bookkeeping of facts of interest. For example, a car manufacturer would have its own data related to the cars manufactured and a car distributor/ reseller will have its own data---even through there are overlaps and they might be talking about the same asset (i.e., a specific car). Same goes for financial institutions---each bank will have its own data. Such silos definitely need either central authorities/ middle-man who everyone can trust as well as settlements and reconciliation processes to iron out conflicts.

Blockchain addresses all these problems by acting as a distributed ledger, which everyone can trust and have access to.

Bitcoin uses blockchain to record facts related to “coins” and their “transfers”; the interaction is from peer to peer and there is no central authority. But the technology itself is much more than what I have just stated.

How does blockchain do that?
Blockchain is, no pun intended, blocks chained together. Each block contains certain facts, and the entire chain is (usually) replicated across all peers and it is immutable.

For people with data structures (computer science) background, the chain can be thought of as a doubly linked list with an additional property of immutability.

Immutability? What? Why?
Immutability means that you cannot practically change a block, once it is added to the chain. This is achieved by using hash functions (one-way functions from cryptography). Each block contains a hash value generated from the facts in that block as well as the hash of the previous block. Therefore, modifications to a block is not possible unless all blocks from that point onwards are rewritten, which is not feasible as other peers also contain a copy of the entire blockchain.

Since blockchain is immutable, nobody needs to worry about fraud/ trust issues as long as no participant has more than 50% of the computational power in the network; more on that later.

In addition to immutability, blockchain also implicitly means decentralisation by employing a consensus protocol.

Consensus? On what and how?
Consensus on which block gets added next to the chain. In bitcoin, this is achieved by using some aspects of game theory and is termed as proof of work. All peers compete to add the next block to the chain and they have to solve a (useless) mathematical puzzle with each block they want to add to the chain. Solving this puzzle is a computationally intensive work and introduces a sort of randomness to who among all the peers gets to add the next block. Whoever creates a valid block broadcasts it to everyone else. In bitcoin, the peer who successfully creates a new block is said to be a miner and they are rewarded with some fresh bitcoins (said to be mined in the process).

Sunday, February 09, 2014

Configuring jPOS with Maven POM

jPOS is now available on GitHub. If you want to make use of the ISO8583 Java library in your Maven project, following are the dependency settings that you need to define in your POM.xml:

In other words, the groupId is org.jpos and the artifactId is jpos. The latest released version as of today is 1.9.2.

A frequently encountered error, however, is related to missing sleepycat jar when you build your maven project having jPOS as a dependency. The exact error is something like "missing com.sleepycat:je:4.1.10 artifact".

A nice solution to that is to add Oracle's maven repository in your project's list of repositories, so that the missing dependency gets resolved automatically. For this, you just need to add reference to http://download.oracle.com/maven in your POM file, as shown below:

Saturday, August 21, 2010

Western Union Waives Off Fee For Money Transfers to Pakistan

In the wake of current flood calamity, Western Union has waived off money transfer fee to Pakistan starting from 12th August 2010 till 12th September 2010. This waiver is applicable if you are sending money from the United Stated, United Kingdom, United Arab Emirates (UAE), Bahrain, Kuwait and Qatar. Perhaps, a few more countries in the middle east might be eligible but most of the remittance in Pakistan comes from the above mentioned countries.

Additionally, Western Union has committed $100,000 for the flood relief efforts in the country.


[1] Link to the Press Release

Tuesday, March 23, 2010

Sending Money via Western Union from Pakistan

This is being written with a hope that an astray soul in search of the titled information will find this useful.

You may have seen Western Union sign-boards outside branches of various banks in Pakistan. In fact, it's not just banks, Pakistan Post also acts as a Western Union agent now. It's only when you have to send money abroad that you come to know that these particular agents (banks and the post offices) only provide one way service---you can receive money but you can't send from there.

So, how can I send money from Pakistan via Western Union?

So, a quick search on Western Union firstly hinted me that you can send money online if you have a Visa credit card! But this turned out to be true only for people sending money from some countries. Previously online credit card transactions were only allowed from the US, but now it's also possible from the UK, and perhaps a few other countries.

Thus, a quest for finding a Western Union office in Karachi from where you can send money abroad began.

Pakistan Currency Exchange in Karachi

There is one Pakistan Currency Exchange with a branch in Nursery, PECHS. The guy whom I interacted with at Nursery was surprisingly well mannered. I have used the service to send money to the UAE, and I would like to hear your views about this and other agents you might have used to send money via Western Union from Pakistan.

Having said that, let's talk about the more interesting part---the process to send money...

In order to set "standard" charges for money transfer, Pakistan Currency Exchange maintains everything in base currency. So, if you want to send UAE Dirhams abroad and you are carrying the exact amount in the destination currency, they will first "buy" it from you and then "sell" it to you again. Of course, this means that within a flash of a second you'll lose money :) It's better to take Pakistan Rupees with you and buy the destination currency right.

As an identity proof, it's better you take a photocopy of your CNIC with you---they can do it for you but I always prefer to have a copy done myself beforehand.


On a side note, do you know which countries are sending in the highest amount of remittances into Pakistan?

Tuesday, September 29, 2009

Multicontent Heist!

Mujtaba Qadri shared an interesting news item on Facebook; this is regarding a fraud ring in Europe which is uploading credit cards data to a server in Lahore (Pakistan). The "bugged" card readers through which this fraud was being carried out were manufactured in China.

What a multi-continent heist!

Monday, November 17, 2008

Some Nice EMV Presentations

Banks in the UAE are rushing to implement EMV Acquiring on their ATMs, as the deadline of 31st December 2008 is fast approaching. The central bank of UAE has made available some very nice presentations on EMV, mainly delivered in June 2007 by ACI (the company behind Base24, widely acclaimed ATM switch).

By the way, UAE country switch is running OpeN/2 by S2 Systems, which has again been acquired by ACI.

Thursday, September 11, 2008

EFT Jobs in Asia

If you are into the payment industry/ EFT solutions, and are interested in a job in an Asian country, Texel Global is worth giving a try. The vacancies posted on this site range from Presales Consultants to Application Development Managers, and the list of countries includes UAE, Australia, Saudi Arabia and Singapore. The domain/ tools in demand seem to be BASE 24, CTL and EMV.

Sunday, August 20, 2006

Development Environments for ATMs

From the last two posts, some of my friends have concluded that something is terribly wrong with me. To clear out a few misconceptions, this post is slightly off-topic: it's a technical post! By the way, if the following doesn't make any sense to you, move on to an article on ATMs at Wikipedia.

After a trip to Doha, I am once again in Karachi to attend a CEN/ XFS training. XFS (eXtensions for Financial Services) is a standard from CEN for interfacing with various devices of a self-service terminal (mostly Automated Teller Machines aka ATMs) running Windows. The old name of the same standard is WOSA/XFS (Windows Open Systems Architecture). The nice thing is that the API is vendor independent, which means that the same application with virtually no modification would run on Diebold, Wincor and NCR ATMs. As most APIs, it supports C language only and there must be various wrappers available. One of them is ActiveXFS---a COM based layer on top of XFS. If you are a Java guy, there is J/XFS for you.

Both J/XFS and ActiveXFS are asynchronous in nature. Almost every other method fires an event on completion. Developing an application using XFS is lots of work---it requires taking care of everything from activating different sensors to handling timeout scenarios. With a high-level wrapper, programming the machine becomes much simpler but the level of detail you need to handle remains the same.

There is an alternative NCR way of developing software for ATMs, i.e., APTRA ADE (Author Development Environment). Development in ADE is done in a graphical environment: you draw a flow using "workers" and link them using "signals." For example, there is a worker called "Card Acceptor" which enables the card reader device on the ATM. This worker has a signal called "Successful" which is fired when a card is inserted. Of course, with ADE as well, you have to take care of all the exceptional scenarios but the nice thing is that a "seed application" is available from NCR. It's possilbe to enhance/ customize this seed application.

With release 3.0 and above, ADE compiles to XFS, which in turn talks to device drivers. This means that applications developed in ADE should run on other vendors ATM's and devices.

There is Agilis from Diebold and ProClassic from Wincor.



It's my third trip to Karachi this year. The most attractive thing about getting a job in Dubai was the closeness to Karachi. It's just a 1.5 hours flight. It's strange how the city appears to me on every trip. This time the rain reminded me of 2003 when the whole city became a distributed network of swimming pools.