question archive BLCN 532 Blockchain Development Final Project This final project gives you the opportunity to review what you’ve learned throughout the semester and present a range of topics in the form of a policy that describes how participants can join your business network, and the benefits of doing so
Subject:Computer SciencePrice: Bought3
BLCN 532 Blockchain Development Final Project This final project gives you the opportunity to review what you’ve learned throughout the semester and present a range of topics in the form of a policy that describes how participants can join your business network, and the benefits of doing so. The overall purpose of your policy should be to create interest in your business network and its applications, along with a description of the onboarding process and ongoing benefits to members. Create a membership policy that describes the benefits and requirements of membership in your Letter of Credit business network. Your policy should be no less than 1000 words and no more than 1500 words. The document you submit should in Microsoft Word format (.doc or .docx) and be named using the following criteria: BLCN532_SECTION_STUDENTID_LASTNAME_FIRSTNAME_Project.docx • • • • SECTION is the section number of your current course (2 digits) STUDENTID is your student ID number (with leading zeros) LASTNAME is your last name FIRSTNAME is your first name Your policy should include the following: 1) Purpose statement of the Letter of Credit business network 2) Description of the current (base) network (participants and functionality) 3) Brief description of upcoming features in the next quarterly release. (Be creative, but realistic here. Think about what the existing Letter of Credit application does, and what features you’d like to add that would increase the application’s usefulness and value. Analyzing current functionality and determining which features would best meet business needs will be a big part of assessing this assignment.) 4) Description of application upgrade process that may impact application availability and member business processes. (i.e. How does the business network organization plan to deploy new software features without causing substantial service interrruptions?) 5) List of rights and benefits for participants (how does each member benefit and what data/services are available for each member) 6) Membership requirements for new members (minimum security requirements, approval process, decision making rules and authorities, minimum required agreements that new members must accept and agree to) 7) Description of fees for participation and service access 8) Minimum member resource contributions to the business network 9) Process for ending participation in the business network 10) Process for resolving disputes, including appealing the outcome of a resolved dispute. 11) Course of action to initiate an application for membership Background content for items 1 and 2 will come from your text. Other items will be a combination of content from your text and extrapolation based on what you've learned this semester. Pay careful attention to #3. That one requires that you carefully consider how enhancing the application can help it better align with member (and prospective member) business goals. The purpose of this project is to digest the material you've learned throughout this semester into a white paper that could be used to recruit potential business network members, as well as provide details of the rights and responsibilities of business network members. Your policy document should present a clear and concise description of the benefits of being a business network member, why blockchain technology provides superior benefits to solutions based on other technologies, and the onboarding process and expectations once membership is approved. The overall goal is to give you an opportunity to demonstrate that you understand how this example blockchain technology use case implementation aligns with existing, and prospective, member business goals. Your paper must be in APA format, including citations and references, but I’m not particularly concerned with the specific format you select for the paper’s body. Hands-On Blockchain with Hyperledger Building decentralized applications with Hyperledger Fabric and Composer Nitin Gaur Luc Desrosiers Venkatraman Ramakrishna Petr Novotny Dr. Salman A. Baset Anthony O'Dowd BIRMINGHAM - MUMBAI Hands-On Blockchain with Hyperledger © 2018 Packt Publishing First published: June 2018 Production reference: 1190618 Published by Packt Publishing Ltd. Livery Place 35 Livery Street Birmingham B3 2PB, UK. ISBN 978-1-78899-452-1 www.packtpub.com Contents Preface 1 Chapter 1: Blockchain - Enterprise and Industry Perspective Defining the terms – what is a blockchain? Four core building blocks of blockchain framworks Additional capabilities to consider Fundamentals of the secure transaction processing protocol Where blockchain technology has been and where it's going The great divide An economic model for blockchain delivery Learning as we go The promise of trust and accountability Industries putting blockchain technology to work Blockchain in the enterprise What applications are a good fit? How does the enterprise view blockchain? Litmus testing to justify the application of blockchain technology Integrating a blockchain infrastructure for the whole enterprise Enterprise design principles Business drivers and evolution Ensuring sustainability The principles that drive blockchain adoption Business considerations for choosing a blockchain framework Technology considerations for choosing a blockchain framework Identity management Scalability Enterprise security Development tooling Crypto-economic models Decentralization with systemic governance Enterprise support Use case-driven pluggability choices Shared ledger technology Consensus Crypto algorithms and encryption technology Use case-driven pluggable choices Enterprise integration and designing for extensibility Other considerations Consensus, ACID property, and CAP 8 9 11 13 14 15 16 16 17 18 19 19 19 21 23 23 25 26 27 28 29 31 31 32 32 33 33 33 33 34 34 34 35 35 35 37 37 CAP ACID Attestation – SSCs are signed and encrypted Use of HSMs Summary Chapter 2: Exploring Hyperledger Fabric Building on the foundations of open computing Fundamentals of the Hyperledger project The Linux Foundation Hyperledger Open source and open standards Hyperledger frameworks, tools, and building blocks Hyperledger frameworks Hyperledger tools The building blocks of blockchain solutions Hyperledger Fabric component design Principles of Hyperledger design CAP Theorem Hyperledger Fabric reference architecture Hyperledger Fabric runtime architecture Strengths and advantages of componentized design Hyperledger Fabric – the journey of a sample transaction Hyperledger Fabric explored Components in a blockchain network Developer interaction Understanding governance in business networks powered by blockchain Governance structure and landscape Information technology governance Blockchain network governance Business network governance Summary Chapter 3: Setting the Stage with a Business Scenario Trading and letter of credit The importance of trust in facilitating trade The letter of credit process today Business scenario and use case Overview Real-world processes Simplified and modified processes Terms used in trade finance and logistics Shared process workflow Shared assets and data Participants' roles and capabilities 37 38 38 38 39 40 41 41 41 42 42 44 45 46 47 50 52 53 55 57 59 61 64 65 67 69 69 70 71 72 73 74 75 75 76 76 76 77 77 78 80 82 82 Benefits of blockchain applications over current real-world processes Setting up the development environment Designing a network Installing prerequisites Forking and cloning the trade-finance-logistics repository Creating and running a network configuration Preparing the network Generating network cryptographic material Generating channel artifacts Generating the configuration in one operation Composing a sample trade network Network components' configuration files Launching a sample trade network Summary Chapter 4: Designing a Data and Transaction Model with Golang Starting the chaincode development Compiling and running chaincode Installing and instantiating chaincode Invoking chaincode Creating a chaincode The chaincode interface Setting up the chaincode file The Invoke method Access control ABAC Registering a user Enrolling a user Retrieving user identities and attributes in chaincode Implementing chaincode functions Defining chaincode assets Coding chaincode functions Creating an asset Reading and modifying an asset Main function Testing chaincode SHIM mocking Testing the Init method Testing the Invoke method Running tests Chaincode design topics Composite keys Range queries State queries and CouchDB Indexes ReadSet and WriteSet 83 84 84 87 88 89 89 89 90 92 93 98 99 100 101 102 103 103 104 105 105 106 110 111 112 112 113 114 117 118 119 120 121 123 123 124 124 126 127 128 128 129 130 131 132 Multiversion concurrency control Logging output Configuration Logging API SHIM logging levels Stdout and stderr Additional SHIM API functions Summary Chapter 5: Exposing Network Assets and Transactions Building a complete application The nature of a Hyperledger Fabric application Application and transaction stages Application model and architecture Building the application Middleware – wrapping and driving the chaincode Installation of tools and dependencies Prerequisites for creating and running the middleware Installation of dependencies Creating and running the middleware Network configuration Endorsement policy User records Client registration and enrollment Creating a channel Joining a channel Installation of chaincode Instantiation of chaincode Invoking the chaincode Querying the chaincode Completing the loop – subscribing to blockchain events Putting it all together User application – exporting the service and API Applications User and session management Designing an API Creating and launching a service User and session management Network administration Exercising the application User/client interaction modes Testing the Middleware and Application Integration with existing systems and processes Design considerations Decentralization Process alignment Message affinity Service discovery Identity mapping 134 135 135 136 138 138 139 140 141 142 142 144 145 147 148 149 149 150 150 151 152 153 153 156 158 160 162 165 166 167 170 170 170 171 171 172 173 175 176 177 177 177 178 178 179 180 181 182 Integration design pattern Enterprise system integration Integrating with an existing system of record Integrating with an operational data store Microservice and event-driven architecture Considering reliability, availability, and serviceability Reliability Availability Serviceability Summary Chapter 6: Business Networks A busy world of purposeful activity Why a language for business networks? Defining business networks A deeper idea Introducing participants Types of participant Individual participants Organizational participants System or device participants Participants are agents Participants and identity Introducing assets Assets flow between participants Tangible and intangible assets The structure of assets Ownership is a special relationship Asset life cycles Describing asset's life cycles in detail with transactions Introducing transactions Change as a fundamental concept Transaction definition and instance Implicit and explicit transactions The importance of contracts Signatures Smart contracts for multi-party transaction processing Digital transaction processing Initiating transactions Transaction history Transaction streams Separating transactions into different business networks Transaction history and asset states A business network as a history of transactions Regulators and business networks 183 183 184 185 186 187 187 189 189 190 191 192 193 193 194 194 195 195 196 196 197 197 198 199 199 200 201 202 203 204 204 204 205 206 206 207 207 208 208 209 209 210 210 211 Discussing events from the perspective of designing a business network using Composer A universal concept Messages carry event notifications An example to illustrate event structure Events and transactions External versus explicit events Events cause participants to act Loosely coupled design The utility of events Implementing a business network The importance of de-materialization Blockchain benefits for B2B and EDI Participants that interact with the blockchain Accessing the business network with APIs A 3-tier systems architecture Hyperledger Fabric and Hyperledger Composer Summary Chapter 7: A Business Network Example The letter of credit sample Installing the sample Running the sample Step 1 – preparing to request a letter of credit Step 2 – requesting a letter of credit Step 3 – importing bank approval Step 4 – exporting bank approval Step 5 – letter received by exporter Step 6 – shipment Step 7 – goods received Step 8 – payment Step 9 – closing the letter Step 10 – Bob receives payment Recapping the process Analyzing the letter of credit process The Playground Viewing the business network A description of the business network The participant descriptions The asset descriptions The transaction descriptions The event descriptions A model of the business network Namespaces Enumerations Asset definitions 211 212 212 213 214 214 215 215 215 216 216 217 218 219 219 220 220 221 221 222 222 223 224 226 227 229 231 234 235 236 237 238 238 238 240 240 240 241 242 243 243 243 244 244 Participant definitions Concept definitions Transaction definitions Event definitions Examining the live network Examining a letter of credit instance Examining participant instances Examining transaction instances Submitting a new transaction to the network Understanding how transactions are implemented Creating business network APIs SWAGGER API definitions Querying the network using SWAGGER Testing the network from the command line Creating a new letter using SWAGGER Network cards and wallets Access-control lists Summary Chapter 8: Agility in a Blockchain Network Defining the promotion process Smart contract considerations Integration layer considerations Promotion process overview Configuring a continuous integration pipeline Customizing the pipeline process Local build Configuring Travis CI Customizing the pipeline using .travis.yml Publishing our smart contract package Configuring your Git repository Setting the code owners of our smart contract Sample content of the CODEOWNERS Protecting the master branch Configuring Git for commit signing and validation Configuring GPG on your local workstation Testing the end-to-end process Creating a new transaction Pushing a commit to the master branch directly Submitting a pull request with an unsigned commit Adding test cases Submitting a pull request with a signed commit Adding the mergeAssets unit test Releasing the new version Updating the network Notifying the consortium 247 252 252 253 254 256 257 258 260 264 268 269 270 273 273 277 282 283 284 285 285 286 287 290 291 291 293 294 296 298 299 299 300 302 302 305 305 306 307 309 309 310 312 314 314 Upgrading the business network Downloading a new version Updating the business network Summary Chapter 9: Life in a Blockchain Network Modifying or upgrading a Hyperledger Fabric application 315 316 316 316 318 319 Fabric blockchain and application life cycle 323 Channel configuration updates 325 Prerequisites for adding a new organization to the network 327 Generating network cryptographic material 328 Generating channel artifacts 328 Generating the configuration and network components in one operation 329 Launching the network components for the new organization 331 Updating the channel configuration 332 Adding the new organization to the network 335 Smart contract and policy updates 337 Modification in chaincode logic 338 Dependency upgrades in chaincode 339 Ledger resetting 340 Endorsement policy update 340 Upgrading chaincode and endorsement policy on the trade channel 342 Platform upgrades 343 System monitoring and performance 347 Measurement and analytics 348 What should we measure or understand in a Fabric application 349 Blockchain applications vis-à-vis traditional transaction processing applications 349 Metrics for performance analysis 350 Measurement and data collection in a Fabric application 351 Collecting health and capacity information 351 Profiling containers and applications 352 Measuring application performance 358 Fabric engineering guidelines for performance 359 Platform performance characteristics 359 System bottlenecks 359 Configuration and tuning 360 Ledger data availability and caching 361 Redundant committing peer 361 Data caching 362 Fabric performance measurement and benchmarking 362 Summary 363 Chapter 10: Governance, Necessary Evil of Regulated Industries Decentralization and governance Exploring the business models Blockchain benefits Supply chain management Healthcare 364 365 366 366 367 367 Finance – letter of credit From benefits to profits Network business model Founder-led network Consortium-based network Community-based network Hybrid models Joint venture New corporation Role of governance in a business network Business domains and processes Membership life cycle Funding and fees Regulation Education Service life cycle Disputes Governance structure Centralized governance Strategic governance Operational governance Tactical governance Decentralized governance Governance and the IT solution Managed on-boarding Summary Chapter 11: Hyperledger Fabric Security Hyperledger Fabric design goals impacting security Hyperledger Fabric architecture Fabric CA or membership service provider Peer Smart contract or chaincode Ledger Private data Ordering service Network bootstrap and governance – the first step towards security Creating the network Adding new members Deploying and updating chaincode Data model Strong identities – the key to the security of the Hyperledger Fabric network Bootstrapping Fabric CA Register Default Fabric roles 369 370 370 371 373 374 374 374 375 375 377 377 379 379 379 380 380 381 381 382 382 383 383 384 385 390 391 392 394 394 395 395 395 396 396 397 397 398 398 399 400 400 401 402 Enroll Which crypto protocols are allowed in certificate signing requests? Revoking identities Practical considerations in managing users in Fabric CA Chaincode security How is chaincode shared with other endorsing peers? Who can install chaincode? Chaincode encryption Attribute-based access control Pros and cons of attribute-based access control Common threats and how Hyperledger Fabric mitigates them Transaction privacy in Hyperledger Fabric Channels Private data Encrypting transaction data Hyperledger Fabric and Quantum Computing General data protection regulation (GDPR) considerations Summary Chapter 12: The Future of Blockchain and the Challenges Ahead Summary of key Hyperledger projects 402 403 403 403 404 404 404 405 405 405 406 407 408 408 408 408 409 410 The road ahead for Blockchain 411 412 412 413 414 415 Staying engaged with the Hyperledger blockchain Summary 416 418 419 420 423 Hyperledger framework – business blockchain technology Hyperledger tools Hyperledger Composer Addressing the divide – the enterprise blockchain and crypto asset-driven ecosystem Interoperability – understanding business service integration Scalability and economic viability of the blockchain solution Index 427 Preface We would like to thank our readers in taking time to consume our collective body of work that is representative of our practice, experience, and knowledge gained along the way. This book was motivated by the desire that we and others have had to contribute to the evolution of blockchain technologies. We were also challenged by a lack of a comprehensive guide that addresses myriad considerations, including but not limited to technology design choices, architecture choice, business consideration, and governance models. The authors of this book represent a unique an...