Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Page Spec

Item

Content

Page URL

/fio-chain/overview

Page Title

FIO Protocol - FIO Chain Overview

Design

https://www.figma.com/file/n33HwJfIuwy068A7G0Bdpg/FIO-Website?type=design&node-id=576-5607

Section Content

FIO Chain Live!

...

When user clicks Search or hits enter redirect to the following url (same tab) based on content in this order:

Content format

Redirect Url

String longer than 64 characters

https://fio.bloks.io/transaction/STRING

Regex: ^FIO[A-HJ-NP-Za-km-z1-9]{50}$

https://fio.bloks.io/key/STRING

Regex: ^(?:(?=.{3,64}$)[a-zA-Z0-9]{1}(?:(?!-{2,}))[a-zA-Z0-9-]*(?:(?<!-))@[a-zA-Z0-9]{1}(?:(?!-{2,}))[a-zA-Z0-9-]*(?:(?<!-))$)

https://fio.bloks.io/address/STRING

Regex: ^(?=.{1,62}$)[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9]$

https://fio.bloks.io/domain/STRING

Dynamic Content

  • On initial load show “Waiting for data” (see Figma) before data is populated from APIs

  • This content needs to refresh every 3 seconds

  • Show max 5 transactions and then start replacing the older ones

Content element

Endpoint

Request

Response

Latest Block Producer

GET https://fio.blockpane.com/v1/chain/get_info

N/A

Use head_block_producer to get Latest Block Producer account name

Code Block
{
    "server_version": "533ed469",
    "chain_id": "21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c",
    "head_block_num": 208004440,
    "last_irreversible_block_num": 208004104,
    "last_irreversible_block_id": "0c65e40850aef57864d6ee3621b71cb90f40101628afa07a9b6dffc9ee124a41",
    "head_block_id": "0c65e5584c7f8b5901d1c3b54cd8a76afc27eb650bc21428b1a6a58dc7b8319b",
    "head_block_time": "2023-07-12T19:18:17.500",
    "head_block_producer": "hislmnfx13ya",
    "virtual_block_cpu_limit": 200000000,
    "virtual_block_net_limit": 1048576000,
    "block_cpu_limit": 199900,
    "block_net_limit": 1048576,
    "server_version_string": "v3.3.0",
    "fork_db_head_block_num": 208004440,
    "fork_db_head_block_id": "0c65e5584c7f8b5901d1c3b54cd8a76afc27eb650bc21428b1a6a58dc7b8319b"
}
POST

GET https://bpmonitor.fio.

blockpane.com

net/

v1

api/

chain/get_table_rows

Always same

Code Block
{
    "json": true,
    "code": "eosio",
    "scope": "eosio",
    "table": "producers"
}
  1. Iterate through rows until you find owner which matches Last Block Producer account name from step above

  2. Use:

    1. fio_address as Block Producer Name

    2. url as Base URL to use in next step

Code Block
{
    "rows": [
        {
            "id": 0,
            "owner": "dacobcm2lnnc",
            "fio_address": "bp@thedac",
            "addresshash": "0x44ddade5cd4acba595ea2a42c23414b2",
            "total_votes": "298659819248324224.00000000000000000",
            "producer_public_key": "FIO8UxsfvX6QpjukrFqbaUMtT7WfeiXZRE26F4ATAwYjwZacUACNw",
            "is_active": 1,
            "url": "https://eosdac.io",
            "unpaid_blocks": 0,
            "last_claim_time": "2023-04-24T18:27:32.500",
            "last_bpclaim": 1682433093,
            "location": 10
        },
    ]
}

GET BASE URL /bp.json

N/A

Use:

  • orgwebsite as Website URL

  • orgbrandinglogo_svg as Logo

    • If image fails to load use generic “block” icon same as next to Last Block

  • orglocationcountry as Country

  • orgsocialtwitter as Twitter URL

    • Do not show icon if not present

  • orgsocialtelegram as Telegram URL

    • Do not show icon if not present

Code Block
languagejson
{ "producer_account_name": "bp@blockpane", "org": { "candidate_name": "Block Pane", "website": "https://blockpane.com", "code_of_conduct":"https://blockpane.com/conduct/index.html", "ownership_disclosure":"https://blockpane.com/about/index.html", "email":"security@blockpane.com", "github_user":"blockpane", "chain_resources": "", "other_resources": [], "branding":{ "logo_256":"https://blockpane.com/images/bp-256.png", "logo_1024":"https://blockpane.com/images/bp-1024.png", "logo_svg":"https://blockpane.com/images/blockpane.svg" }, "location": { "name": "Colorado", "country": "USA", "latitude": 39.739235, "longitude": -104.990250 }, "social": { "keybase": "blockpane", "telegram": "blockpane", "github":"blockpane" } }, "nodes": [] }

producers

N/A

  1. Iterate through rows until you find owner which matches Last Block Producer account name from step above

  2. Use:

    1. fio_address as Block Producer Name

    2. website as Website URL

    3. brandinglogo_svg as Logo

      • If not present use logo_256

        • If not present use generic “block” icon same as next to Last Block

    4. location_name as as Country

    5. flagIconUrl as flag image url

    6. socialstwitter as Twitter URL

    7. socialstelegram as Telegram URL

      1. Do not show icon if not present

    8. socialstwitter as Twitter URL

      1. Do not show icon if not present

