Sunday, April 22, 2018

FiiiChain

Due to the recent workload, the new post update come a bit late. Today's topic is about our customizable blockchain solution - FiiiChain.



FiiiChain is a blockchain code foundation written in C# programming language. It is a framework which can be customized base on business requirement, be it whether you want to use it to keep transaction data (like Bitcoin to create a crypto coin) or any custom format data.

When do I need to use FiiiChain?

1. You have a database which would like to be open for everyone to access.
2. You allow everyone to make data changes in the database together.
3. You want to ensure no one can modify the history of data.
4. You want everyone to take part in governing the data integrity.

If your business model do not have the above requirement, you do not need blockchain or FiiiChain. I discover that a lot of ICO projects do not actually need a blockchain solution but yet still utilizing the technology just for the sake of crowd funding. In the end, the technology does not help in the business but creating scalability issue to the business ecosystem. The situation is like using the wrong tool to solve the wrong problem.

FiiiChain Foundation

FiiiChain is coded base on layered architecture design pattern. If you are a coder and curious about what is layered architecture, feel free to read this post. In short, it is a design pattern that segregate the whole chunk of source code into a few small modules for a specific task at the same time flexible enough in making them work independently but also anytime can combine them into a 2-tier or 3-tier or N-tier solution. It is like a car as a whole, split it into multiple parts, each part play a different role. You can combine the parts to become a bicycle or motorbike or car or bus depending on your requirement.


Block Data Structure

In FiiiChain foundation, you can define your block data structure, the data format that you want. In fact, you may just treat blockchain as an encrypted database. It is not a fancy or complicated technology once you have understood it.

The difference between a blockchain and a RDMS database is the data is not kept in a structured manner. There is no "table" concept in the block. You may define a JSON data structure and store in the block. The blocks are chained between each other base on the current block hash and previous block hash. The hash value is calculated based on the overall data of the block. The way how it use the hash to verify block is similar to verify a file checksum. If the block data has been modified, the hash value of the block will be changed, then the link between current block and previous block will be broken.

The blocks are stacked in a line from bottom to top, hence you will notice the keyword "block height" in the blockchain explorer. It mean the height of the block that you are looking at. The higher the block, the latest the block is and the latest data it stored.

FiiiChain can be customized to store block, transaction, memory pool data and so on into LevelDB (current Bitcoin DB) or the famous SQLite or any other lightweight file base client-side database.

Components

So for FiiiChain core component, it has been segregated into the following modules:

1. Network
2. Blockchain
3. Transaction
4. Consensus
5. Account
6. Hash Algorithm

Each module play a different role and their code logic can be changed easily in plug and play style as long as you code the component base on the interface defined in the FiiiChain foundation guideline.

Network

Once FiiiChain has been deployed into a node. It must be interconnected between nodes and must be in peer-2-peer (P2P) method since blockchain is a decentralized database, hence the only way to synchronize data is to connect and retrieve data from the peers in the same network. The more node we have, the tighter the security and data governance.

Blockchain

Blockchain is the key component of all, it responsible in following the consensus rule to identify the eligibility and ingenuity of a block passing down by the peers and chaining the block to the main chain by verifying the block hash, transaction signature and the proof of work.

FiiiChain has the flexibility to generate multiple side chain to cater for certain business scenario or solving certain problem. For example, it is possible to work on the lightning network implementation that leveraging on a side chain to create a payment channel for peers to make transaction in a temporary chain then finalize the settlement after a period of time to reduce number of transaction written into the main chain. This is considered as a workaround to solve today's Bitcoin scalability issue.

Transaction

Transaction component responsible in maintaining and managing all the transaction data in memory pool by working closely with Blockchain and Consensus component. It also backtrack all the unspent transaction output (UTXO) to calculate particular account wallet balance. It also verify the transaction hash and signing the transaction with private key.

Consensus

