BOSCore
  • BOSCore Documentation
  • BOSCore
    • Essentials
      • IBC (Inter-blockchain Communication)
        • User Guide
        • Token Registration and Management
        • ibc_plugin_bos
        • ibc_plugin_eos
        • Upgrade IBC with EOSIO v1.8
        • ibc.token
        • ibc.chain
      • 3s LIB (Batched Byzantine Tolerance Algorithm)
        • PART I BOS LIB Acceleration Solution: Batch PBFT
        • PART II BOS Batch-PBFT Upgrade Solution
        • Algorithm for improving EOSIO consensus speed based on Batch-PBFT
    • Ecosystem
      • BOSWPS (BOS Improvement Proposal)
        • 1. BOS Improvement Proposal Example
        • 2. Contract Deployment Procedure
        • 3. Referendum Execution Procedure
        • 4. BOS Development Incentive program
        • 5. BOS Referendum - Vote Tally
        • 6. auditor.bos - a contract that elect the auditors for boswps.io
        • 7. eosio.forum - simple forum, messaging and voting system for BOS
        • 8. escrow.bos - a contract that holds funds in escrow
      • BET (BOS Executive Team)
        • BET Contract design Guideline
        • bet.bos - BOS Bet Elections Contract
        • DPOS Borda Count Theory
      • BOS Oracle
        • BOS.Oracle: Witness and Changes
        • BOS Oracle Deployment
    • Resources
      • BOS Whitepapers
      • BOS Community
      • BOS Bug Bounty
Powered by GitBook
On this page

Was this helpful?

  1. BOSCore
  2. Essentials
  3. IBC (Inter-blockchain Communication)

ibc_plugin_bos

PreviousToken Registration and ManagementNextibc_plugin_eos

Last updated 5 years ago

Was this helpful?

IBC related softwares' version description

There are three IBC related softwares, , and , There are currently multiple major versions for all these three software repositories and between major versions maybe incompatible, so the three repositories need to use the correct major version number to coordinate their work.

compatible combination one:

Repo

branch(es)

ibc_contracts

master

ibc_plugin_eos

master(for eosio v1.8.x)/ibc_v2.x.x_branch(for eosio 1.7.x and early version)

ibc_plugin_bos

master 2

compatible combination two:

Repo

branch(es)

ibc_contracts

v1.x.x

ibc_plugin_eos

ibc_v1.x.x_branch

ibc_plugin_bos

ibc_v1.x.x_branch

Notes

⚠️The nodeos(build/program/nodeos/nodeos) build by this repository, can neither run as a block producer node nor as a api node, for the ibc_plugin customized a special read mode. we add chain_plug->chain().abort_block() and chain_plug->chain().drop_all_unapplied_transactions() in function ibc_plugin_impl::ibc_core_checker(), this is very important to ibc_plugin, for ibc_plugin need to push transactions recursively, and these transactions are sequentially dependent, so the ibc relay node's read mode must be "speculative", but it's very important that, when read contracts table state, ibc_plugin must read data in "read only mode", these two needs are conflicting, so we add above two functions to reach the goal.

Some Description

Because ibc_plugin is required for each chain and run as a relay node, and because the underlying source code of BOS and EOS is slightly different, a separate plugin repository needs to be maintained for each chain, the plugin repository for eosio is , for bos is . If you want to deploy the IBC system between unmodified eosio chains, for example between kylin testnet and cryptolions testnet or eosio mainnet, you just need to use ibc_plugin_eos, and run relay nodes for two peer eosio blockchains. The difference between ibc_plugin_eos and ibc_plugin_bos is simply that, ibc_plugin_eos is based on , ibc_plugin_bos is based on , the ibc_plugin source code of the two repository and the modifications to other plugins(chain_plugin) are exactly the same. Doing so makes it easier to maintain the source code.

ibc_contracts
ibc_plugin_eos
ibc_plugin_bos
ibc_plugin_eos
ibc_plugin_bos
eosio
bos