Latest Block

GET https://fio.blockpane.com/v1/chain/get_info

N/A

Use head_block_num

Code Block
{
    "server_version": "533ed469",
    "chain_id": "21dcae42c0182200e93f954a074011f9048a7624c6fe81d3c9541a614a88bd1c",
    "head_block_num": 208004440,
    "last_irreversible_block_num": 208004104,
    "last_irreversible_block_id": "0c65e40850aef57864d6ee3621b71cb90f40101628afa07a9b6dffc9ee124a41",
    "head_block_id": "0c65e5584c7f8b5901d1c3b54cd8a76afc27eb650bc21428b1a6a58dc7b8319b",
    "head_block_time": "2023-07-12T19:18:17.500",
    "head_block_producer": "hislmnfx13ya",
    "virtual_block_cpu_limit": 200000000,
    "virtual_block_net_limit": 1048576000,
    "block_cpu_limit": 199900,
    "block_net_limit": 1048576,
    "server_version_string": "v3.3.0",
    "fork_db_head_block_num": 208004440,
    "fork_db_head_block_id": "0c65e5584c7f8b5901d1c3b54cd8a76afc27eb650bc21428b1a6a58dc7b8319b"
}

Transactions

POST https://fio.blockpane.com/v1/chain/get_block

Use head_block_num from previous call

Code Block
languagejson
{
    "block_num_or_id":211471729
}

Iterate through transactions and use:

  • trxid as Transaction ID

  • trxtransactionactionsaccount as Contract

  • trxtransactionactionsname as Action

  • trxtransactionactionsdata as Data for overlay JSON prettifed

Make entire transaction id in list and overlay link to: https://fio.bloks.io/transaction/Transaction ID

Code Block
{
    "timestamp": "2023-08-01T20:54:21.500",
    "producer": "hkzfdcxe11us",
    "confirmed": 0,
    "previous": "0c9acd700209ed7c07db7ffafb5d33f573dc5cc86da32b50ae9bfd529a13a229",
    "transaction_mroot": "fdbacf566dd051a4bb0585ff93a9ddc539fe238475df9c0e2178430b3d953f13",
    "action_mroot": "73d52b411115f553b93871926105f3b0c7c02b2ffc5db2e5c6e48ba7572143f6",
    "schedule_version": 344,
    "new_producers": null,
    "header_extensions": [],
    "producer_signature": "SIG_K1_KfzzrwZVE4ZRToxKCd4YJ4ULnNXmXeUc5RxPs6rDid5hqT1ecEJU56ZdofDZJd6qXLE3edvKfRJuF6apxHXsoJtA9RubKP",
    "transactions": [
        {
            "status": "executed",
            "cpu_usage_us": 11248,
            "net_usage_words": 25,
            "trx": {
                "id": "cdfd9053f804e5b57037802a9f406723ff92a177f5c92b355fdaf9ed04537544",
                "signatures": [
                    "SIG_K1_Kb8W4hLnEQ1xBf1mXz8VD44dC18De91APEGk5fuMW8szYrpHhq4Hf7T9Ke27iK9favSRYj141UJRPz47GH4cyTpiWhAbVf"
                ],
                "compression": "none",
                "packed_context_free_data": "",
                "context_free_data": [],
                "packed_trx": "ae71c96419cc84a6bf7b0000000001003056372503a85b0000c6eaa66498ba01f0d08101d981e4da0000c6eaa66498ba6a156a6b7434386164656c6c696f6e40747769747465723546494f383552763376726432713273514d35487378544852745162565a4c573744626841706b515567594772415a6f4475425754380098f73e5d010000f0d08101d981e4da0d64617368626f6172644066696f00",
                "transaction": {
                    "expiration": "2023-08-01T20:57:18",
                    "ref_block_num": 52249,
                    "ref_block_prefix": 2076157572,
                    "max_net_usage_words": 0,
                    "max_cpu_usage_ms": 0,
                    "delay_sec": 0,
                    "context_free_actions": [],
                    "actions": [
                        {
                            "account": "fio.address",
                            "name": "regaddress",
                            "authorization": [
                                {
                                    "actor": "vfmc3qc1kbcj",
                                    "permission": "regaddress"
                                }
                            ],
                            "data": {
                                "fio_address": "jkt48adellion@twitter",
                                "owner_fio_public_key": "FIO85Rv3vrd2q2sQM5HsxTHRtQbVZLW7DbhApkQUgYGrAZoDuBWT8",
                                "max_fee": 1500000000000,
                                "actor": "vfmc3qc1kbcj",
                                "tpid": "dashboard@fio"
                            },
                            "hex_data": "156a6b7434386164656c6c696f6e40747769747465723546494f383552763376726432713273514d35487378544852745162565a4c573744626841706b515567594772415a6f4475425754380098f73e5d010000f0d08101d981e4da0d64617368626f6172644066696f"
                        }
                    ],
                    "transaction_extensions": []
                }
            }
        }
    ],
    "block_extensions": [],
    "id": "0c9acd71926300f1c0aaaf185744a76b3dbf6f964da11b2ed520ec4dab087100",
    "block_num": 211471729,
    "ref_block_prefix": 414165696
}

Benefits and Innovations

Links will be added later