# 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
```


---

# Agent Instructions: 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://quanta.gitbook.io/documentation/testnet/become-a-block-producer.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.
