2.1 基础功能
光子网络的基础功能包括:通道打开、通道存款、链下直接通道转账、链下间接通道转账、通道关闭、通道更新、通道结算。简要描述基础功能使用场景如下:假设有三个用户Alice、 Bob和Charlie想使用光子网络进行链下转账交易。以Alice发给Bob、Alice发送给Chalie为例:Alice打算转账30个token给Bob,转账20token给Charlie。简单支付过程会是什么样呢?
第一步,打开通道。如果Alice和Bob是第一次使用photon network进行转账交易,他们之前没有直接通道相连。那么对于交易发起者Alice来说, 她需要先使用打开通道功能,在Alice和Bob之间建立一条通道。此时,双方建立的通道内没有token,Alice和Bob可以在通道建立后,单独进行存款 *** 作,也可以在建立通道的同时,存一部分token进通道内。完成了打开通道,就可以使用新建的通道。同理,Alice也可以与Charlie打开通道,Bob也可以与Charlie打开通道,我们假设是Bob与Charlie打开了通道。
第二步,存款进通道。如果Alice在第一步通道创建时没有进行存款,为了能够给Bob进行转账,则Alice需要使用通道存款功能,向新创建的通道存入一定数量的token,存款 *** 作可以重复进行多次,Alice和Bob都可以向通道内存款。假定现在Alice向Alice<——>Bob通道存了100 token进通道,则目前Alice<——> Bob通道总容量为100 token,其中Alice为100 token,Bob为0 token。此外,Bob在Bob<——> Charlie通道内也存入80 token。
第三步,链下转账。在光子网络的支持下,Alice可以向Bob发送30token的转账,因为目前Alice和Bob之间存在直接通道,并且在通道内Alice有100 token的余额,因此,直接通道转账成功。转账完成后,Alice的存款为70token,Bob的存款为30token,此时,因为交易成功发送,没有锁定token。Alice向Charlie发送20token的转账,因为Alice和Charlie之间没有直接通道,所以不能进行直接通道链下转账;但是,Alice和Bob,Bob和Charlie之间有直接通道,Alice可以通过Bob向Charlie进行间接通道转账。转账完成后,Alice<——>Bob通道内余额为Alice 50token,Bob 50tokenBob<——>Charlie通道内余额为Bob 60token,Charlie 20token。
第四步:关闭通道。Alice在与Bob交易完成后,不想再继续使用她们之间的这条通道,想取回通道内的资金,此时Alice可以使用关闭通道功能单方面关闭这条通道,并等待通道更新后进行结算。
第五步:更新通道。Alice为了不损失钱,在通道关闭的同时需要提交最新的余额证明,更新对方给自己的转账金额;同样,Bob得知Alice打算关闭他们之间的通道,为了防止自己受损失,Bob也需要使用更新通道功能,提交Alice转账给自己的证明,双方更新通道余额(并解锁已注册锁的交易)后,可以进行通道结算。
第六步:结算通道。双方在结算窗口期后,任意一方可以使用通道结算功能将通道内的资金返还回双方各自的链上帐户中。如Alice 50token ,Bob 50token。结算完成后,Alice<——> Bob这条通道将被销毁。
2.2 特色功能
在基础功能之外,光子网络还有以下一些特色功能。
(1)合作关闭通道
在大部分的情况下,通道的双方是合作的。因此,单方关闭通道等待超时增加了复杂度和花费。为了提高效率,光子网络增加了合作关闭通道功能,通道双方只需要签名表示同意最终状态。双方合作关闭通道,可以立即进行结算,顺利情况下可以在20秒内,将 token 返回到各自账户上。
(2)不关闭通道取现
通道参与双方通过协商一致,在不关闭通道的情况下,可以从通道中提取一部分资金到自己的链上账户。光子网络为了防止重放攻击,在取钱后重新设置通道打开的区块数,防止取钱后一方使用旧的余额证明关闭通道获取额外利益。
(3)更完善的第三方支持
光子网络提供第三方代理服务,支持代理提交余额证明,代理解锁等功能,并可延伸支持代理创建通道、代理存款等功能,通道参与双方可以在没有光谱(以太坊)的情况下(离线)进行创建通道等 *** 作,并且保证自身利益的安全;光子网络提供第三方路由查找服务,优化路由计算效率和准确率以提高转账成功率,同时实现通道收费功能,激励中间节点以提升光子网络整体使用效能。
(4)引入惩罚机制
为了提高路由效率及资金的利用率,光子网络设计了交易声明放弃方式取代交易双方互锁方式,中转节点声明放弃余额不足的转账,从通道双方的锁集合中移除这个转账,由前向节点重选路由转发。如果放弃锁的节点在结算前对已放弃的锁重新解锁,光子网络将对不诚实的路由中间节点进行惩罚。
(5)密码注册
光子网络新增密码链上注册功能,通过链上密码注册时间判断交易是否过期,未完成的短期交易(锁超时)只要有密码(secret)已经注册即可认为安全,资金通道利用率更高,不会因为某个交易失败,而造成通道关闭。
(6)支持 ERC223 token
ERC223 token标准在现有的ERC20标准基础引入了一些新功能,如防止意外转账的发生等。目前已有部分token支持ERC223标准,为了使光子网络更具普遍应用价值,相应增加了对ERC223 token的支持。
(7)支持 ERC20 扩展 ApproveAndCall
增加ApproveAndCall 接口可以对token逻辑和业务逻辑 *** 作进行简化,光子网络为适应更多token的调用需要,已增加ApproveAndCall扩展,支持多种模式的调用。
三、 光子网络(photon network)优点
光子网络最主要的功能是进行链下微支付,具有安全、快速、可扩展和低费用的优点。此外,光子网络与其他的状态通道相比,还具有以下一些优点:
(1)广泛的跨平台和移动适配应用
现有的一些状态通道技术实现多基于特定的平台,目前能够实现跨平台功能应用的相对较少,光子网络采用go语言开发,可以在windows、Linux、macOS等平台上运行。另外,光子网络设计的应用场景之一是目前应用广泛的移动端和智能设备,因此可以完全适配Android和iOS等移动端系统。光子网络为了提高移动设备的通信稳定性和更好的用户体验,使用Matrix消息框架进行底层通信,此集群管理方案在普通的硬件支持下可达每秒百万级别的吞吐量,其点对点通信在稳定可靠(均需签名和加密)的room内进行,可实时监控节点的状态并提供高效的通信效能。
(2)精简的安全保护(状态恢复)机制
为了保证交易过程的正常进行,以及更好的适配移动设备,光子网络对交易中可能出现的意外场景进行了分析并针对性的设计了解决方案,实现交易节点状态数据的同步以保护交易安全。为了避免交易过程中出现意外造成移动设备存储过多信息,光子网络没有采取所有情况都可以继续交易的机制(这样会存储大量数据,对移动设备的使用效率会有较大影响),在确保意外节点重启后不会丢失token,通道仍可以继续使用的原则上设计了精简状态恢复机制,整体上保护了交易的安全。
(3)日趋完善的第三方支持
光子网络从安全和效率的角度提供了多个第三方支持,当前的第三方支持包括第三方代理和第三方路由服务,第三方代理可以帮助委托方监控通道状态,并在通道另一方关闭通道结算时更新通道状态,对移动节点离线后资金的安全有良好的保证;第三方路由服务接收当前所有节点的通道状态和收费信息,可实时监控节点的状态并提供当前最优的路由及收费方案来提高转账成功率。目前,第三方服务正进一步完善性能并集成进光子网络,方便用户对光子网络的使用。
(4)特殊应用场景支持
无网和跨链是光子网络的亮点。在meshbox的支持下,光子网络可以在不依赖互联网(公链)的情况下进行直接通道无网安全支付,在网络信号不佳和网络拥堵的场景下有现实的应用需求;此外,光子网络可以在不借助第三方的情况下实现链下原子资产转换,对应应用广泛的跨链市场需求。光子网络针对无网和跨链设计了相应的接口和使用流程,初步解决了用户在特殊场景下支付和交换难题。
源码地址: https://github.com/SmartMeshFoundation/Photon
开发文档: https://photonnetwork.readthedocs.io/en/latest
容器有多安全?很多人认为,容器比虚拟机安全性更低,因为如果容器主机内核存在漏洞,那么它可以提供一种进入共享它的容器的方法。管理程序也是如此,但由于管理程序提供远远少于Linux内核(通常实现文件系统,网络,应用程序进程控制等)的功能,因此它的攻击面更小。
但是在过去的几年里,为了增强容器的安全性开发了大量的软件。
例如,Docker(和其它容器系统)现在包括一个签名的基础架构,允许管理员签署容器镜像,以防止不可信的容器被部署。
然而,可信任的签名容器不一定可以安全运行,因为在签名后容器中的一些软件可能会被发现漏洞。因此,Docker和其它容器提供容器安全扫描方案,可以就容器镜像是否有任何可被利用的漏洞而通知管理员。
更专业的容器安全软件也被开发出来了。比如Twistlock,它提供的软件可以配置容器的预期行为和“白名单”进程,网络活动(如源和目标IP地址和端口),甚至是某些存储实践,以便可以标记任何恶意的或意外的行为。
另一家专业的容器安全公司Polyverse采用了不同的方法。它利用了这样一个事实,容器可以在几分之一秒内启动,以便每隔几秒在已知的良好状态中重新启动容器化应用程序,将黑客必须利用在容器中运行的应用程序的时间最小化。
哪一个Linux发行版适合用作容器主机?
如果Linux发行版的预期用途只是充当容器主机来运行容器,那么它们大多数都是功能上臃肿的。因此,很多Linux发行版本被设计为专门用于运行容器。
一些例子包括:
·Container Linux(以前的CoreOS Linux)—为容器而构建的第一个轻量级容器 *** 作系统之一。
·RancherOS –由容器构建的简化的Linux发行版,专门用于运行容器。
·Photon OS - 最小的Linux容器主机,被优化在VMware平台上运行。
·Project Atomic Host - Red Hat的轻量级容器 *** 作系统拥有基于CentOS和Fedora的版本,Red Hat Enterprise Linux中还有一个下游企业版本。
·Ubuntu Core - 最小的Ubuntu版本,Ubuntu Core被设计为用于物联网设备和大规模云端容器部署的主机 *** 作系统
如果是Windows环境会怎么样?
除了在任何运行3.10(或更高版本)的Linux内核的Linux发行版上运行,Docker还可以在Windows上运行。
这是因为在2016年,微软在Windows Server 2016和Windows 10中引入了运行Windows容器的能力。这些是为Windows设计的Docker容器,并且它们可以在任何Docker客户端或微软的PowerShell中进行管理。
(微软还引入了Hyper-V容器,这些容器是运行在Hyper-V虚拟机中的Windows容器,用于增加隔离度。)
Windows容器可以部署在Windows Server 2016的标准安装中,精简的Server Core安装或Nano Server安装选项,专门用于在容器或虚拟机中运行应用程序。
除了Linux和Windows之外,Docker还在流行的云平台上运行,包括亚马逊的EC2,谷歌的 Compute Engine,微软的Azure和Rackspace。
容器最终会取代全面的服务器虚拟化吗?
由于一些重要的原因,这在可预见的未来不太可能。
首先,仍然有广泛的意见认为虚拟机比容器提供了更高的安全性,因为它们提供了增强的隔离级别。
其次,可用于编排大量容器的管理工具还不如管理虚拟化基础架构的软件(如VMware的 vCenter或微软的System Center)全面。对这类软件进行了大量投资的公司在没有充分理由的情况下不太可能放弃他们的虚拟化基础架构。
也许更重要的是,虚拟化和容器也开始被视为互补技术而不是敌对技术。这是因为容器可以在轻量级虚拟机中运行,以增加隔离度,进而提高安全性,并且因为硬件虚拟化可以更轻松地管理支持容器所需的硬件基础架构(网络、服务器和存储)。
VMware鼓励投资虚拟机管理基础架构的客户在其轻量级虚拟机上的Photon OS容器Linux发行版上运行容器,而这些轻量级的虚拟机可以在vCenter进行管理。这是VMware的“VM中的容器”策略。
但是,VMware还引入了所谓的vSphere集成容器(vSphere Integrated Containers ,VIC)。这些容器可以被直接部署到独立的ESXi主机,也可以像虚拟机一样被部署到vCenter Server。这是VMware的“容器作为虚拟机”策略。
这两种方法都有其优点,但重要的是,能够在虚拟化基础架构中使用容器而不是替换虚拟机,这往往是很有用的。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)