[blockchain-046] 搭建一个单独的同步节点获取eos链上数据并进行查询

0.准备工作
  两台ecs,安全组开通 9876和5555和8888端口
  分别创建eos.data目录和logging.json,此处参考 eos性能测试。
  
1. 在np节点执行
  ./nodeos -d ~/eos.data/producer_node --config-dir ~/eos.data/producer_node -l ~/eos.data/logging.json --http-server-address "" -p eosio -e


2. 在同步节点执行
  2.1 启动节点
  ./nodeos -d ~/eos.data/generator_node --config-dir ~/eos.data/generator_node -l ~/eos.data/logging.json --plugin eosio::txn_test_gen_plugin --plugin eosio::wallet_api_plugin --plugin eosio::chain_api_plugin --p2p-peer-address 172.20.246.245:9876 --p2p-listen-endpoint localhost:5555


  2.2 创建钱包
    ./cleos wallet create
    "PW5Jw8AYaJ993aqg57jY16oBPY5jroNEeEernWXLh7eDtioYyTTNC"
  2.3 导入私钥
     ./cleos wallet import 5JWQcaFP8Fc1ZNRcc7Yofcp8bjTDjNS8EZLTxYNvhXBrhWsrQBf
  2.4 创建测试帐号
    curl --data-binary '["eosio", "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3"]' http://localhost:8888/v1/txn_test_gen/create_test_accounts
    注意,BP节点没有启动wallet_api_plugin,而是同步节点启动的。因此,这些2.2~2.5都是在同步节点执行,连接到的也是http://localhost:8888,其中,8888是同步节点上的wallet_api_plugin的端口。
  2.5 生成transaction
    curl --data-binary '["", 200, 10]' http://localhost:8888/v1/txn_test_gen/start_generation
  2.6 获取block数据
    ./cleos get block 100 #这个块是空的,此时尚未产生transaction
    ./cleos get block 4198 #此时,已经生成transaction,因此这个块有500个transaction,能看到大量的transaction数据出现。    
  2.7 eos正式上线后,如果要获取eos主网的全链数据,执行2.1,注意把里面的--p2p-peer-address参数换成超级节点的地址和端口。













  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
el-tree组件的懒加载是通过 `load` 方法来实现的,每次点击节点时都会调用该方法。如果你需要对同一个节点再次进行懒加载,可以在 `load` 方法中判断该节点是否已经加载过数据,如果已经加载过数据,则不需要再次获取数据,直接返回已有的数据即可。如果该节点之前没有加载过数据,那么就需要根据节点的唯一标识符(例如节点的 id)来获取数据,并在获取数据成功后将数据存储在该节点的 `children` 属性中,以备下次使用。具体实现方法可以参考以下代码示例: ```javascript <template> <el-tree :data="treeData" :load="loadNode" lazy></el-tree> </template> <script> export default { data() { return { treeData: [ { id: 1, label: 'Node 1', children: [], loaded: false // 标记是否已经加载过数据 }, { id: 2, label: 'Node 2', children: [], loaded: false } ] } }, methods: { loadNode(node, resolve) { if (node.loaded) { // 如果已经加载过数据,直接返回已有的数据 resolve(node.children) } else { // 根据节点的 id 获取数据 axios.get(`/api/data?id=${node.id}`).then(response => { node.children = response.data // 将获取到的数据存储在节点的 children 属性中 node.loaded = true // 标记节点已经加载过数据 resolve(node.children) // 返回获取到的数据 }) } } } } </script> ``` 在上面的代码中,每个节点都有一个 `loaded` 属性,用于标记该节点是否已经加载过数据。如果节点已经加载过数据,则在调用 `load` 方法时直接返回已有的数据,否则根据节点的 `id` 获取数据,并将数据存储在节点的 `children` 属性中,以备下次使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值