Consensus is the rule that defined in the blockchain to generate blocks, store transactions, create mining work. This is where you define the hash algorithm for proof of work, genesis block setting, coin supply limit, block generation time, block difficulty setting, coin base reward rules and mining fee setting.

You may define a new rule here such as Proof of Stake, Proof of Capacity or Practical Byzantine Fault Tolerance.

Accounts

In FiiiChain, it shall not be limited and not necessary must be using ECC or PGP/RSA method to generate private/public key set, as long as the method to generate account is unique, unpredictable and secured.

Hash Algorithm

There are quite a number of the hash algorithm available in the market. You can pick one base on your requirement such as ASIC counter or CPU/GPU friendly for your proof of work.

Summary

FiiiChain foundation is a highly flexible and customizable blockchain framework. Our main goal is to train up the existing corporate C# developer to pick up blockchain to solve the blockchain talent shortage problem in the world. C# is a higher level programming level which is easier to read and understand compare to C++.

We want to remove the dependency on the current available blockchain platform in the market. There are a lot of restriction that you have to play with them. Our solution promote fast code development and deployment to the market since we will have Bitcoin template in FiiiChain and programmers can easily pick up, learn and build from there.

Please follow us if you are a C# developer and would like to learn more about FiiiChain.

Facebook - https://www.facebook.com/fiiipay/
Telegram - https://t.me/fiiicoin

If you are interested about our project, you may download our whitepaper here:
English Version
Chinese Version

My LinkedIn Profile

#redefinecryptocurrency
#fiiichain

Tuesday, April 3, 2018

FiiiPOS

As promised, one post per week, if you missed my first post about my startup story, feel free to read from here.

Today topic is about FiiiPOS. I received a lot of questions regarding FiiiPOS. People are interested to know more about it but our official website is still under construction, hence have no other choice but to share the information through my blog here.

FiiiPOS stand for Fiii (our trademark) Point-of-Sales, it is a POS terminal that can accept cryptocurrency as payment. At this moment, we are avoiding fiat currency and limiting to support cryptocurrency payment only due to the rules and regulations about cryptocurrency is still unclear and yet to be confirmed in Malaysia, China and other country.


FiiiPOS support multi-cryptocurrency which mean not limited to Bitcoin only. We are progressively increasing more cryptocurrency support. The top 20 most popular cryptocurrency you can find in coinmarketcap.com will be supported.

The Purpose

Our main purpose of this product is to provide a platform for all the cryptocurrency available in the market to circulate and usable for transaction. A cryptocurrency value is determined by its supply and demand. If a cryptocurrency cannot be used for transaction, it is useless and valueless despite of how good the technology behind it can offer.

How It Works?

FiiiPOS
is considered as FiiiPay Merchant Edition and will be used by valid merchant only. We have a KYC process for merchant and it is differ from User Edition, the FiiiPay app. Merchant need to submit valid business licence, owner detail, contact and shop location while setting up FiiiPOS for the first time.

Prior to the user make payment to the merchant using FiiiPay app, firstly both party must come into a mutual agreement of selecting which cryptocurrency for payment. FiiiPOS has a series of cryptocurrency choices to pick, however, the condition is merchant must be willing to accept the particular cryptocurrency.

Payment

Once both party agreed upon using one particular crypto, for example: Bitcoin, merchant setup from the FiiiPOS by choosing Bitcoin, then enter the local fiat currency amount (we make it easy fiat-2-crypto conversion calculation), then choose the payment acceptance method. FiiiPOS support 3 payment methods so far:

1. QR Code
2. Bluetooth
3. NFC

Step 1: Choose Cryptocurrency


Step 2: Enter local fiat currency amount and it will instantly calculate fiat-2-crypto conversion base on the price reference from coinmarketcap.com.

Step 3: Choose payment method.


Step 4: User open up FiiiPay app then scan the QR code appear on the FiiiPOS


