An enterprise blockchain is a permission blockchain node distributed to whom?
C
Explanation:
In Hyperledger Fabric, the enterprise blockchain is a permissioned network where nodes are
distributed among the member organizations that participate in the blockchain network. This is in
contrast to a public blockchain where anyone can participate anonymously. In a permissioned
blockchain like Hyperledger Fabric, the participants are known entities within a business network,
such as enterprises or organizations, that have specific permissions and roles within the network.
This setup enhances security and trust as each participant is vetted and authorized to take part in the
network operations. The architecture of Hyperledger Fabric is designed to support such a
governance model, where multiple organizations can interact in a secure and regulated environment,
maintaining their own ledgers but sharing data that require consensus across known entities.
An endorsement policy lists what?
D
Explanation:
In Hyperledger Fabric, an endorsement policy specifies which network participants, identified by
their digital identities, must endorse a transaction before it can be considered valid. This is crucial for
the network's security and integrity, as it controls how transactions are approved and added to the
ledger. Endorsement policies are part of the channel configuration and can be customized to fit the
specific needs of a business network. They dictate the necessary endorsements from specific
organizations or even particular roles within those organizations, ensuring that only authorized
entities can validate transactions. This mechanism supports the collaborative yet secure nature of
the enterprise blockchain, where trust is decentralized across different organizations that are part of
the network.
A smart contract can call other smart contracts both within the same channel and across different
channels. Which of the following transactions is inter-contract communication whose functionality is
limited?
D
Explanation:
In Hyperledger Fabric, inter-contract communication is possible both within the same channel and
across different channels. However, the functionality to alter the state (using PutState) of a
chaincode on a different channel is restricted. This limitation is due to the security and isolation
principles of channels in Hyperledger Fabric, where each channel represents a separate ledger and
state. Transactions within a channel can read and write data freely, subject to endorsement policies,
but writing data to another channel's chaincode directly is not permitted. This prevents unauthorized
influence on a separate and potentially isolated business process, ensuring that operations within a
channel are controlled and secure.
When building a test network, how many nodes are adequate for an Ordering Service?
C
Explanation:
For a test network in Hyperledger Fabric, one ordering node is sufficient to form an Ordering
Service7
. The test network typically uses a single-node Raft ordering service for simplicity and
educational purposes.
However, for production networks, a multi-node ordering service is
recommended for fault tolerance and high availability8
.
Regarding peer lifecycle chaincode, which of the following is the incorrect (unsupported)
subcommand for query?
A
Explanation:
The
correct
subcommands
for
querying
in
the
peer
lifecycle
chaincode
arequeryinstalled,queryapproved,checkcommitreadiness,commit, andquerycommitted1
. The
subcommandquerypackagedis not a supported subcommand for querying in the peer lifecycle
chaincode.
When deploying an Orderer environment, variables must be customized or overridden in which
artifact?
D
Explanation:
When deploying an Orderer environment in Hyperledger Fabric, the primary configuration file that
must be customized or overridden is orderer.yaml. This file contains the configuration settings
specifically for the orderer node, including general ledger type, consensus type, and various
operational settings like batching, timeouts, and MSP configurations. Other files like crypto-
config.yaml, docker-compose.yaml, and configtx.yaml serve different roles. crypto-config.yaml is
used for generating cryptographic material, docker-compose.yaml for defining services, networks,
and volumes for containers, and configtx.yaml for channel configuration and consortium definitions.
Therefore, orderer.yaml is critical for setting up the orderer's behavior and parameters in the network
environment.
Which subcommand adds a peer to a channel in Hyperledger Fabric?
D
Explanation:
In Hyperledger Fabric, the correct subcommand to add a peer to a channel is peer channel join. This
command is used by a peer node to join an existing channel. The command requires a block to be
specified which typically is the genesis block of the channel, allowing the peer to synchronize with
the channel's ledger from the beginning. Other commands like peer channel fetch, peer channel
create, and peer channel update serve different purposes. peer channel fetch retrieves blocks from a
channel, peer channel create is used to set up a new channel, and peer channel update modifies
channel settings. Thus, peer channel join is the specific command used to connect a peer to a
channel.
After the transaction that contains the delState("A") function is committed, what happens to the
ledger and state database?
C
Explanation:
In Hyperledger Fabric, when a transaction that includes the delState("A") function is committed, it
results in the removal of the state of the key "A" from the current state database. However, the
history of all transactions that have affected the key "A" remains intact in the ledger. This operation
ensures that while the current state reflects the deletion, the immutability and traceability of the
ledger are preserved, allowing for auditability and verification of past states. Options such as setting
an empty value to the key or altering the transaction history are not supported, as they would violate
the principles of immutability and transparency central to blockchain technology. Therefore, the
correct outcome of a delState("A") operation is that the current state of "A" is deleted, but its
transaction history remains accessible in the ledger.
How would a developer iteratively test and develop a smart contract without the overhead of the
smart contract lifecycle process for every update?
A
Explanation:
For developers looking to iteratively test and develop smart contracts in Hyperledger Fabric without
the overhead of the full lifecycle process for each update, the recommended approach is to run the
chaincode in development mode. This mode allows developers to test and debug chaincode directly
on their machines without having to package, install, approve, and commit changes on the network
each time. Development mode simplifies the iterative development process by allowing direct
interaction with the chaincode during its development, making it easier to make and test changes
quickly and efficiently. This contrasts with other methods that involve manual updates,
redeployments, or using a production network, all of which are more time-consuming and complex.
Which of the following information do signature policies provide when creating a network in
Hyperledger Fabric?
A
Explanation:
In Hyperledger Fabric, signature policies specify the identities of specific users who must sign a
transaction for it to be considered valid. These policies define the endorsement rules associated with
a chaincode and are a critical component of the transaction flow. They ensure that transactions are
endorsed by the correct entities as stipulated by the governance of the network. Signature policies
are not related to the number of nodes, private keys of participants, or the type of consensus
algorithm used but are strictly about defining which users or member organizations' signatures are
required to fulfill transaction criteria.
What is true about the historic states in Hyperledger Fabric model?
C
Explanation:
Historic states in the Hyperledger Fabric ledger are immutable, meaning they cannot be altered after
they have been committed to the ledger. This immutability ensures the integrity and traceability of
all transactions on the network. Once a transaction is recorded, it is permanent, and its history can
be audited to trace back all operations affecting any piece of data. This feature is fundamental in
blockchain technology, providing a verifiable and tamper-evident record. The immutability of historic
states is a key component of the trust and security model in Hyperledger Fabric, contrary to options
that suggest these records can be modified or are inaccessible.
In Hyperledger Fabric, Intercommunication is how a smart contract in a channel updates the World
State database. It is achieved by what process?
C
Explanation:
Intercommunication in Hyperledger Fabric regarding how smart contracts update the World State
database is primarily achieved by calling other smart contracts, both within the same channel and
across different channels. This process allows smart contracts, also known as chaincode, to interact
and transact across the network, updating the World State as necessary based on business logic
defined in the contracts. This capability is crucial for complex business processes that span multiple
contracts and possibly multiple channels. Unlike setting endorsement policies or configuring peer-to-
peer options, calling other smart contracts directly facilitates dynamic and direct interaction between
business processes, enhancing the modularity and efficiency of the network. Cross-channel
communication must be carefully managed within the permissions and policies defined in the
network to maintain security and integrity.
What types of events committed to the ledger can client applications receive using the peer's event
service?
B
Explanation:
In Hyperledger Fabric, client applications can subscribe to receive both chaincode events and block
events using the peer's event service. Chaincode events are generated by the chaincode itself,
typically based on specific conditions coded within the chaincode operations, and are used to notify
applications of specific state changes or significant occurrences. Block events inform about the
addition of new blocks to the ledger, which may contain multiple transactions. This dual capability
allows client applications to effectively monitor transaction confirmations and specific chaincode
outputs in real time, which is critical for applications that rely on up-to-date blockchain data for
processing decisions.
Which of the following is the correct role of orderer nodes?
A
Explanation:
The primary role of orderer nodes in Hyperledger Fabric is to order and package endorsed
transactions into blocks. Orderers receive transactions from various peers, ensure that these
transactions are in a consistent order, and then package them into blocks that are subsequently
appended to the blockchain. This function is crucial for maintaining the consistency and integrity of
the ledger across all participating nodes. Orderer nodes do not issue tokens, enforce peer
endorsements, or reorder stored blocks for data compression. Instead, their main function is integral
to the consensus and ledger maintenance processes within a Hyperledger Fabric network
What gRPC status code might you expect to be associated with an error invoking a transaction as a
result of a transient failure, such as a network disconnection between the client application and
Gateway peer?
A
Explanation:
The gRPC status code "UNAVAILABLE" is commonly expected in scenarios involving transient failures
in network communication, such as a disconnection between the client application and the Gateway
peer. This status code indicates that the service is currently unavailable, often due to network issues
or service downtime, making it suitable for situations where the failure is temporary and the request
can be retried. This differs from other codes like "ABORTED" or "DEADLINE EXCEEDED," which
represent different types of errors related to the transaction logic or timing issues, respectively.
"FAILED PRECONDITION" would be inappropriate for network disconnections as it suggests issues
with the request's preconditions, not the network status.