# BNB Smart Chain Testnet: Luban Upgrade Announcement

**URL:** <https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331>\
**Category:** BEP\
**Created:** [April 25, 2023, 8:40am UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331 "2023-04-25T08:40:08Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![brilliant-lx](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.bnbchain.org/brilliant-lx/32/812_2.png) [@brilliant-lx](https://forum.bnbchain.org/u/brilliant-lx)\
**Post date:** [April 25, 2023, 8:40am UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331/1 "2023-04-25T08:40:08Z")

</div>

- [BNB Smart Chain Testnet: Luban Upgrade Announcement](#bnb-smart-chain-testnet-luban-upgrade-announcement)
- [1. Background Story](#1-background-story)
  - [1.1 Who is Luban?](#11-who-is-luban)
  - [1.2 What is a hard fork upgrade?](#12-what-is-a-hard-fork-upgrade)
  - [1.3 What happens during a network upgrade?](#13-what-happens-during-a-network-upgrade)

- [2. How does this upgrade affect me?](#2-how-does-this-upgrade-affect-me)
  - [2.1 As a full node operator, what do I have to do?](#21-as-a-full-node-operator-what-do-i-have-to-do)
  - [2.2.Important: For Validator Operator](#22important-for-validator-operator)
  - [2.3 What will happen if I forget to upgrade my full node in time?](#23-what-will-happen-if-i-forget-to-upgrade-my-full-node-in-time)
    - [How to recover?](#how-to-recover)

  - [2.4 As a developer, what do I have to do?](#24-as-a-developer-what-do-i-have-to-do)

- [3. Upcoming Changes](#3-upcoming-changes)
  - [3.1 BEP-126: Introduce Fast Finality Mechanism (Part 1)](#31-bep-126-introduce-fast-finality-mechanism-part-1)
  - [3.2 BEP-174: Cross Chain Relayer Management](#32-bep-174-cross-chain-relayer-management)
  - [3.3 BEP-221: CometBFT Light Block Validation](#33-bep-221-cometbft-light-block-validation)
  - [3.4 Other Notable Changes](#34-other-notable-changes)

- [Find us on](#find-us-on)

## BNB Smart Chain Testnet: Luban Upgrade Announcement

BNB Smart Chain Chapel Testnet is expected to have a scheduled hard fork upgrade named Luban at block height 29,295,050. The current block generation speed forecasts this to occur around 27th Apr 2023 at 06:30 AM (UTC). The validators and full node operators on Testnet should switch their software version to [v1.2.1](https://github.com/bnb-chain/bsc/releases/tag/v1.2.1) before 27th Apr 2023.

## 1. Background Story

### 1.1 Who is Luban?

[Luban](https://zh.wikipedia.org/wiki/%E9%B2%81%E7%8F%AD)(507-? BC), also known as Gongshu Ban, was a legendary figure in ancient China who was celebrated for his exceptional skills in carpentry, architecture, and engineering. He was a gifted artisan, engineer, and inventor who lived during the Warring States period (475-221 BC) and his contributions to the fields of carpentry, architecture, and engineering were truly remarkable. His designs and innovations were not only groundbreaking for his time, but they have also laid the foundation for many modern-day engineering feats that we continue to marvel at today.

### 1.2 What is a hard fork upgrade?

A hard fork is an upgrade that is not compatible with the previous release because some breaking changes are introduced in the latest release. A hard fork in BNB Smart Chain requires more than half of all validators to successfully upgrade to keep making blocks. If the existing full nodes in the network do not upgrade, they will not be able to receive and execute further blocks normally after the hard fork block height.

### 1.3 What happens during a network upgrade?

Logic changes will occur at block height 29,295,050 for this upgrade. After the activation of the upgrade, the blockchain is able to handle a series of new features and bug fixes.

## 2. How does this upgrade affect me?

### 2.1 As a full node operator, what do I have to do?

This release is breaking and you need to switch to [v1.2.1](https://github.com/bnb-chain/bsc/releases/tag/v1.2.1). Upgrade instructions are (all the below should be done before the hardfork block height):

1. If your node is already synced with the network, please download and compile the latest version
2. Stop the geth process and restart it with [v1.2.1](https://github.com/bnb-chain/bsc/releases/tag/v1.2.1).

### 2.2.Important: For Validator Operator

> If you are running as a **validator** , the following extra steps are needed!

Step 1. Create a voting key first: `./geth bls account new --datadir <path>`  
It will generate a wallet if it has not been created before, you have to keep the wallet password. If the wallet has been created before, you only need to provide the password. The password length should \>=10 characters. Then it will create an account.

Remember, you can create several accounts, but only one will be used.

Step 2. You can view keys in the wallet by: `./geth bls account list --datadir <path>`  
Remember the first one listed here will be used as the voting key, other keys are not used right now.

Step 3. update the config file: config.toml

- add 2 fields under `Node` section: `BLSPasswordFile` & `BLSWalletDir`  
You need to provide the file: `/<path>/bls/blspassword.txt`, may generate it by: `echo <WalletPassword> >/<path>/bls/blspassword.txt`
- add 1 field in `[Eth.Miner]` section: `VoteEnable = true` to enable it.  
Or you may manually add an option on node start: `geth --vote` to enable it as well.

The content of the config.toml for example:

```auto
...
[Node]
BLSPasswordFile = "/<path>/bls/blspassword.txt"
BLSWalletDir = "/<path>/bls/wallet"
...
[Eth.Miner]
VoteEnable = true
...

```

> note: if the node prints: “BLS wallet did not exists.”,  
> then you may add the flag to specify it: “–blswallet /\<path\>/bls/wallet”

Step 4: restart  
You may only provide the flag: `--vote`, if you did not specify it in config.toml  
Then you may go ahead, just restart the node.

### 2.3 What will happen if I forget to upgrade my full node in time?

If you cannot upgrade your software, you cannot sync with the upgraded BNB Smart Chain peer/validator nodes. You will not be able to connect or send transactions.

#### How to recover?

1. Download and compile the latest version [v1.2.1](https://github.com/bnb-chain/bsc/releases/tag/v1.2.1).
2. Stop the geth process and restart it with [v1.2.1](https://github.com/bnb-chain/bsc/releases/tag/v1.2.1).

### 2.4 As a developer, what do I have to do?

There are no changes to the EVM module. You do not need to do anything.

## 3. Upcoming Changes

### 3.1 [BEP-126](https://github.com/bnb-chain/BEPs/blob/master/BEP126.md): Introduce Fast Finality Mechanism (Part 1)

This BEP describes a fast finality mechanism to finalize a block, once the block has been finalized, it won’t be reverted forever.

The finality of a block can be achieved within two blocks in most cases, this is expected to reduce the chance of chain re-organization and stabilize the block producing further.

Luban upgrade only provides the capability of fast finality, the validators can vote, but the votes are not used to finalize a block and the reward & punishment mechanisms are not enabled either.

Fast Finality will not be fully ignited until the upgrade: Plato.

### 3.2 [BEP-174](https://github.com/bnb-chain/BEPs/blob/master/BEP174.md): Cross Chain Relayer Management

This BEP introduces a new governance proposal type to manage the set of whitelisted Relayers.  
A Relayer whitelist was introduced recently to the BSC genesis contracts ([PR-198](https://github.com/bnb-chain/bsc-genesis-contract/pull/198)). This BEP will improve the management of the relayer whitelist by introducing Relayer Managers, where a Relayer Manager can manage the registration of a single Relayer. Managers will be elected and ejected via governance.

### 3.3 [BEP-221](https://github.com/bnb-chain/BEPs/pull/221): CometBFT Light Block Validation

This BEP introduces a new precompiled contract to validate the [CometBFT](https://docs.cometbft.com/v0.37/introduction/) light blocks.

### 3.4 Other Notable Changes

FEATURE

- [#1357](https://github.com/bnb-chain/bsc/pull/1357) Integration API for EIP-4337 bundler with an L2 validator/sequencer

IMPROVEMENT

- [#1486](https://github.com/bnb-chain/bsc/pull/1486) feature: remove diff protocol registration

BUGFIX

- [#1430](https://github.com/bnb-chain/bsc/pull/1430) docker: upgrade alpine version & remove apks version
- [#1458](https://github.com/bnb-chain/bsc/pull/1458) cmd/faucet: clear reqs list when reorg to lower nonce
- [#1484](https://github.com/bnb-chain/bsc/pull/1484) fix: a deadlock caused by bsc protocol handshake timeout

## Find us on

Introduce: [https://bnbchain.world](https://bnbchain.world)

Twitter: [https://twitter.com/BNBChain](https://twitter.com/BNBChain)

Telegram: [Telegram: View @BNBchaincommunity](https://t.me/BNBchaincommunity)

Discord: [BNB Chain](https://discord.gg/bnbchain)

---

<div class="post-metadata">

**Author:** ![ArnoB](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.bnbchain.org/arnob/32/633_2.png) [@ArnoB](https://forum.bnbchain.org/u/ArnoB)\
**Post date:** [April 25, 2023, 8:54am UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331/2 "2023-04-25T08:54:13Z")

</div>

Hi, thank you for sharing the detailed announcement about the Luban Upgrade for the BNB Smart Chain Chapel Testnet. The information on upcoming changes, including BEP-126, BEP-174, BEP-221, and other notable changes, gives an exciting insight into the improvements expected with the Luban upgrade. The fast finality mechanism, cross-chain relayer management, and CometBFT light block validation will surely contribute to the overall growth and stability of the BNB Smart Chain ecosystem.

---

<div class="post-metadata">

**Author:** ![48ClubIan](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.bnbchain.org/48clubian/32/863_2.png) [@48ClubIan](https://forum.bnbchain.org/u/48ClubIan)\
**Post date:** [April 25, 2023, 10:27am UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331/5 "2023-04-25T10:27:21Z")

</div>

What is the BLS Wallet and Password?  
Which feature is it related to ?

---

<div class="post-metadata">

**Author:** ![brilliant-lx](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.bnbchain.org/brilliant-lx/32/812_2.png) [@brilliant-lx](https://forum.bnbchain.org/u/brilliant-lx)\
**Post date:** [April 25, 2023, 10:30am UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331/6 "2023-04-25T10:30:54Z")

</div>

BLS represents: **Boneh–Lynn–Shacham** , is a kind of threshold signature.  
detail: [BLS digital signature - Wikipedia](https://en.wikipedia.org/wiki/BLS_digital_signature)  
And the BLS Wallet here is used to manage the voting keys.  
The BEP behind it is: [BEP-126: FastFinality](https://github.com/bnb-chain/BEPs/blob/master/BEP126.md)

---

<div class="post-metadata">

**Author:** ![mnguyen-io](https://sea2.discourse-cdn.com/flex020/user_avatar/forum.bnbchain.org/mnguyen-io/32/1256_2.png) [@mnguyen-io](https://forum.bnbchain.org/u/mnguyen-io)\
**Post date:** [May 25, 2023, 3:09pm UTC](https://forum.bnbchain.org/t/bnb-smart-chain-testnet-luban-upgrade-announcement/1331/8 "2023-05-25T15:09:27Z")

</div>

Hello - a question regarding the files generated by `geth bls account new` - if we migrate our existing Validator to a new server, do we also have to migrate the BLS keys also or can we simply generate a new one?
