This document captures random notes. This might include troubleshooting, workarounds, or other information that not captured anywhere else.
Worker Proposals
Worker Proposals - Agile board - FIO Issue Tracking (atlassian.net)
Payment Requests
[DAO-1665] [Core Chain] LeetSoft Solutions, LLC - Apr 2023 Payment (USDC)
[DAO-1666] [Core Chain] LeetSoft Solutions, LLC - Apr 2023 Payment (Liquid FIO)
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
FIO-249: [Core Infrastructure] August 2023 - LeetSoft Solutions, LLC
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
FIO Explorers/Monitors
FIO MainNet Network Monitor (fioprotocol.io)
EOS Tools and Info - Aloha EOS
FIO MainNet Block Explorer and Wallet
FIO TestNet Block Explorer and Wallet
FIO Tools
Several tools have been built and are still in use by the FIO Protocol, i.e., cryptonym, devnet, and fiotop.
Blockpane Repo (cryptonym, fiowatch, fiotop)
CryptoLions/MSIG_console_manager
See the following repos for more info;
blockpane/cryptonym: A FIO Protocol wallet for developers (github.com)
dapixio/fio-devnet: devnet remote node management tool (github.com)
fio-tools/fio-top at master · blockpane/fio-tools (github.com)
Cryptonym Notes:
Default config
key: FIO6G9pXXM92Gy5eMwNquGULoCj3ZStwPLPdEb9mVXyEHqWN7HSuA
max_fee: 23.926127683
actor: o2ouxipw2rt4
tpid: tpid@blockpane
mSig Info
https://dev.fio.net/docs/command-line-interface
https://dev.fio.net/docs/multisig
Eric Butz, [7/25/2023 10:40 AM]
I used Cryptolion's MSIG tool and it was fairly straightforward. The main complexity is with creating contract updates.
https://github.com/CryptoLions/MSIG_console_manager/tree/FIO
I can see if I have some examples on my local machine using these scripts.
Eric Butz, [7/25/2023 10:48 AM]
Some helpful notes for getting this working:
To get it to connect to the local wallet I had to run:
pkill fio-wallet
./fio-wallet --http-server-address=127.0.0.1:8900 &
NOTE! make sure there is a carriage return after the last action in actions_list
Eric Butz, [7/25/2023 10:48 AM]
Some examples that might go into 1_actions_list:
.
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
FIO mSig Acct Payment Requests
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
Jira Legacy | ||||||
---|---|---|---|---|---|---|
|
FIO Explorers/Monitors
FIO MainNet Network Monitor (fioprotocol.io)
EOS Tools and Info - Aloha EOS
FIO MainNet Block Explorer and Wallet
FIO TestNet Block Explorer and Wallet
FIO Tools
Several tools have been built and are still in use by the FIO Protocol, i.e., cryptonym, devnet, and fiotop.
Blockpane Repo (cryptonym, fiowatch, fiotop)
CryptoLions/MSIG_console_manager
See the following repos for more info;
blockpane/cryptonym: A FIO Protocol wallet for developers (github.com)
dapixio/fio-devnet: devnet remote node management tool (github.com)
fio-tools/fio-top at master · blockpane/fio-tools (github.com)
Cryptonym Notes:
Default config
key: FIO6G9pXXM92Gy5eMwNquGULoCj3ZStwPLPdEb9mVXyEHqWN7HSuA
max_fee: 23.926127683
actor: o2ouxipw2rt4
tpid: tpid@blockpane
mSig Info
https://dev.fio.net/docs/command-line-interface
https://dev.fio.net/docs/multisig
Eric Butz, [7/25/2023 10:40 AM]
I used Cryptolion's MSIG tool and it was fairly straightforward. The main complexity is with creating contract updates.
https://github.com/CryptoLions/MSIG_console_manager/tree/FIO
I can see if I have some examples on my local machine using these scripts.
Eric Butz, [7/25/2023 10:48 AM]
Some helpful notes for getting this working:
To get it to connect to the local wallet I had to run:
pkill fio-wallet
./fio-wallet --http-server-address=127.0.0.1:8900 &
NOTE! make sure there is a carriage return after the last action in actions_list
Eric Butz, [7/25/2023 10:48 AM]
Some examples that might go into 1_actions_list:
./clio.sh push action fio.fee createfee '{"end_point":"wrap_fio_tokens","type":"0","suf_amount":"2000000000"}' -p fio.fee@active
...
Code Block |
---|
/home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com multisig review nyvrxkxhiyql token.2n.c1 /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com multisig approve nyvrxkxhiyql token.2n.c1 '{"actor":"nyvrxkxhiyql","permission":"active"}' 241873769 /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com multisig cancel nyvrxkxhiyql fiosys.2n.c1 241873769241873769 nyvrxkxhiyql /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com get table -l -1 eosio.msig nyvrxkxhiyql approvals2 /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com get table -l -1 eosio.msig nyvrxkxhiyql approvals2 | grep proposal_name /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com get table -l -1 eosio.msig nyvrxkxhiyql approvals2 | grep proposal_name /home/ubuntu/fio/3.5.x-dev/bin/clio -u https://api.fiotest.alohaeos.com get table -l -1 eosio.msig nyvrxkxhiyql approvals2 | grep proposal_name | grep c1 | wc -l |
...
grep proposal_name | grep c1 | wc -l |
Fees: Type 0 versus Type 1?
To verify actions; must hit api node that has history turned on
To verify fees; use Postman, create GET action, endpoint: http://fiotestnet.blockpane.com/v1/chain/get_fee, with json body of
{ "end_point": "update_encrypt_key"
}
Some fees require a fio_address, i.e. jasonbourne@fioprotocol
BP Tips
FIO | Sw/eden APT (eosswedenorg.github.io)
FIO App Notes
fio-bundles
Code Block |
---|
#!/bin/bash # Cmd line arg Usage #go run cmd/bundles/main.go -d "postgres://registration:O40pWHb40mmdcNbNPUGtg2aIh3qSUX@reg-uat.cluster-cnxphxkusylu.us-west-2.rds.amazonaws.com:5432/registration" -k "5JrWpJtuPyeXuFzhsAWYSyiT2gCZMR1d8ZdMPFhMkrkYE5NTvn7" -u "https://fiotestnet.blockpane.com |
...
}
Some fees require a fio_address, i.e. jasonbourne@fioprotocol
BP Tips
FIO | Sw/eden APT (eosswedenorg.github.io)
FIO App Notes
fio-bundles
Code Block |
---|
#!/bin/bash # Cmd line arg Usage #go " -v # ENV parameter usage export DB="postgres://registration:O40pWHb40mmdcNbNPUGtg2aIh3qSUX@reg-uat.cluster-cnxphxkusylu.us-west-2.rds.amazonaws.com:5432/registration" export NODEOS_API_URL="https://fiotestnet.blockpane.com" export WIF="5JrWpJtuPyeXuFzhsAWYSyiT2gCZMR1d8ZdMPFhMkrkYE5NTvn7" go run cmd/bundles/main.go -d "postgres://registration:O40pWHb40mmdcNbNPUGtg2aIh3qSUX@reg-uat.cluster-cnxphxkusylu.us-west-2.rds.amazonaws.com:5432/registration" -k "5JrWpJtuPyeXuFzhsAWYSyiT2gCZMR1d8ZdMPFhMkrkYE5NTvn7" -u "https://fiotestnet.blockpane.com" -v # ENV parameter usage export DB="postgres://registration:O40pWHb40mmdcNbNPUGtg2aIh3qSUX@reg-uat.cluster-cnxphxkusylu.us-west-2.rds.amazonaws.com:5432/registration" export NODEOS_API_URL="https://fiotestnet.blockpane.com" export WIF="5JrWpJtuPyeXuFzhsAWYSyiT2gCZMR1d8ZdMPFhMkrkYE5NTvn7" go run cmd/bundles/main.go -v |
Building the DevNet tool
Clone the dapixio DevNet repo located at dapixio/fio-devnet: devnet remote node management tool (github.com).
As this is a private repo, you will need to be granted access as well as have either a GitHub Personal Access Token or other means of ‘cloning’ the repo. If using an access token, the clone url is as follows:
git clone https://<Personal Access Token>@github.com/dapixio/fio-devnet.git
Refer to git - Clone A Private Repository (Github) - Stack Overflow for guidance.
Once the repo is cloned, cd to the fio-devnet/cmd/devnet and execute the cmd, 'go build'. This will build the devnet executable.
These steps were performed on a machine with all the necessary dependencies, i.e. go, c/c++ compiler.
Install/Configure/Run pgAdmin4 against RDS
See https://www.pgadmin.org/download/pgadmin-4-apt/ for installation instructions
Access to the RDS is via a bridge, i.e. the Bastion instances are the bridge for access to the registration databases. See https://aws.amazon.com/blogs/database/accessing-an-amazon-rds-instance-remotely-using-aws-client-vpn/ for overview.
Contact DevOps group and request access to the RDS instances
Provide specific instance names
For registration databases, access is via Bastion instances mentioned above. In my case I provided SSH public key to DevOps, which was inserted directly on Bastion instance. Provide key via private channel.
Private/Public key may be generated via ssh-keygen, MobaKeyGen, puttygen and is found in ~/.ssh/id_rsa.pub. Note that during keygen no password is needed.
Install PgAdmin on local linux desktop
Configure as follows;
Create a new connection; right-click “Servers” and click Register > Server. If a server group has not been created, do that first, then create a Server underneath that group.
On General tab, set the name of the db server
On Connection tab, set Host, Port (default: 5432), Maintenance database (the actual db), and username
On SSH Tunnel tab,
Oregon Tunnel host: ec2-52-13-131-147.us-west-2.compute.amazonaws.com
Oregon Username: ec2-user
N.Virginia Tunnel host: ec2-3-226-116-124.compute-1.amazonaws.com
N.Virginia Username: ec2-user
Now just configure a connection in PgAdmin with the database credentials, and in the SSH Tunnel tab, pass the bastion instance information according to the region you want to connect to the database.
Its also possible to use postgresql-client software, e.g. psql. to connect to the db. To do one must use ssh or putty to create a tunnel (much like is done above). See Connect to a PostgreSQL Server via SSH Tunnel - DEV Community for help in doing so.
Use appropriate pass-through (Bastion) servers with user ec2-user in ssh command
...
v
|
Building the DevNet tool
Clone the dapixio DevNet repo located at dapixio/fio-devnet: devnet remote node management tool (github.com).
As this is a private repo, you will need to be granted access as well as have either a GitHub Personal Access Token or other means of ‘cloning’ the repo. If using an access token, the clone url is as follows:
git clone https://<Personal Access Token>@github.com/dapixio/fio-devnet.git
Refer to git - Clone A Private Repository (Github) - Stack Overflow for guidance.
Once the repo is cloned, cd to the fio-devnet/cmd/devnet and execute the cmd, 'go build'. This will build the devnet executable.
These steps were performed on a machine with all the necessary dependencies, i.e. go, c/c++ compiler.
Install/Configure/Run pgAdmin4 against RDS
See https://www.pgadmin.org/download/pgadmin-4-apt/ for installation instructions
Access to the RDS is via a bridge, i.e. the Bastion instances are the bridge for access to the registration databases. See https://aws.amazon.com/blogs/database/accessing-an-amazon-rds-instance-remotely-using-aws-client-vpn/ for overview.
Contact DevOps group and request access to the RDS instances
Provide specific instance names
For registration databases, access is via Bastion instances mentioned above. In my case I provided SSH public key to DevOps, which was inserted directly on Bastion instance. Provide key via private channel.
Private/Public key may be generated via ssh-keygen, MobaKeyGen, puttygen and is found in ~/.ssh/id_rsa.pub. Note that during keygen no password is needed.
Install PgAdmin on local linux desktop
Configure as follows;
Create a new connection; right-click “Servers” and click Register > Server. If a server group has not been created, do that first, then create a Server underneath that group.
On General tab, set the name of the db server
On Connection tab, set Host, Port (default: 5432), Maintenance database (the actual db), and username
On SSH Tunnel tab,
Oregon Tunnel host: ec2-52-13-131-147.us-west-2.compute.amazonaws.com
Oregon Username: ec2-user
N.Virginia Tunnel host: ec2-3-226-116-124.compute-1.amazonaws.com
N.Virginia Username: ec2-user
Now just configure a connection in PgAdmin with the database credentials, and in the SSH Tunnel tab, pass the bastion instance information according to the region you want to connect to the database.
Its also possible to use postgresql-client software, e.g. psql. to connect to the db. To do one must use ssh or putty to create a tunnel (much like is done above). See Connect to a PostgreSQL Server via SSH Tunnel - DEV Community for help in doing so.
Use appropriate pass-through (Bastion) servers with user ec2-user in ssh command
Us-West-2:
52.13.131.147, ec2-52-13-131-147.us-west-2.compute.amazonaws.com
US-East-1:
3.226.116.124, ec2-3-226-116-124.compute-1.amazonaws.com
ssh -L localhost:5433:registration-b-20230614.cibwv8nm92hc.us-east-1.rds.amazonaws.com:5432 ec2-user@ec2-3-226-116-124.compute-1.amazonaws.com -i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Replace ‘ssh’ above with ‘ssh -o ExitOnForwardFailure=yes -f -N’ to put into background
Repl Prod east: ssh -o ExitOnForwardFailure=yes -f -N -L localhost:5433:registration-b-20230614.cibwv8nm92hc.us-east-1.rds.amazonaws.com:5432 ec2-user@ec2-3-226-116-124.compute-1.amazonaws.com -i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Repl Prod west: ssh -o ExitOnForwardFailure=yes -f -N -L localhost:5433:registration-b-20230717.cnxphxkusylu.us-west-2.rds.amazonaws.com:5432 ec2-user@ec2-52-13-131-147.us-west-2.compute.amazonaws.com
US-East-1:
3.226.116.124, ec2-3-226-116-124.compute-1.amazonaws.com
ssh -L localhost:5433:registration-b-20230614.cibwv8nm92hc.us-east-1.rds.amazonaws.com:5432 ec2-user@ec2-3-226-116-124.compute-1.amazonaws.com -i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Replace ‘ssh’ above with ‘ssh -o ExitOnForwardFailure=yes -f -N’ to put into background
Repl Prod east: ssh -o ExitOnForwardFailure=yes -f -N -L localhost:5433:registration-b-20230614.cibwv8nm92hc.us-east-1.rds.amazonaws.com:5432 ec2-user@ec2-3-226-116-124.compute-1.amazonaws.com -i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Repl Prod west: ssh -o ExitOnForwardFailure=yes -f -N -L localhost:5433:registration-b-20230717.cnxphxkusylu.us-west-2.rds.amazonaws.com:5432 ec2-user@ec2-52-13-131-147.us-west-2.compute.amazonaws.com -i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Test using a command like; psql --port=5433 --host=localhost --user registration -c "SELECT * FROM public.wallet"
GOLANG
Code Block |
---|
// Point to specific commit (put in require)
// go get github.com/fioprotocol/fio-go@943a6a787d29
// ==> github.com/fioprotocol/fio-go v1.0.6-0.20230331152418-943a6a787d29
// Point to latest (implied) in branch
// go get github.com/fioprotocol/fio-go@develop
// ==> github.com/fioprotocol/fio-go v1.1.0-rc1
// Point to branch with slashes (see bugs 32955, 38861)
// GOPROXY=direct go get github.com/fioprotocol/fio-go@release/v1.1.x
// Point to tag
// go get github.com/fioprotocol/fio-go@v1.1.0-rc1
// ==> github.com/fioprotocol/fio-go v1.1.0-rc1
// Replace remote dependency with local one
//replace github.com/fioprotocol/fio-go => /home/ubuntu/repos/fioprotocol/fio-go
|
To clean up dependencies, run
Code Block |
---|
go mod tidy |
Tips & Tricks
Tagging
To tag a branch (or move a tag): https://stackoverflow.com/a/8433371, https://stackoverflow.com/questions/20076233/replace-remote-tag-with-git
To delete a tag, see https://stackoverflow.com/questions/5480258/how-can-i-delete-a-remote-tag to delete a tag
To delete a branch https://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-locally-and-remotely, https://www.baeldung.com/git-delete-branch-locally-remotely
https://git-scm.com/docs/git-tag#_on_re_tagging, https://stackoverflow.com/questions/66913267/wrong-commit-hash-with-git-rev-parse-tag
Tagging workflow
Release candidate: tag with lightweight tag (do not include -a)
Code Block | ||
---|---|---|
| ||
git tag v2.9.0
git push origin --tags |
Release:
Remove tag (both remote and local)
Tag with annotated tag
Code Block |
---|
git push origin :refs/tags/v2.9.0-rc1
git tag --delete v2.9.0-rc1
git tag -fa v2.9.0 -m "Version 2.9.0"
git push origin --tags |
To verify tag
Code Block |
---|
git rev-parse --verify HEAD
git rev-parse v2.9.0
git rev-parse v2.9.0^{commit} |
Account Information
To get account info run
Code Block | ||
---|---|---|
| ||
./clio -u http://127.0.0.1:8889 get account fio.treasury
./clio.sh get account fio.treasury |
To compare account info between testnet and localnet, run
...
language | bash |
---|
...
-i /home/ubuntu/.ssh/id_rsa.michael-fioprotocol.io
Test using a command like; psql --port=5433 --host=localhost --user registration -c "SELECT * FROM public.wallet"
GOLANG
Code Block |
---|
// Point to specific commit (put in require)
// go get github.com/fioprotocol/fio-go@943a6a787d29
// ==> github.com/fioprotocol/fio-go v1.0.6-0.20230331152418-943a6a787d29
// Point to latest (implied) in branch
// go get github.com/fioprotocol/fio-go@develop
// ==> github.com/fioprotocol/fio-go v1.1.0-rc1
// Point to branch with slashes (see bugs 32955, 38861)
// GOPROXY=direct go get github.com/fioprotocol/fio-go@release/v1.1.x
// Point to tag
// go get github.com/fioprotocol/fio-go@v1.1.0-rc1
// ==> github.com/fioprotocol/fio-go v1.1.0-rc1
// Replace remote dependency with local one
//replace github.com/fioprotocol/fio-go => /home/ubuntu/repos/fioprotocol/fio-go
|
To clean up dependencies, run
Code Block |
---|
go mod tidy |
Tips & Tricks
Tagging
To tag a branch (or move a tag): https://stackoverflow.com/a/8433371, https://stackoverflow.com/questions/20076233/replace-remote-tag-with-git
To delete a tag, see https://stackoverflow.com/questions/5480258/how-can-i-delete-a-remote-tag to delete a tag
To delete a branch https://stackoverflow.com/questions/2003505/how-do-i-delete-a-git-branch-locally-and-remotely, https://www.baeldung.com/git-delete-branch-locally-remotely
https://git-scm.com/docs/git-tag#_on_re_tagging, https://stackoverflow.com/questions/66913267/wrong-commit-hash-with-git-rev-parse-tag
Tagging workflow
Release candidate: tag with lightweight tag (do not include -a)
Code Block | ||
---|---|---|
| ||
git tag v2.9.0
git push origin --tags |
Release:
Remove tag (both remote and local)
Tag with annotated tag (include -a and -m <msg>)
Code Block |
---|
git push origin :refs/tags/v2.9.0-rc1
git tag --delete v2.9.0-rc1
git tag -fa v2.9.0 -m "Version 2.9.0"
git push origin --tags |
To verify tag
git rev-parse of a tag will show a commit just for the tag. Use git show <commit> to view commit info
Code Block |
---|
git rev-parse --verify HEAD
git rev-parse v2.9.0
git rev-parse v2.9.0^{commit} |
Account Information
To get account info run
Code Block | ||
---|---|---|
| ||
./clio -u http://127.0.0.1:8889 get account fio.treasury
./clio.sh get account fio.treasury |
To compare account info between testnet and localnet, run
Code Block | ||
---|---|---|
| ||
./clio -u http://52.35.164.8:8888 get account fio.treasury
./clio.sh get account fio.treasury |
Bash-isms
to find files and replace strings
Code Block |
---|
find . -type f \( -exec grep -l "\/home\/ubuntu\/fio\/upgrade" {} \; -false -o -exec sed -i 's/\/home\/ubuntu\/fio\/upgrade/\/home\/ubuntu\/tmp\/fio\/apts/g' {} \; \) |
Code Block |
---|
find . -type f \( -exec grep -l "fio\/upgrade" {} \; -false -o -exec sed -i 's/\/home\/ubuntu\/fio\/upgrade/\/home\/ubuntu\/tmp\/fio\/apts/g' {} \; \)``` |
Troubleshooting
Database Dirty Flag
...
V1 History config:
https://developers.fioprotocol.io/docs/chain/node-build-history
warning Without the history-index-state-db-size-mb and history-state-db-size-mb settings nodes may stop with the warning: Database has reached an unsafe level of usage, shutting down to avoid corrupting the database. Please increase the value set for chain-state-db-size-mb and restart the process!
Dirty Flag Issue:
Ye olde folder deletion problem where you have to manually delete some folders when doing a replay
Jira Legacy server System JIRAJira serverId 5f0d8161-d4cf-3d17-96b1-53b2b2b5013d key BD-1953 To solve this you have to delete the history and history-state folders if you are not running v1 histor
[Ross/EOSphere} Restart with a snapshot from here and check the nodeos usage example at the bottom.https://snapshots.eosphere.io. Also delete the two history folders in the nodeos binary directory you started from.
Jira Legacy server System JIRAJira serverId 5f0d8161-d4cf-3d17-96b1-53b2b2b5013d key BD-1953
...
Dev Hub/Dev Hub Sitebuilder: FIO Protocol Developer Hub / FIO ReadMe / FIO readme.com SiteBuilder1.9 Docs
Zoom Recordings
...