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
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