区块链 matlab,matlab可以实现区块链吗?

用MATLAB实现区块链:把区块对象连成链

现在可以把区块连成区块链了,我们用一个新的类叫做BlockChain来模拟它。 首先规定该链中的第一个block可以直接产生,就是genesis

block,这就是上面Block的construtor中,输入参数个数等于2是返回的对象.

classdef BlockChain < handle

properties

totalCount % 用来记录区块的个数

blockArray % 对象数组 用来盛放区块链

end

methods

function obj = BlockChain()

obj.blockArray =[ Block(0,'Genesis Block')]; % 构造blockchain对象时产生第一个 genesis

block

obj.totalCount = 1 ;

obj.calculateGensisBlockHash(); % 计算genesis block的hash

end

function bc = getLatest(obj)

bc = obj.blockArray(end);

end

function calculateGensisBlockHash(obj)

gb = obj.blockArray(1);

Opt.Method = 'SHA-256';

Opt.Input = 'ascii';

str = strcat(num2str(gb.index),gb.data) % 计算方法是把所有的内容做strcat

gb.selfHash = DataHash( str , Opt); % 然后hash

end

function addBlock(obj,newBlock) % 当miner成功的'挖出'一个符合要求的block之后

if obj.validateNewBlock(newBlock) % 调用该函数

obj.blockArray(end+1) = newBlock; % 把这个block加到blockchain上去

end

end

function tf = validateNewBlock(obj,newBlock) % 验证新添加的block是否符合要求

newHash = DataHash( strcat( newBlock.getCombined(), num2str(newBlock.nonce)

));

if(strcmp(newHash(1:2),'00') &&

strcmp(newBlock.selfHash,newHash))

tf= true;

else

tf = false;

end

end

end

end

在live editor中演示实例化这个BlockChain类,在它的constructor中,产生第一个genesis

block并且计算它的hash值

所谓的”链”,就是前一个block的selfHash的数据,保存在下一个block的previousHash属性中.

这就是说,区块2中包含着区块0的信息,区块3中包含着区块2的信息,从而区块3也包含着区块0的信息

+----------------------------+ +-------------------------+

+----------------------+

| genesis block | | block 1 | | block 2 |

+----------------------------+ +-------------------------+

+----------------------+

| index = 0 | | index = 1 | | index = 2 |

| previousHash ='' | +-----+ previousHash='075c277..'| +--+

previousHash='00abcd'| +-- ....

| selfHash = '075c27741a35068+---+ | selfHash ='00abcd...' +---+ | selfHash

= '00efgh..'+--+

| 46368fa6e5b3477f85b31cee..'| | | | |

+----------------------------+ +-------------------------+

+-----------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/489615.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

qt 通过类实现画图_QT案例IDE编写 通过枚举实现编码切换

低谷期一定要默默的熬过去&#xff0c;别去打扰任何人&#xff0c;否则留下的只是别人的笑柄&#xff0c;不论幸或不幸&#xff0c;你的挣扎无人能见&#xff0c;无人能懂。。。---- 网易云热评一、定义一个枚举enum MyCode{ utf_8,gbk};二、定义一个枚举变量&#xff0c;默…

美国在人工智能领域亟待解决的5大难题

来源&#xff1a;战略前沿技术据C4ISRNET网站报道&#xff0c;根据2018年《国防授权法案》&#xff0c;美国国会组建了由多名技术专家组成的人工智能国家安全委员会&#xff0c;以指导美国人工智能技术的发展。该委员会由谷歌母公司Alphabet前负责人埃里克施密特&#xff08;Er…

查看ie保存的表单_小学信息技术gt;搜索保存网页教师资格证面试模板

中小学教师资格证考试面试真题备考纸&#xff1a;小学信息技术《搜索保存网页》微博中小学教师资格证考试小学信息技术《搜索保存网页》一、考题回顾试讲题目1.题目&#xff1a;搜索保存网页2.内容&#xff1a;搜索引擎是一个对因特网上的信息资源进行搜集整理&#xff0c;为人…

一线专家谈2020年人工智能落地趋势

来源&#xff1a;海豚大数据及人工智能实验室转眼间&#xff0c;2019年只剩下不到两个月了。人工智能的热度依旧&#xff0c;只是在资本市场&#xff0c;看空的投资人也越来越多了。从当年大数据的发展趋势看&#xff0c;这种情况反而对产业发展是有利的。因为这意味着&#xf…

C# DataSet转JSON

经常会遇到系统数据交互采用JSON数据格式进行交互的&#xff0c;避免不必要的重复工作&#xff0c;记录下自己的处理方式。 获取数据集之后&#xff0c;通过函数对数据集信息进行整理通过.Net Framework3.5提出的JavaScriptSerializer类进行DataSet数据的序列化&#xff0c; 需…

zset中的score_Redis 在项目中合理使用经验总结

背景Redis 是一个开源的内存数据结构存储系统。可以作为数据库、缓存和消息中间件使用。支持多种类型的数据结构。Redis 内置了 复制&#xff08;replication&#xff09;&#xff0c;LUA脚本&#xff08;Lua scripting&#xff09;&#xff0c; LRU驱动事件&#xff08;LRU ev…

八种颠覆未来作战的前沿技术