The payment is made instantly once user scan the QR code appear on the FiiiPOS. If you wonder how does the FiiiPay app link with your cryptocurrency wallet, the answer is NO. FiiiPay does not link directly to your cryptocurrency wallet. FiiiPay is not a crypto wallet. FiiiPay does not request your crypto wallet private key. FiiiPay is just a third party centralized digital wallet, same goes to FiiiPOS. 

Deposit

Before user begin to use FiiiPay, user need to deposit some amount of crypto to FiiiPay first. Every FiiiPay newly registered account will be given a public key address for every particular cryptocurrency. The concept is similar to the cryptocurrency trading platform available in today's market.

Withdrawal

User and merchant can withdraw the collected crypto out from FiiiPay/FiiiPOS to their own crypto wallet anytime anywhere with a small charge of transaction fee.

Mining

FiiiPOS has a unique feature which other POS terminal does not have which is mining FiiiCoin (will be covered in the next few posts). FiiiCoin is a newly developed cryptocurrency by FiiiGroup using FiiiChain (proprietary blockchain framework) and Delegated Proof of Capacity (DPoC) consensus algorithm which uses FiiiPOS available storage space and CPU power for mining to maintain the blockchain network. When FiiiPOS is idle and plugged in to charge the battery, it will automatically bring up the mining page and start mining automatically. The idea is to maximize the usage of the POS machine.

The idea is to let our merchant who have purchased FiiiPOS to earn some reward in FiiiCoin which is treated as a token of appreciation in supporting our cause. At least our merchants feel compensated in another way after paying transaction fee for every received payment.

Mining hash rate is determined by the allocated storage space

Reporting

FiiiPOS is equipped with a thermal printer. When every transaction has been made, it will print a copy of payment slip for the user and a duplicate copy for the merchant.

FiiiPOS track every transaction and is capable of generating and exporting report data in spreadsheet or PDF format for the merchant. Due to the size of the FiiiPOS is small, merchant can open the FiiiPOS web edition using a PC/laptop browser to access the report and download the exported file.

Security

FiiiPOS is a restricted device. Merchant cannot install any application into the device. It is to prevent hacker from installing virus, malware, key logger, etc to the device. Hence, the Meltdown and Spectre vulnerabilities are low.

FiiiPOS is equipped with GPS, in case merchant lost the device, we can assist to detect and recover. We has a customer service team to assist user and merchant 24/7 to lock down their account or recover the device once their phone device or POS device is missing.

Maintainability

FiiiPOS is monitored by a central monitoring system. FiiiPOS software occasionally will receive patch for bug fix and security update.

We offer one year warranty for FiiiPOS device in case of any hardware failure. We have a technical support team standby in every operating country for hardware repair or parts replacement.

Hardware Spec

Processor: 4 core CPU
Memory: 1GB RAM, 8GB Flash
Display: 4.8"
Printer: High speed thermal printer, 40mm paper roll
Communication: 4G LTE/Wi-Fi/Bluetooth/NFC
SD Card Slot: 1
SIM Card Slot: 1
Device Port: 1 micro-USB OTG
Front Camera: 2MP
Rear Camera: 5MP
Speaker: Yes
Battery: Li-ion 5200 mAh
Power: Input - 100-240V, 50-60 Hz, Output - 5V/2A
OS: Android 5.X

More Photos

















Collaboration Opportunity / White Label

If you are an owner of a cryptocurrency, you wish to circulate your crypto to the market and expand your merchant network, feel free to drop us an email to enquire: sylvester.lee@fiiipay.com

Whitepaper

If you are interested about our project, you may download our whitepaper here:
English Version
Chinese Version

My LinkedIn Profile

Follow us on Facebook Page and Telegram to get the latest news and update.

Facebook - https://www.facebook.com/fiiipay/
Telegram - https://t.me/fiiicoin


#redefinecryptocurrencies
#spendborderless


Send Transactional SMS with API

This post cover how to send transactional SMS using the Alibaba Cloud Short Message Service API. Transactional SMS usually come with One Tim...