> For the complete documentation index, see [llms.txt](https://docs.catalyx.solutions/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.catalyx.solutions/catalyx-blockchain-manager/hyperledger-fabric/version-2.4/getting-started/build-a-network.md).

# Build a Network

The blockchain network is fully decentralized and can be managed by each member. However, there should be one organization that bootstraps the network.

To build a network, you should:

1. Create an organization.
2. Bootstrap the system channel (generate the genesis block for the system channel).

<figure><img src="/files/lLspCWfsVO50ROBQRfzs" alt=""><figcaption></figcaption></figure>

## Create an Organization

Every organization should have its own CA(s), MSP definition, ordering service with ordering node(s), and peer set(s) with peer node(s).

{% hint style="info" %}
Starting from Catalyst Blockchain Manager v2.3.0 you can onboard a new organization to a network even if it doesn't host any ordering node. See [Joining a system channel with an external orderer](broken://pages/04363692ed5762b5515deaffaf1064f655cef00e#joining-a-system-channel-with-an-external-orderer) for more.
{% endhint %}

<figure><img src="/files/I0bCqZG68G50FXiOxy9i" alt=""><figcaption></figcaption></figure>

{% stepper %}
{% step %}

#### Create a Certificate Authority (CA)

CA is the first entity to be created while bootstrapping a network. Each organization needs its own CA. A CA issues certificates to other entities on the network, which define the identity of an entity on the blockchain.

You can create a root (self-signed) CA, or create an intermediate CA and sign its certificate by any trusted CA.

See detailed information about how to create and sign a CA in the [Certificate Authority](file:///7571772/network-and-node-management/certificate-authority.md) section.

<figure><img src="/files/A6E4mxKocY5xFfP5bOHl" alt=""><figcaption></figcaption></figure>
{% endstep %}

{% step %}

#### Create an Organization's MSP Definition

The Membership Service Provider (MSP) identifies which CAs are accepted to define the members of a trusted domain by listing their members' identities or identifying which CAs are authorized to issue their members' valid identities.

An ordering service and peer sets belong to your organization, so an organization's MSP must be created before the ordering service and peer sets. See [MSP and Partners](file:///7571772/network-and-node-management/msp-and-partners.md#how-to-create-an-organizations-msp).
{% endstep %}

{% step %}

#### Create Ordering Set(s)

By creating an ordering set, you can standardize the desired configurations. Simply adding a new orderer to this ordering set lets you quickly create any number of orderers with the predefined set of configurations. See [How to Create an Ordering Set](file:///7571772/network-and-node-management/ordering-service.md#how-to-create-an-ordering-set).
{% endstep %}

{% step %}

#### Create Ordering Node(s)

Ordering nodes (orderers) are responsible for maintaining the system and application channels, ordering transactions, and packaging them into blocks.

{% hint style="warning" %}
We recommend creating at least **three ordering nodes** while bootstrapping the network in order to be crash fault-tolerant.
{% endhint %}

{% hint style="danger" %}
If you add other organizations at the system channel's creation step, your organization needs to have more orderers than the number of organizations you are going to add. Otherwise, a quorum will not be achieved.
{% endhint %}

See [How to Create an Orderer](file:///7571772/network-and-node-management/ordering-service.md#how-to-create-an-orderer).
{% endstep %}

{% step %}

#### Create Peer Set

Just like an ordering set for orderers, a peer set is a template for peers. See [How to Create a Peer Set](file:///7571772/network-and-node-management/peer-set.md#how-to-create-a-peer-set).
{% endstep %}

{% step %}

#### Create Peer Node(s)

Peers are nodes that host a copy of the distributed ledger and smart contracts. There is no limit on the number of peers. See [How to Create a Peer](file:///7571772/network-and-node-management/peer-set.md#how-to-create-a-peer).

{% hint style="info" %}
Even though an organization was created, a network is not set up yet. You need to bootstrap a system channel or join one if it already exists.
{% endhint %}
{% endstep %}
{% endstepper %}

## Bootstrapping the System Channel (Generating the Genesis Block)

Every network begins with an ordering system channel. The policies in the ordering system channel configuration blocks govern the consensus used by the ordering service and define how new blocks are created.

The system channel also contains the organizations that are members of the ordering service (orderer organizations) and those allowed to create new channels (consortium organizations).

While creating a system channel you need to:

1. Add orderer organizations.
2. Create a consortium.
3. Configure the system channel and Raft options.

{% hint style="info" %}
Make sure that your organization is a member of orderer organizations and consortium. You can add other organizations as an orderer organization and a consortium member during this step or after the channel creation.
{% endhint %}

See [How to Create a System Channel](file:///7571772/network-and-node-management/ordering-service.md#how-to-create-a-system-channel).


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.catalyx.solutions/catalyx-blockchain-manager/hyperledger-fabric/version-2.4/getting-started/build-a-network.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
