> For the complete documentation index, see [llms.txt](https://quanta.gitbook.io/documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://quanta.gitbook.io/documentation/testnet/become-a-block-producer.md).

# Become a Block Producer

Participate in consensus and strength our network by operating server to produce nodes.

Basic requirements:

* Access to data-center fast internet (AWS, Azure, etc)
* [m3.medium](https://aws.amazon.com/ec2/previous-generation/) instance or better  (3.75GB RAM, and 1 vCPU)
* 100 GB of storage or greater
* Provide at least 98%+ uptime

Data-center is not required as long as you have access to high speed internet.

The process

1. Create a ticket Quanta-core [Issues](https://github.com/quantadex/quanta-core/issues/new) with following [template](https://github.com/quantadex/quanta-core/issues/1).
2. Announce it our Quanta Telegram community
3. Reach out to us on Telegram
4. Once you have enough votes, you will voted in as an active block producer.

### Creating a witness proposal

In order to become an active block producer, you must create a witness proposal on the blockchain. &#x20;

First, upgrade account to be create yourself a witness proposal:

```
upgrade_account <accountname> true
```

```
>>> create_witness <accountname> "https://github.com/quantadex/quanta-core/issues/<your issue>" true
{
  "ref_block_num": 139,
  "ref_block_prefix": 3692461913,
  "relative_expiration": 3,
  "operations": [[
  21,{
    "fee": {
      "amount": 0,
      "asset_id": "1.3.0"
    },
    "witness_account": "1.2.16",
    "url": "url-to-proposal",
    "block_signing_key": "<PUBLIC KEY>",
    "initial_secret": "00000000000000000000000000000000000000000000000000000000"
  }
]
  ],
  "signatures": [
  "1f2ad5597af2ac4bf7a50f1eef2db49c9c0f7616718776624c2c09a2dd72a0c53a26e8c2bc928f783624c4632924330fc03f08345c8f40b9790efa2e4157184a37"
  ]
}

```

### Voting for Witness

```
vote_for_witness <voting_account> <witness_account> true true
```

Vote will take effect after the maintenance window:

```
unlocked >>> get_dynamic_global_properties
get_dynamic_global_properties
{
  "id": "2.1.0",
  "head_block_number": 2283648,
  "head_block_id": "0022d8802b618cf8447ed6f53c78cac25b053341",
  "time": "2019-01-14T22:41:03",  # <-- current time
  "current_witness": "1.6.4",
  "next_maintenance_time": "2019-01-15T00:00:00", # <--- maintenance window
  "last_budget_time": "2019-01-14T00:00:01",
  "witness_budget": 0,
  "accounts_registered_this_interval": 11,
  "recently_missed_count": 3,
  "current_aslot": 2500579,
  "recent_slots_filled": "334793941648020101144837524519280048061",
  "dynamic_flags": 0,
  "last_irreversible_block_num": 2283642
}
```

### Configure Node for Block Production

Configure your config.ini file to specify the node which witness you're producing as, and the block signing key.

```
witness-id = "1.6.10"
private-key = ["QAH7vQ7GmRSJfDHxKdBmWMeDMFENpmHWKn99J457BNApiX1T5TNM8","5JGi7DM7J8fSTizZ4D9roNgd8dUc5pirUe9taxYCUUsnvQ4zCaQ"]
```

```
# Run the node
quanta-node --data-dir data/testnet
```
