首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链架构中的两大核心模块

如《区块链的本质 – 纳什均衡下的共识系统》一文中所述,本文将探讨如何利用区块链思想进行落地案例的架构设计,选择“法定数字货币”这个场景进行讨论。...简单而言,区块链是一个多方参与的“共识系统”,它包含两大核心模块: 1) 基本数据单元 基本数据单元指的是包含在区块中的基本属性信息。...兼容传统加密手段 以上区块链架构中的“基本数据单元”模块以及数据流转链条模块中“保障数据通信”和“兼容传统加密手段”的功能可由目前成熟的IT技术来实现,在此不再进行进一步的讨论。 c....例如在开放的应用场景中,当有人使用假币时,应设计一种机制使得交易对手能够识别异常并将具有争议的交易信息提交给网络中的其它参与方,经过其它参与方的校验和反馈之后,虚假的交易信息将会被覆盖并回退至交易开始前的状态...程序代码 对于区块链而言,“纳什均衡”就是其数学模型,在此基础上进行算法设计和程序开发可以起到事半功倍的效果。 作者为德勤中国智慧未来学院总监 高挺

773100
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    用发展的眼光追技术

    我们返回头再整体回顾下 YII2 框架,你会发现在 YII2 官方的默认模版中,View 层还是占有很大的比重。...在 YII2 社区中安装 YII2 版本的讨论中,经常有一个 View asset 扩展安装的难题,核心就是前端页面元素与后端服务的耦合的问题,以及版本依赖的冲突。...带来的耦合性 我们简单分析 YII2 的主配置文件,很容易了解到 YII2 是通过模块(module),组件(components)来启动和项目功能的。...YII2 入口文件及环境配置.png 根据组件分拆配置文件,实现组件和模块的按需加载。...YII2-模块.png 如上图,passport 和 admin 两个模块,如果都涉及同一张 User 表,依据复制优于依赖的原则,没有必要公用一个 User 类,可以单独存放为两个 User 类,用命名空间做隔离

    1.4K20

    微信小程序实践-- 服务器端接口restful配置

    为了以后版本化,将每个版本的接口以模块的形式建立,当然建立支持restful和建立普通的模块并没有差别,使用gii的模块生成即可。 此处省略好几个字,模块建立完成。...对于一般的restful规则的yii2路由配置如下图 alt 红色框内的代表一个标准restful中控制器路由规则,绿色框内是你必须要填写的,其他的except、pluralize、extraPatterns...在我们设置了urlManager后,yii2就变得智商满满了,当过来一个 GET xgh.nai8.me/xcx/albums 请求后,yii2知道这是一个要获取资源结果集的请求,则会去调用xcx模块下的...小提示:在兄弟连PHP原创视频中对这个原理也进行了详细的解析(《Yii2的RESTful讲解》第三节) 配置控制器 urlManager配置完成,接下来就是写一个控制器了,老沙对此很熟悉,不就是一个继承问题么...第二: 这里的AblumController就是urlMananger中的'controller' => 'xcx/album', 控制器的名字于单复数的设置无关。

    3.2K70

    Yii2中对Composer的使用

    若使用Composer我们应该先知道这是一个什么东西,主要干什么用的,我们可以把Composer理解为PHP包的管理工具,管理我们用到的Yii2相关的插件。...2、windows安装 下载Composer-Setup.exe,直接双击安装,具体使用介绍参考 win7系统下安装yii2步奏 linux下使用composer的执行命令:php composer.phar...Yii2中的composer 当我们安装完Yii2后打开目录我们会在安装目录下看到composer.json文件,里面有所需的信息和依赖的库。...每次我们需要安装所需的Yii2插件时,打开composer.json 找到 “require”如下: “require”: { “php”: “>=5.4.0”, “yiisoft/yii2”: “=2.0.10...php composer.phar update foo/bar) 这只是Composer在Yii2中的一个使用,它还有好多命令,大家可以参考Composer的官方网站,至于Yii2的插件,今后我会整理一下常用的插件方便大家使用

    93820

    牛逼哄哄的全链路监控系统!搭建起来也没有想象中的那么难啊...

    互联网应用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。...所以,在复杂的微服务架构系统中,几乎每一个前端请求都会形成一个复杂的分布式服务调用链路。...功能模块 一般的全链路监控系统,大致可分为四大功能模块: 埋点与生成日志 埋点即系统在当前节点的上下文信息,可以分为 客户端埋点、服务端埋点,以及客户端和服务端双向型埋点。...可以是RPC,DB等没有特定的限制)创建一个span,通过一个64位ID标识它,uuid较为方便,span中还有其他的数据,例如描述信息,时间戳,key-value对的(Annotation)tag信息...每个服务会记录下parent id和span id,通过他们可以组织一次完整调用链的父子关系。 一个没有parent id的span成为root span,可以看成调用链入口。

    1.1K20

    yii2反序列化后续

    昨天早上上班前,我无意间看到其它师傅们挖的yii2利用链,其中有一个是我之前忽略了的,就想着赶紧分享给大家,但是昨天恰了个饭(文末有福利),发不了文章,只有今天发了 这是一条利用__wakeup魔术方法作为入口的利用链...我当时也没有去搜这个错误是啥意思,以为是normalizer_is_normalized内部还有其他机制,然后我就去找了一下其他的__toString方法,但是都报这个错(其它利用链我会在后面提到) 后来去查了一下...> yii2真是一个练习反序列化连挖掘的好靶场,我们可以通过它来练习各种魔术方法在反序列化链构造中的使用 php所有的魔术方法如下: __construct(),类的构造函数 __destruct()...,类的析构函数 __call(),在对象中调用一个不可访问方法时调用 __callStatic(),用静态方式中调用一个不可访问方法时调用 __get(),获得一个类的成员变量时调用 __set(),设置一个类的成员变量时调用...__clone(),当对象复制完成时调用 __autoload(),尝试加载未定义的类 __debugInfo(),打印所需调试信息 这里我本打算再利用__invoke构造一个,我的想法如下: Symfony

    1.1K30

    python已安装了一个包,但是导入包中的模块时报错没有这个包

    执行import sys; print(sys.path)查看python搜索路径,确保自己的模块在python搜索路径中 python的搜索路径与包(package) python的搜索路径其实是一个列表...,它是指导入模块时,python会自动去找搜索这个列表当中的路径,如果路径中存在要导入的模块文件则导入成功,否则导入失败: >>> import sys >>> sys.path ['', 'C:\\Python33...,如果不是按照标准方式安装,则为了能够引用(import)这些模块,必须将这些模块的安装路径添加到sys.path中,有以下几种方法: 最简单的方法:是在sys.path的某个目录下添加路径配置文件,...路径配置文件的扩展名是”.pth”,其中的每一行包含一个单独的路径,该路径会添加到sys.path列表中(已验证)。”....pth”中的路径既可以是绝对路径,也可以是相对路径,如果是相对路径,则是相对于包含”.pth”文件的路径而言的。 终极解决办法:重新安装python

    5.7K10

    yii2开发中19条推荐实践

    Composer 这个是做yii2开发的基石,除非没有办法使用,否则请不要放弃,除了更容易的安装yii2及第三方扩展外,能使用Composer代表着你的服务器最少能运行起来php-cli,那么你就可以使用...,别说你的程序将来没有移动端,早早的选择一个支持emoji的数据库会避免我们下载第三方库去解决报错问题。...开发中 本段为你介绍我在yii2开发中一些习惯和小技巧,希望对你有用。...模型的重要性 很多yii2的初学者喜欢将大量逻辑写到控制器的动作(action)中,这是不对的,我们的重点应该在模型中,而控制器仅仅是做输入输出。 我们拿关联举个例子,下面的这段代码是不好的。...当然从理念上说也有点不同 行为 一些类附加的属性 父类 一些类共同的属性 我的用法(不一定就是对的),尤其在模块中我喜欢为控制器增加一层父类。

    3.3K70

    我是怎么挖掘yii2反序列化0day的

    给大家看看我这职业玩家般丝滑的操作 可是正当我玩的起劲的时候,我无意间在微信上看到有师傅发了最新的yii2框架反序列化漏洞payload 我立马开始焦虑起来?,这帮家伙真tm不休息吗 ?...漏洞分析 挖掘之前还是要搭建好环境嘛,去github上下载yii2的2.0.37版本或其他更低版本 当然,你也可以选择使用composer安装,不过我用composer安装不了(特别慢)所以我是直接到github...接下来,咱们就要去看利用链了,在没有细节披露的情况下就去看github的commit记录: ?...,而这里这么写,目的就是在当BatchQueryResult类被反序列化时就直接报错,避免反序列化的发生,也就避免了漏洞 那从上面的信息就可以知道BatchQueryResult肯定是这个反序列化链中的一环...在这个方法中我们可以实现任意代码执行或者间接实现任意代码执行 到目前为止我还不知道这个利用链到底有多长,所以,我一开始采用的笨办法就是找出框架中所有的无参数方法,然后一个个排查 当我输入正则:function

    1.5K40

    【错误记录】解压 Linux 内核报错 ( Can not create symbolic link : 客户端没有所需的特权 | Windows 中配置 7z 命令行执行解压操作 )

    文章目录 一、报错信息 二、解决方案 一、报错信息 ---- 二、解决方案 ---- 查看 7zip 软件的安装路径 E:\Program Files\7-Zip , 其中 7z.exe 和 7z.dll...就是执行所需的命令 ; 配置环境变量 : 右键点击文件目录左侧的 " 此电脑 " , 在弹出的菜单中选择属性选项 : 在电脑属性中 , 选择 " 高级系统设置 " , 然后逐步设置环境变量 , 将...7zip 软件的安装目录设置到环境变量中 ; 右键点击底部的 命令提示符 图标 , 在 命令提示符 选项上 , 再次点击右键 , 选择 " 以管理员身份运行 " 选项 ; 进入到 Linux 源码目录..., 执行 7z x linux-5.6.18.tar 命令 , 解压 Linux 源码 ; 解压过程中 , 没有上述报错 , 成功解压 ; 执行结果 : D:\004_Operate\Kernel\

    4.1K10

    Yii2的MVC新特性

    在Views还有一个值得注意的地方就是this变量,在Yii1.1中,this可以说就是链接Controller和Views的中介;而在Yii2中, 控制器(Controllers) 首先直接来看一下代码...字符串,cool return 'test'; } } 这里你有没有看到use yii\web\Controller?...没错,Yii2中已充分开始使用PHP命名空间,当初在Yii1.1的时候一直听说Yii2会使用更高级的PHP特性来完全重写,果然啊,点个赞。...而且现在的Controller中,每个输出变为了返回,就像上面的actionTest()一样,你现在可以完全返回一个字符串了,有没有一丝丝Laravel的影子?...写在最后 正如你在这篇文章看到的一样,在Yii2中几乎所有的MVC组件变化都使得Yii2更好用了,我相信这会带给开发者更好的的开发体验,毕竟Yii2 中看到了一丝丝优雅的样子!

    2.7K20

    从配置文件的角度去了解Yii2

    本文就从Yii2 Advance版本的配置文件着手,详细介绍配置文件角度的Yii2框架,其中涉及到的部分内核方面的要点将在后续文章中逐一说明....Yii2为了简化开发难度,所以用户定义的目录加载方式全部使用Yii2自己定义的autoload方法(Yii.php中注册的BaseYii.php中的autoload),而不是编辑composer.json...有两种情况,如果你的module或者component甚至一个名不见经传的对象引用了yii\base\BootstrapInterface接口,并实现了bootstrap()方法.将直接调用这个方法.如果没有引用...既然提到bootstrap,这个阶段Yii2还会调用所用的extension,做上述相同的事情.如果你自己编写了关于Yii2的扩展,这时候它将被实例化并缓存到Yii的对象容器中.至于extension的编写...'modules' 对应的modules(例如backend)目录下的Module对象的命名空间.方便Yii2进入你所定义的module. module在Yii2中是一组MVC的封装,这个概念可能在其他框架中不同

    1.5K21

    系统服务化构建-项目整体框架

    本篇文章旨在讨论如何组织通用型项目代码结构,以PHP YII2框架为例做说明,设计思想与语言本身无关。...微服务接口,业务中台服务,业务服务中间件,不包括通用的官网类似的MVC项目,CMS系统。...模块的定义,组件的边界决定于业务模型,需求定义,市场时机等多种因素。 基础功能组件与业务模块组件异同 1 解耦,稳定,可用 软件模块的基本要求必不可少。 2系统中的所处的层析清晰,不可混用。...公共方法类型在系统中位置没有严格的约束,一般在业务组件中使用较广 宿主工程 宿主工程在系统中位于最上层,起到调用业务模块的左右。...注:以上借助于框架特性,以YII2 Module的形式来组织代码,Module的具体使用案例及生成规则不在此文章中讨论。

    70020

    基于layui的开源yii2cms后台快速搭建框架

    哈喽,大家好,我是PHP学习网站长,一个混迹于互联网,至今仍然在挣扎的程序员,我会持续为大家分享所学技术领域优质开源项目。 若您喜欢此公众号,请记得星标哦,您将第一时间收到我们优质内容的更新!...最近我发现一个十分有用的开源项目,今天给大家推荐一下。...在向大家推荐一款yii2的cms后台框架,这个框架写的还是相当不错的,包含了用户中心,权限,同时还集成了api接口,方便对外做应用,下面是详细的介绍。.../ 接口V1 controllers 控制器 views 视图文件 Module.php 模块...3、运行 composer install,然后再在项目根目录运行 php init 进行项目初始化配置 4、导入数据库文件,数据库文件在yii2cms下的yii2_cms.sql,直接到如即可 5、

    89630

    那些优秀的网络爬虫工具介绍,最后亮了!| 码云周刊第 16 期

    语言 5、软件的复杂性: 命名的艺术 技术分享 1、SpringMVC 执行流程及源码解析 在SpringMVC中主要是围绕着DispatcherServlet来设计,可以把它当做指挥中心。...2、使用 Vue2 和 Yii2 进行前后端分离开发 本文介绍使用Vue2单页面程序作为前台,以Yii2搭建后台提供API,进行前后端分离开发的入门知识。本文适合Vue2,Yii2爱好者观看。...独家译文 4、五大理由从 Python 转到 Go 语言 Python 是非常强大的,特别是 Python3 有了异步功能,但是 GO 将完全取代它在大企业中的存在… 5、软件的复杂性: 命名的艺术...- Scheduler模块(任务队列) - Pipeline模块(结果输出) 主要Feature: - 基于Go语言的并发采集 - 页面下载、分析、持久化模块化,可自定义扩展...代理路由的方式防止抓取并发量过大的情况下被对方屏蔽; - nodejs none-block 异步环境下的抓取性能比较高; - 中央调度器负责网址的调度(同一时间片内一定数量的抓取任务中根据网站的权重来决定派发任务量

    2.3K100

    CVE-2020-15148 Yii2框架反序列化漏洞

    该漏洞只是php 反序列化的执行链,必须要配合unserialize函数才可以达到任意代码执行的危害。...二、漏洞影响 Yii2 <2.0.38 三、复现过程 目前该框架版本已经到2.0.42了,而复现该漏洞是因为最近的CTF比赛中已经出现了好几次该框架漏洞的改造题目了,所以我觉得有必要好好对该漏洞进行一个认真的审计复现...> 可以看到__destruct()调用了reset()方法 reset()方法中,$this->_dataReader是可控的,所以此处可以当做跳板,去执行其他类中的__call()方法。...__call() //当调用对象中不存在的方法时触发 然后找到一个Faker\Generator类 /vendor/fzaninotto/faker/src/Faker/Generator.php: 可以看到,此处的__call()方法调用了format(),且format()从this->getFormatter(this->formatter是我们可控的,所以我们这里可以调用任意类中的任意方法了

    4.4K20

    详解yii2实现分库分表的方案与思路

    前言 大家可以从任何一个gii生成model类开始代码上溯,会发现:yii2的model层基于ActiveRecord实现DAO访问数据库的能力。...而ActiveRecord的继承链可以继续上溯,最终会发现model其实是一个component,而component是yii2做IOC的重要组成部分,提供了behaviors,event的能力供继承者扩展...但是从”1库1表”的框架实现逻辑来看,model层默认取db配置作为mysql连接的话,是没有办法访问多个mysql实例的,所以必须解决这个问题。 一般产生这个需求,产品已经进入中期稳步发展阶段。...有2个思路解决M库问题,1种是yii2通过改造直连多个地址进行访问多库,1种是yii2仍旧只连1个地址,而这个地址部署了dbproxy,由dbproxy根据你访问的库名代理连接多个库。...如果此前没有熟练的运维过dbproxy,并且php集群规模没有大到单个mysql实例客户端连接数过多拒绝服务的境地,那么第1种方案就可以解决了。否则,应该选择第2种方案。

    1.8K30
    领券