Upgrading Your Node

f(x)Core hard fork upgrade--support EVM compatibility

This upgrade introduces a new module evm which will enable ethereum compatibility.

Upgrade steps

  1. 1.
    Ensure you have stopped the node❗
With Daemon
With PID
1
sudo systemctl stop fxcored
Copied!
1
ps -ef | grep fxcored
2
kill -9 <PID>
Copied!
2. Pulling the latest fx-core code base (ensure that you are in the fx-core folder):
1
git pull
Copied!
3. Checkout the branch of the upgrade version:
Mainnet
Testnet
No available yet
1
git checkout <upgradeable version branch>
Copied!
for example:
1
git checkout release/v2.1.x
Copied!
4. Update fxcored (ensure that you are in the fx-core folder):
1
make go.sum
Copied!
Mainnet
Testnet
1
make install
Copied!
1
make install-testnet
Copied!
5. Check fxcored environment & version
1
fxcored network
Copied!
Return (you should now see a field that says "EvmV0SupportBlock" & "EvmV1SupportBlock"):
1
{
2
"ChainId": "dhobyghaut",
3
"EIP155ChainID": "90001",
4
"IBCRouterBlock": "3433511",
5
"Network": "testnet"
6
}
Copied!
Cross reference the latest commit hash to the commit in our official github page:
1
fxcored version
Copied!
6. Running the following command will add EVM configurations to the app.toml and config.toml files:
1
fxcored config update
Copied!
Check evm configuration is added successfully:
1
fxcored config app.toml
Copied!
Return (you should see an EVM configuration):
1
...
2
evm:
3
max-tx-gas-wanted: 500000
4
tracer: ""
5
...
6
json-rpc:
7
address: 0.0.0.0:8545
8
api:
9
- eth
10
- net
11
- web3
12
block-range-cap: 10000
13
enable: true
14
evm-timeout: 5e+09
15
feehistory-cap: 100
16
filter-cap: 200
17
gas-cap: 2.5e+07
18
http-idle-timeout: 1.2e+11
19
http-timeout: 3e+10
20
logs-cap: 10000
21
txfee-cap: 1
22
ws-address: 0.0.0.0:8546
23
...
Copied!
7. Restart the node:
1
sudo systemctl restart fxcored
Copied!
8. Check whether the node is participating in consensus:
1
cat $HOME/.fxcore/data/priv_validator_state.json
Copied!
It should return something similar to the following:
You can cross reference the block "height" field with that of the FunctionX Explorer
1
{
2
"height": "347450",
3
"round": 0,
4
"step": 3,
5
"signature": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
6
"signbytes": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
7
}
Copied!
Additional features of client.toml
Users can specify the configuration of certain commands in the configuration file client.toml
Configure priority --flag> client.toml(default)
A point to note is that client.toml configuration are for fxcored CLI, while app.toml and config.toml are configurations for the node.
key
default
Optional value
description
chain-id
fxcore
Chain ID-used when signing transactions
keyring-backend
os
os/file/test
Keys storage method os: stored in the system password, file: file, specified password encryption, test: file, no encryption
output
text
text/json
Output format when querying
node
tcp://localhost:26657
Node address to be called
broadcast-mode
sync
sync/async/block
Broadcast transaction mode
Modify client.toml command fxcored config $key $value (example):
1
fxcored config chain-id fxcore
2
3
fxcored config keyring-backend test
4
5
fxcored config output json
6
7
fxcored config node "tcp://127.0.0.1:26657"
8
9
fxcored config broadcast-mode block
Copied!