区块链
区块链技术 标签描述

1.链上脚本(script) 实现某个功能的一段计算机指令 2.智能合约(smartcontract) 相当于一个类,里面有很多函数,每个函数实现不同的功能。 相当于脚本代码的升级版 3. 去中心化的APP(Dapp) 没有中心服务器,运行在去中心化、分布式节点上的APP。 ​Dapp=前端(web、app)+后端(智能合约)​ 以太坊社区把​基于智能合约的应用​称为去中心化的应用程序(DecentralizedApp,简称DApp)。 DApp的目标是(或者应该是)让智能合约​有一个友好的界面​,外加一些额外的东西,例如​IPFS​(可以存储和读取数据的去中心化网...

  DJsdk34H4Gbu   2023年11月13日   20   0   0 区块链技术区块链

  1.分类 区块链共识算法可以根据其容错类型、部署方式、一致性程度、选主策略等多个维度进行分类。   维度 该维度的所有分类 1 容错类型 拜占庭容错、非拜占庭容错 2 部署方式 公有链共识、联盟链共识和私有链共识 3 一致性程度 强一致性共识、弱(最终)一致性共识 4 选主策略 选举类共识、证明类共识、随机类共识、联盟类共识、混合类共识 2.区别 目前,区块链采用的共识机制主要基于工作量证明(PoW)、权益证明(PoS)、拜占庭协议(BA)等。各类共识机制在效率、安全性等方面有利有弊,目前区块链协议的效率,特别是高速处理海量数据的能力是...

  DJsdk34H4Gbu   2023年11月13日   9   0   0 区块链技术区块链

  一、分层   通过借鉴计算机网络通信体系架构的OSI模型,可将区块链逻辑架构划分为三层。 1.layer0 其中第0层(Layer0)对应OSI模型的1-4层(底层协议),包括传输层。   2.layer1 第1层和第2层对应OSI模型的5-7层(上层协议),第1层(Layer1)包括数据层、网络层、共识层和激励层.   3.layer2 第2层(Layer2)包括合约层和应用层。   二、作用 Layer1解决信任,Layer1的代币的存在是为了让这条底层公链能够抵抗51%攻击。 Layer2搞定性能,对于Layer2协议来说,唯...

  DJsdk34H4Gbu   2023年11月13日   10   0   0 区块链技术区块链

    一、 Dapp是什么 DAPP(分布式应用),区块链新物种,去中心化App。  二、Dapp的组成 一个完整的DAPP至少包含三部分: 第一部分,你制作好的网页必须部署到服务器上; 第二个你必须拥有一个完整的智能合约; 第三个就是你的网页和你的智能合约必须要有完善的交互的过程。  三、Dapp和智能合约的区别关系 DAPP包含智能合约。 智能合约相对来说是一个服务器的一个后台,智能合约是用来实现功能的,它是一串代码,用户使用起来非常的不方便。 如果想实现跟用户友好的交互,就需要做一个前台页面,前台页面通过IP接口和后台对接,比...

  DJsdk34H4Gbu   2023年11月13日   9   0   0 区块链技术区块链

Caliper前后端分离的设计原则使得只要后端的区块链系统开放了相关网络端口,Caliper便可以对该系统进行测试。 结合Docker提供的性能数据统计服务或本地的ps命令工具,Caliper能够在测试的同时收集节点所在机器上的各种性能数据,包括CPU、内存、网络及磁盘的使用等。 尽管Caliper能工作在不使用Docker模式而是使用原生二进制ficos-bcos可执行程序搭建出的链上,但是那样Caliper将无法获知节点所在机器上的资源消耗。 因此,在目前的Caliper版本下(v0.2.0),我们推荐使用Docker模式搭链。  Caliper压力测试指南(FiscoBc...

  DJsdk34H4Gbu   2023年11月13日   14   0   0 区块链技术区块链

一、必要的数据结构 1.基础数据类型 classString;//基础字符串数据结构 classBlob;//基础二进制数据,用来表示对象序列化之后的线性二进制数据 classCriticalSection;//临界区,多线程互斥对象 classBigInt;//区块链中很多地方的数值采用大整数来表示,例如余额,挖矿难度等。例如用一个32字节的无符号大整数,表示0到2^256-1的整数。   2.公钥和私钥 非对称加密函数,公私钥对可以在不联网的情况下,任意生成,并且全球唯一。 通常为32到64字节的无结构二进制数据。 typedef BYTEPublicKey[32];//公...

  DJsdk34H4Gbu   2023年11月13日   10   0   0 区块链技术区块链

 一、以太坊智能合约的运行原理 1.智能合约 智能合约是一种特殊协议,旨在提供、验证及执行合约。 具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。   在以太坊,记录在区块链账本里的不仅仅是账户余额,还有函数调用后变量的新状态。     2.开发步骤 step1: 启动以太坊节点 启动一个以太坊节点(如Geth)   step2:编写 使用智能合约编程语言(如Solidity)编写智能合约(后缀为.sol)。 可以将一个智能合约实例理解成一个对象,编写...

  DJsdk34H4Gbu   2023年11月13日   9   0   0 区块链技术区块链

  1.执行平台 Ethereumdevelopsitsownmachinelanguage(bytecode)andavirtualmachine(calledEVM)forexecutingthecode,whichisalsoadoptedbyParity,ThisenablesEthereumtokeeptrackof gas,thetaxonexecution. HyperLedgerdoesn’thavethisconcept,andsimplysupportsrunningDockerimages.     2.数据结构 The...

  DJsdk34H4Gbu   2023年11月13日   24   0   0 区块链技术区块链

&nbsp; 区块链之所以能连成一条链,是因为新区块中有指向上一个区块的指针,所以说区块链的数据结构是一个链表。 但是区块链的问题就在于它是一条线,假设一个区块生成的时间是固定的,那么这样一条线的结构就会造成性能瓶颈。 因为每隔这个固定时间,只允许有一个区块添加到链上。所以要提升区块链的性能,大概有两个思路,一个是缩短生成一个区块的时间,而对于采用了DAG技术的区块链项目,走的就是另外一个思路了,也就是改变数据的结构,让新数据的添加可以平行进行。 &nbsp; &nbsp; https://zhuanlan.zhihu.com/p/52424180 <!-本文包含:- <!-...

  DJsdk34H4Gbu   2023年11月13日   10   0   0 区块链技术区块链

&nbsp;一、&nbsp;请求是无状态的(我暂时认为的) 服务的有状态和无状态 对服务器程序来说,究竟是有状态服务,还是无状态服务,其判断依旧——两个来自相同发起者的请求在服务器端是否具备上下文关系。 状态化请求,服务器端一般都要保存请求的相关信息,每个请求可以默认地使用以前的请求信息。 无状态请求,服务器端所能够处理的过程必须全部来自于请求所携带的信息,以及其他服务器端自身所保存的、并且可以被所有请求所使用的公共信息。 (https://www.cnblogs.com/xiangkejin/p/9010516.html) &nbsp; &nbsp;二、&nbsp;数据是可以有状态的 ...

  DJsdk34H4Gbu   2023年11月13日   14   0   0 区块链技术区块链

&nbsp; 从上图可看出,PBFT共识流程中,节点之间需要相互广播共识消息包,且网络复杂度与节点数目的平方成正比,严重限制了PBFT的可扩展性。 具体节点数量还跟网络带宽有关,pbft的共识节点一般在百个以内。 节点无上限吧,只是参与共识的节点最多100,其它的节点可以作为同步节点只同步区块并不参与共识 &nbsp; fiscobcos提供的rpbft可以支持更多节点参与,随机分组bft, 在bcos的rpbft共识里,共识节点和同步节点可以相互转换,并不是一直不变的。 &nbsp; &nbsp; &nbsp; &nbsp; <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   15   0   0 区块链技术区块链

搭建单群组4节点联盟链 &nbsp; 1.搭建单群组FISCOBCOS联盟链 2.配置及使用控制台 3.部署及调用HelloWorld合约 &nbsp; https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/docs/tutorial/installation.html <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   15   0   0 区块链技术区块链

&nbsp; &nbsp; 区块链中数据主要分为三种 1.区块(block) 已共识的区块存储在磁盘中 &nbsp; 2.交易(transaction) 已确认的交易(confirmedTX)存储在区块中 未确认的交易(unconfirmedTX)存储在内存中 &nbsp; 3.世界状态(worldstate) 存储在内存中 &nbsp; &nbsp; &nbsp; &nbsp; <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   16   0   0 区块链技术区块链

一、架构 1.群组架构 根据业务场景和业务关系,企业可选择不同群组,形成多个不同账本的数据共享和共识。 &nbsp; 2.并行计算模型 改变了区块中按交易顺序串行执行的做法,基于DAG(有向无环图)并行执行交易,大幅提升性能 &nbsp; 3.分布式存储 支持企业(节点)将数据存储在远端分布式系统中,克服了本地化数据存储的诸多限制。 &nbsp; 4.&nbsp;预编译合约 预编译合约能够突破EVM的性能瓶颈,实现高性能合约; 基于C的Precompiled合约:区块链底层内置C语言编写的Precompiled合约,执行效率更高。 &nbsp; 5.控制台 控制台可以让用户快速掌握区块...

  DJsdk34H4Gbu   2023年11月13日   18   0   0 区块链技术区块链

一、编写合约 1.&nbsp;HelloWorld合约提供两个接口,分别是get()和set(),用于获取/设置合约变量name。 合约内容如下: pragmasolidity^0.4.24; contractHelloWorld{ stringname; functionHelloWorld(){ name="Hello,World!"; } functionget()constantreturns(string){ returnname; } functionset(stringn){ name=n; } } &nbsp; 2.合约存储位置 位于控制台目录下contracts...

  DJsdk34H4Gbu   2023年11月13日   10   0   0 区块链技术区块链

一、合约的创建和赋值: 1.合约 合约(Contract)是EVM用来执行(虚拟机)指令的结构体。 2.合约的结构 Contract的结构定义于:core/vm/contract.go中,在这些成员变量里, caller是转帐转出方地址(账户), self是转入方地址,不过它们的类型都用接口ContractRef来表示; Code是指令数组,其中每一个byte都对应于一个预定义的虚拟机指令; CodeHash是Code的RLP哈希值; Input是数据数组,是指令所操作的数据集合; Args是参数。 3.self变量 有意思的是self这个变量,为什么转入方地址要被命名成self呢?...

  DJsdk34H4Gbu   2023年11月13日   18   0   0 区块链技术区块链

一、结构 区块由两部分组成,分别是 区块头(header) 区块体(body) 1.结构图 2.区块头(header) 区块头存储了区块的元信息,用来对区块内容进行一些标识,校验,说明等。 ​通用字段​ ParentHash:父区块的哈希值。 Root:世界状态的哈希,stateDB的RLP编码后的哈希值。 TxHash(transactionroothash):交易字典树的根哈希,由本区块所有交易的交易哈希算出。 ReceptHash:收据树的哈希。 Time:区块产生出来的Unix时间戳。 Number:区块号。 Bloom:布隆过滤器,快速定位日志是否在这个区块中。 ...

  DJsdk34H4Gbu   2023年11月13日   12   0   0 区块链技术区块链

&nbsp;一、什么是女巫攻击 &nbsp; 一个人可以虚拟出多个虚假的身份,比如: 在互联网中,可以虚拟出多个IP,进而刷单、刷赞、爬虫 在区块链中,可以虚拟出多个节点,进而利用节点个数多的优势攻击正常节点 &nbsp; 二、怎么抵御女巫攻击 创造某种形式的稀缺性,以抵抗女巫攻击。 比如说在比特币中,产生区块不是依赖你有几个节点,而是依赖你具有多大的算力 &nbsp; &nbsp; <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   22   0   0 区块链技术区块链

&nbsp; 从图中可以看出 1.增加区块大小(blocksize)会增大TPS和分叉(Orphanrate) 2.减少区块生成的时间间隔(blockcreationinterval)会增大TPS和分叉(orphanrate) &nbsp; 分叉越多,区块浪费得越多 &nbsp; 所以, 需要配置一个合理区块大小和区块生成的时间间隔。 比如,比特币区块大小为1MB,10min出一个块,从而TPS为7tps&nbsp; &nbsp; &nbsp; &nbsp; <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   17   0   0 区块链技术区块链

一、传统中央网络 C/S(客户端/服务器)模式。 二、点对点网络 p2p是peertopeer。又称对等式网络, 无中心服务器 每个节点既是客户端,又是服务器 网络中的任何2个点都可以进行数据传输 &nbsp; &nbsp; https://zhuanlan.zhihu.com/p/100443201 <!-本文包含:- <!--

  DJsdk34H4Gbu   2023年11月13日   25   0   0 区块链技术区块链