cargobridge

cargobridge
浏览 (739)
  • 类型:
  • 更新:2024-07-17
  • 大小:340M
  • 所需权限:查看
  • 隐私政策:查看
算法,根据 CKB 官方推荐的脚本即可。 ```rust use ckb_std::{ debug, dynamic_loading_c, dynamic_loading_default, error::SysError, high_level::*, }; /// calculate a sha3-256 hash of all inputs pub fn hash_inputs() -> u8; 32 { // 1. load sha3-256-dynamic let prefix = "ckb_sha3_"; let suffix = "_simple"; let args = 1u64, 32u64; let mut code_hash = 0u8; 32; if is_molecule() { let api = load_script(&args, prefix, suffix); let hash = api.hash(0, ARGUMENTS.len()); debug!("hash {:?}", hash); code_hash.copy_from_slice(&hash..); } else { let api = dynamic_loading_c::CKBDLContext::new(&args, prefix, suffix); let hash = api.hash(0, ARGUMENTS.len()); debug!("hash {:?}", hash); code_hash.copy_from_slice(&hash..); } code_hash } fn is_molecule() -> bool { // TODO: find better way to detect molecule envs ARGUMENTS.len() == 6 && ARGUMENTS0.as_bytes().len() > 20 } ``` ``main` 部分代码参考 ```rust fn main() -> i8 { // 2. Create args let prefix = "ckb_"; let args = 3u64, 2u64, 32u64; // 3. load sha3-256-dynamic let suffix = "_simple"; let api_bytes = load_script(&args, prefix, suffix); let len = args.len() as u64; let api = load_from_slice(&api_bytes.., len, 0, len); let mut hash = 0u64; // 4. loop for 10 times to test for i in 0..10 { let input = i as u64; let output = api.hash(input, input + 1); hash += u64::from(output0); } // 5. load sha3-256-default let suffix = ""; let dl = dynamic_loading_default::DynamicLoadingDefault::new(); let api = dl.transaction_load_code(".", suffix); let mut hash2 = 0u64; // 6. loop for 10 times to test for i in 0..10 { let input = i as u64; let output = api(transaction_load_code, transaction_pickle, transaction_serialize, hash, input, input + 1); hash2 += u64::from(output0); } if hash == hash2 { 0 } else { SysError::from_i8(1).unwrap() } } ``` 2. ckb 交易模板 使用了上一个lab 的仓库 ## 安装 安装依赖 ``` cargo install --path . ``` 如果出错可能涉及到 rust 内部缓存,清除缓存即可 ``` rm -rf ~/.cargo/registry/index/* ~/.cargo/registry/cache/* ~/.cargo/git/checkouts/* ``` 配置你的 API 对称密码 ``` export CARGO_BUILD_BGPASSWORD='your_password' ``` 构建二进制文件 ``` fc cargo build --release ``` 修改 `config.toml` 中的配置 ``` PORT = 8081 logger log.file_path = "./runtime/logs/" log.stdout = false log.level = "info" database dsn = "dbname=geek coin sslmode=disable" ``` 运行 Mac/Linux ``` ./target/release/cargobridge ``` Windows ``` target/release/cargobridge.exe ``` ### 部署 将以上二进制文件传到服务器前,请将二进制文件改名为 `cargobridge`以及确保你的服务器有 `config.toml`和 `webroot` 目录, 最后一步即可。 # 监控设计 cargobridge 监听的端口可以想办法开到 3306, 并把数据直接直接写入数据库,这样可以对 bridge 上的转换进行各种统计和数据分析, 例如当 bridge 能力不饱和时,可以设置更低的手续费。 # 仓库信息 - GitHub - NervosFoundation/cargo-bridge(https://github.com/NervosFoundation/cargo-bridge) # bridge 监控 - NervosFoundation/cargo_bridge#5 简单监控 cargobridge(https://github.com/NervosFoundation/cargo_bridge/issues/5) - 用 grafana 监控 cargobridge(https://chainstack.com/tutorials/monitoring-ckb-bridge-with-grafana-zabbix/)
安卓版下载

同类推荐更多

专题合集更多>>

席德梅尔的铁路2中文破解版-席德梅尔的铁路2 传奇发布网互通版手游下载 火猫直播百度百科-火猫TV直播 人人影视在国外能用吗-人人影视国际版