来源&#xff1a;军事高科技在线目录一、颠覆未来作战的前沿技术系列——脑科学二、颠覆未来作战的前沿技术系列——人体增强三、颠覆未来作战的前沿技术系列——石墨烯四、颠覆未来作战的前沿技术系列——超材料五、颠覆未来作战的前沿技术系列——太赫兹技术六、颠覆未来作战…

Linux下查看/管理当前登录用户及用户操作历史记录

转载自&#xff1a; http://www.cnblogs.com/gaojun/archive/2013/10/24/3385885.html 一、查看及管理当前登录用户 1、使用w命令查看登录用户正在使用的进程信息&#xff0c;w命令用于显示已经登录系统的用户的名称&#xff0c;以及他们正在做的事。该命令所使用的信息来源于/…

python狗图像识别_TensorFlow卷积神经网络之使用训练好的模型识别猫狗图片

本文是Python通过TensorFlow卷积神经网络实现猫狗识别的姊妹篇&#xff0c;是加载上一篇训练好的模型&#xff0c;进行猫狗识别本文逻辑&#xff1a;我从网上下载了十几张猫和狗的图片&#xff0c;用于检验我们训练好的模型。处理我们下载的图片加载模型将图片输入模型进行检验…

Java对象垃圾回收调用,JVM垃圾回收之哪些对象可以被回收

1.背景Java语言相比于C和C&#xff0c;一个最大的特点就是不需要程序员自己手动去申请和释放内存&#xff0c;这一切交由JVM来完成。在Java中&#xff0c;运行时的数据区域分为程序计数器、Java虚拟机栈、本地方法栈、方法区和堆。其中&#xff0c;程序计数器、虚拟机栈和本地方…

hp

命令组成hpacucli [parametervalue] 查看&#xff1a; 查看所有控制器状态 hpacucli ctrl all show 查看slot 0阵列信息详细状态 &#xff08;可以查看物理磁盘和逻辑磁盘的对应关系&#xff09;1&#xff09;hpacucli ctrl slot0 show config detail2&#xff09;hpacucli ct…

报告|机器人行业深度报告:机器人产业价值与回报相关度分析

来源&#xff1a;机器人大讲堂2009&#xff5e;2018年中国工业机器人保有量在全球保有量的占比稳步提升。据IFR数据&#xff0c;截止2018年底&#xff0c;中国工业机器人保有量达到64.94万台&#xff0c;全球占比为26.97%。2013&#xff5e;2018年间中国新增工业机器人中国产品…

python 笔记本_Python笔记本

Python 的主提示符( >>> )和次提示符( ... )。主提示符是解释器告诉你它在等你输入下一个语句,次提示符告诉你解释器正在等待你输入当前语句的其它部分。下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串In […

百度面试 php后端,2019.7最惨的三次面试经历-----百度PHP实习生面经

一、百度--文娱架构部一面 半小时 前台小姐姐很漂亮都是根据简历上写的来问的&#xff0c;说几个知道的排序算法&#xff0c;讲讲堆排序&#xff0c;堆是什么结构&#xff0c;我说堆类似于完全二叉树&#xff0c;讲讲完全二叉树和满二叉树的区别&#xff0c;手撕快速排序&#…

netty客户端源码

随笔记录。 //创建一个ChannelFactory&#xff08;客户端代码&#xff09; ChannelFactory factory new NioClientSocketChannelFactory( Executors.newCachedThreadPool(), Executors.newCachedThreadPool()); // NioClientSocketChannelFactory构造方法 public NioClientSoc…

汉字的ascii码值范围_ASCII代码

同学们&#xff0c;我们都知道计算机只能接受二进制信息&#xff0c;很显然直接给出英文的ABCD计算机并不认识&#xff0c;那为何敲击键盘屏幕就可以显示出对应的字符呢&#xff1f;为了解决这个问题&#xff0c;计算机采用一套编码&#xff0c;每个编码都是唯一的&#xff0c;…

从ICLR提交论文看机器学习的趋势和风口

大数据文摘出品来源&#xff1a;deepsense2013年才举办第一届的ICLR&#xff08;The International Conference on Learning Representations&#xff09;发展迅猛&#xff0c;如今已成为是最重要的国际机器学习会议之一&#xff0c;甚至可以和ICML&#xff0c;NeurIPS和CVPR这…

php 登录安全认证,介绍几种常用的web安全认证方式

本文为大家介绍了五种常用的web安全认证方式&#xff0c;具有一定的参考价值&#xff0c;希望能对大家有所帮助。1、Http Basic Auth这是一种最古老的安全认证方式&#xff0c;这种方式就是简单的访问API的时候&#xff0c;带上访问的username和password&#xff0c;由于信息会…

日期选择控件-laydate

laydate控件非常简单易用&#xff0c;只需要调用一个个函数就可以轻松实现日期时间选择。 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%><%String path request.getContextPath();String basePath request.getS…

python decorator. decorator_Python中decorator使用实例

在我以前介绍 Python 2.4 特性的Blog中已经介绍过了decorator了&#xff0c;不过&#xff0c;那时是照猫画虎&#xff0c;现在再仔细描述一下它的使用。关于decorator的详细介绍在 Python 2.4中的Whats new中已经有介绍&#xff0c;大家可以看一下。如何调用decorator基本上调用…