EOCS框架概述和剖析

时间:2021-06-01 11:19:48

EOCS框架概述和剖析

什么是EOCS?

EOCS(Enterprise Operation Cross System),是一个基于eosio底层框架实现的企业级跨链操作系统,旨在实现和EOS主链通信的并行链,是真正意义的跨链,支持高效稳定的跨链交易,为跨链生态建设提供更稳定和安全的平台。作为可与EOS主链交互操作的第一条并行链,EOCS Chain力图实现安全可靠、快捷便利的跨链资产转移、跨链智能合约调用。任何人都可以在EOCS Chain并行链上开发或使用跨链DAPP。

为什么选择EOCS?

互操作性

EOCS Chain并行链允许EOS主链与主流公有链、联盟链、私有链互相通信和价值交换。

可扩展性

通过多链互联互操作,EOCS Chain可帮助EOS实现史无前例的无限扩展。

开发友好性

EOCS Chain延续了EOS软件堆栈的WebAssembly机制,可以非常轻松地开发DAPP。

EOCS发展路径

EOCS框架概述和剖析

EOCS核心竞争力

EOCS Chain并行链与EOS主链之间的同构跨链,涉及以下组件:

同构跨链协议(Isomorphic Inter-Chain Protocol, ICP) 同构跨链合约,在并行链和主链上同时部署,支持跨链协议包的解析,证明的验证和存储,以及EOS原生币(EOS)、EOCS Chain原生币(EOCS)、EOS代币的跨链资产转移 同构跨链通道,通过逻辑证明确保通道建立的稳定性和安全性。 中继者,将跨链协议包在并行链和主链之间安全快速地传输

EOCS Chain异构跨链尝试与探索

我们相信未来的区块链不仅在去中心化社区中得到商业落地前景,千万中小企业同样需要区块链作为价值传递的基础服务,未来不仅是公有链、联盟链还是企业内部的私有链,都需要在一个公用网络中进行价值传递和证明。 作为第一条EOS同构并行链,我们将在开发EOCS Chain的基础上,继续探索和研究异构链的跨链协议,不仅要为EOS生态做出支持百万TPS的并行链体系,更要为整个EOS体系连接异构链做出创造性的贡献,作为连接EOS主链及整个EOS跨链群体系与其他区块链链的纽带,为所有异构区块链公链、联盟链、私有链实现安全、快捷、无限扩展的区块链生态体系!

EOCS整体框架简图

EOCS框架概述和剖析

如何使用EOCS

编译和部署

EOCS 支持多种Linux操作系统,mac,centos,ubuntu等等,可以去github下载源码并编译,源码下载地址,https://github.com/eocschain/eocs。
在自己的工作目录(可自己设定)执行命令 git clone https://github.com/eocschain/eocs 更新下载源码。下载后文件组织结构如下

EOCS框架概述和剖析在该目录下执行eosio_build.sh,会生成build目录,执行成功会提示build success!!!

填写配置

在~/.local/share/eosio目录下有config和data文件夹,修改config.ini即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56

# Override default WASM runtime (eosio::chain_plugin)
wasm-runtime = wabt

# print contract's output to console (eosio::chain_plugin)
# 方便观察跨链合约打印信息
contracts-console = true

# The local IP and port to listen for incoming http connections; set blank to disable. (eosio::http_plugin)
# 链1为127.0.0.1:8888,链2为127.0.0.1:8889
http-server-address = 127.0.0.1:8888 # 或 127.0.0.1:8889

# The endpoint upon which to listen for incoming connections (eosio::icp_relay_plugin)
# 链1为0.0.0.0:8765,链2为0.0.0.0:8766
icp-relay-endpoint = 0.0.0.0:8765 # 或 0.0.0.0:8766

# The number of threads to use to process network messages (eosio::icp_relay_plugin)
# icp-relay-threads =

# Remote endpoint of other node to connect to (may specify multiple times) (eosio::icp_relay_plugin)
# 链1为127.0.0.1:8766,链2为127.0.0.1:8765;其实只要填一个,使得两条链的ICP插件能够连接上
icp-relay-connect = 127.0.0.1:8766 # 或 127.0.0.1:8765

# The chain id of icp peer (eosio::icp_relay_plugin)
# 链1填写链2的chain id,链2填写链1的chain id,可参考后文获取方式后再填写
icp-relay-peer-chain-id = 630f427c3007b42929032bc02e5d6fded325b3e2caf592f963070381b2787a9d

# The peer icp contract account name (eosio::icp_relay_plugin)
# 对端ICP合约账户名;链1填写链2上跨链合约账户名,链2填写链1上跨链合约账户名
icp-relay-peer-contract = eocseosioicp

# The local icp contract account name (eosio::icp_relay_plugin)
# 本端ICP合约账户名;链1填写链1上跨链合约账户名,链2填写链2上跨链合约账户名
icp-relay-local-contract = eocseosioicp

# The account and permission level to authorize icp transactions on local icp contract, as in 'account@permission' (eosio::icp_relay_plugin)
# ICP插件向本端ICP合约发送交易时使用的账户名
icp-relay-signer = eocseosrelay@active

# The actual host:port used to listen for incoming p2p connections. (eosio::net_plugin)
# 链1为0.0.0.0:9876,链2为0.0.0.0:9877
p2p-listen-endpoint = 0.0.0.0:9876 # 或 0.0.0.0:9877

