###### Architect At Project Beginning; - advises if project is suitable for blockchain or not. - advises for correct blockchain technology solution for the project. During Project; - helps at outside world integration points for blockchain network. Eg: Oracle Implementations Eg: Ledger Data Off-load (if ledger is bloated, to increase performance) Eg: Smart Contract Processing Off-load ( if smart contract is too complex ) ###### Developer Developer will write SMART CONTRACT. Developer will write APPLICATION. SMART CONTRACT IS NOT YOUR ONLY APPLICATION. SMART CONTRACT DOES NOT HOLD ALL YOUR APPLICATION. DIFFERENCE BETWEEN SMART CONTRACT and APPLICATION IS VITAL, PLEASE EXAMINE "blockchain-developer-notes.txt" ###### Operator All infrastructure events are related with operators. There are many operators at many different levels. Some examples are listed below, each company can organize below roles differently. docker/kubernetes management os/platform system admin team Peer(endorser/orderer/committer) management application admin team World-State DB / Side DB management database admin team ( db is generally CouchDB) CA certificate generation security team MSP ACL Permission management security team network installation ( leased line/vpn ? ) network lan-wan teams network firewall accesses security team ###### Regulator Regulator in fact is like an ordinary end-user. But it has an important role like querying and auditing. Query functions of smart contracts are important for regulators and data must be seen anytime from your application ----------------------------------- There is no need for a replacement of well-performing traditional system with blockchain Blockchain is secure but more complex than traditional systems. Due to being more complex than traditional, it will be slower. If nodes in network increase, slowness may increase. Blockchain will be good if there is already slow traditional system process due to intermeditary or heavy reconciliations. Blockchain is at the end a computational system and will not be as slow as a human-aided manual procedures. You will also leave intermeditary, your cost will decrease, your transparency will increase. For example; you applied mortgage credit from a bank. Bank requested insurance company to send expertise. Expertise reports may end at 2-3 days. (human will have time, visit the house, examine it and write report.) Assume there were sensors(IoT) at houses and building construction reports were already uploaded digitally. You can code expertise criterias at smart contract and run this process inside blockchain. You will also have an expertise report template. You will fill in report template due to examined criterias and finalize the report. Expertise report can be written like max. 2-3 hours instead of 2-3 days with cost reduction due to not paying expertise budget. -------------------------------- *** It is important to create exact same TEST INFRASTRUCTURE for blockchain projects not to live chaos in production. *** For example ETHEREUM has TestNets called Ropsten,Rinkeby etc. *** Ledger Data Off-load (if ledger is bloated, to increase performance) *** Ledger is an append-only, always growing flat file. (managing flat file size is easy at traditional systems, but not in blockchain.) *** Think that Blockchain production project run for 1 year and this file became 300 GB. *** There can be many problems inside docker or there can be performance problems etc. *** Ledger must not be let to become huge. Later-on modifications on a running prod project ledger may be difficult. *** Project must be planned well at the beginning. Unnecessary big data must not be hold on ledger. *** If Ledger data is off-loaded, data is of-chain, HASH of data must be kept on-chain. data off-load is not so good. *** You must provide off-loaded data security as well as blockchain security. *** Smart contract processing off-load is also not a good way but may be needed if smart contract is too complex. *** Smart contract must be as simple as possible. Smart contract is intermeditary replacement, dont think it as your local application.