# Limits the maximum time (in milliseconds) that is allowed a pushed transaction's code to execute before being considered invalid (eosio::producer_plugin)
# 设置足够大的最大交易执行时间,可参看ICP Challenges中关于计算量的说明
max-transaction-time = 300

# ID of producer controlled by this node (e.g. inita; may specify multiple times) (eosio::producer_plugin)
# 这里测试链仅使用生产者eosio
producer-name = eosio

# 填写账户eosio的公私钥,这里使用了默认值
signature-provider = EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV=KEY:5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3

# 插件
plugin = eosio::chain_api_plugin

启动节点

进入build/programs/nodes,执行nodes,启动节点
到此为止,EOCS概述和节点启动简介完毕,下一篇为大家带来EOCS的跨链设计和源码剖析

EOCS框架概述和剖析

EOCS框架概述和剖析的更多相关文章

  1. Java集合源代码剖析(一)【集合框架概述、ArrayList、LinkedList、Vector】

    Java集合框架概述 Java集合工具包位于Java.util包下.包括了非常多经常使用的数据结构,如数组.链表.栈.队列.集合.哈希表等.学习Java集合框架下大致能够分为例如以下五个部分:List ...

  2. Java基础系列7——集合系列(1)框架概述

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 集合框架概述 Jav ...

  3. Java——集合系列(1)框架概述

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 集合框架概述 Jav ...

  4. Entity Framework 学习总结之一:ADO.NET 实体框架概述

    http://www.cnblogs.com/xlovey/archive/2011/01/03/1924800.html ADO.NET 实体框架概述 新版本中的 ADO.NET 以新实体框架为特色 ...

  5. ThinkPHP框架概述

    框架概述 1.什么是框架 框架,即framework.其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统. 2.框架的应用场景 ① 代码重用 ② 合理分工 ③ 解决团队协作开发问题 3. ...

  6. iOS Foundation 框架概述文档:常量、数据类型、框架、函数、公布声明

    iOS Foundation 框架概述文档:常量.数据类型.框架.函数.公布声明 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业 ...

  7. struts2框架概述

    框架概述 什么是框架,为什么使用框架,框架优点 框架(framework)是一个基本概念上的结构,用于去解决或者处理复杂的问题 框架,即framework.其实就是某种应用的半成品,就是一组组件,供你 ...

  8. 芝麻软件: Python爬虫进阶之爬虫框架概述

    综述 爬虫入门之后,我们有两条路可以走. 一个是继续深入学习,以及关于设计模式的一些知识,强化Python相关知识,自己动手造*,继续为自己的爬虫增加分布式,多线程等功能扩展.另一条路便是学习一些优 ...

  9. 【安卓网络请求开源框架Volley源码解析系列】定制自己的Request请求及Volley框架源码剖析

    通过前面的学习我们已经掌握了Volley的基本用法,没看过的建议大家先去阅读我的博文[安卓网络请求开源框架Volley源码解析系列]初识Volley及其基本用法.如StringRequest用来请求一 ...

随机推荐

  1. Java Web进阶——Filter过滤器

    一.过滤器的介绍: 在Servlet规范2.3中定义了过滤器,它是一个服务器端的组件,可以截取用户端的请求与响应信息,并且对这些信息进行过滤. Servlet过滤器本身并不生成请求和响应对象,只是提供 ...

  2. qlserver、Mysql、Oracle三种数据库的优缺点总结

    这篇文章主要介绍了sqlserver.Mysql.Oracle三种数据库的优缺点总结,需要的朋友可以参考下   一.sqlserver优点:易用性.适合分布式组织的可伸缩性.用于决策支持的数据仓库功能 ...

  3. mac上eclipse上运行word count

    1.打开eclipse之后,建立wordcount项目 package wordcount; import java.io.IOException; import java.util.StringTo ...

  4. eval()字符串转成对象

    var s = "{a:1,b:2}"; console.log(typeof s); s = eval("(" + s + ")"); c ...

  5. Scrapy爬虫实例——校花网

    学习爬虫有一段时间了,今天使用Scrapy框架将校花网的图片爬取到本地.Scrapy爬虫框架相对于使用requests库进行网页的爬取,拥有更高的性能. Scrapy官方定义:Scrapy是用于抓取网 ...

  6. IntelliJ IDEA 教程(1)

    过完年,新的学习阶段又开始了.星爷的电影票还没还,国民岳父(韩寒)的礼钱也没送,王老板说再立一个小目标,马老板说我不在乎钱...学习还得继续. IntelliJ Idea 简称IDEA,是java语言 ...

  7. Jquery获取输入框属性file,ajax传输后端,下载图片

    Django web开发获取input属性file,可以用request.FILES.get(' ')直接获取到,然后正常拼接路径就可以下载, 但是今天我们来用异步获取file的值在传输后端下载. 1 ...

  8. 无需操作系统直接运行 Python 代码

    Josh Triplett以一个“笑点”开始了他在PyCon 2015上的演讲:移植Python使其无需操作系统运行:他和他的英特尔同事让解释器能够在GRUB引导程序.BIOS或EFI系统上运行.连演 ...

  9. windows 下编程实现打印日志

    下面是在windows下编程实现的日志打印,写的比较简单,可以根据实际情况进行修改使用. 宏WRITELOG在vs2013可以正常使用. 在vs2003和vs2010可能会报错,可以直接使用myLog ...

  10. Oracle JDK迁移指南

    Oracle JDK迁移指南 https://docs.oracle.com/en/java/javase/11/migrate/index.html#JSMIG-GUID-C25E2B1D-6C24 ...