区块链技术背后的运行逻辑
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
区块链技术可能是自互联网技术以来最伟大的发明。区块链可以在不需要有中央权威机构的情况下或不需要双方信任的情况下交换价值或财富。想像一下你和我要赌明天旧金山的天气,赌50美元。我赌明天出太阳,你赌明天会下雨。今天,我们会有三种方式来管理我们之间的赌约:
1、我们可以相信对方。无论下雨还是出太阳,输的一方都会给赢的一方50美元。如果我们是朋友,这种管理方式很好。不过,无论是朋友还是陌生人,总会有人赖账的。
2、我们可以将赌约写下来形成合同。签订合同,双方履行最后赌约就有了保障,然而,如果输掉的一方不愿意付钱的话,赢的一方还要花额外的费用来打官司等等,这可能要花很长时间。尤其是对于小额现金,这可能不是最好的交易管理方式。
3、我们可以找到一个中立的第三方机构。我们每个人给这个机构50美元,然后这个机构将所有的钱都给赢的一方。但是,也存在一种情况,就是这个机构可能会拿着我们的钱跑路。所以我们最后会选择前两者中的一个方案:信任或合同。
区块链技术能让我们写几行代码,在区块链上运行的一种程序,这样我们双方都缴纳50美元。这个程序将会保存100美元,然后通过不同的数据来源来自动核实明天的天气。无论出太阳或下雨,它都会自动将所有的资金转给赢家。每一方都能核实合同的执行情况。这种方法对于一个赌金为50美元的赌注来说可能成本太高了,不过想象一下如果是房屋交易或者买卖企业呢。
这篇文章的目的是解释区块链如何运作的,但是不涉及到区块链背后的技术细节问题,只是让你直观地了解区块链的逻辑和背后的运行机制。
区块链技术最知名也被讨论的最多的应用是比特币。这种数字货币能够用来交易,并且可以购买商品和服务,就像美元,欧元,人民币以及其他国家货币一样。让我们从比特币开始来了解区块链是如何运作的。
“比特币第一次让我们从一个互联网用户那里将一种数字财产转移到另一个互联网用户那里,而且整个交易过程非常安全可靠,每个人都知道这种交易会发生,而且没有人会挑战这种转让的合法性。这种突破是一种巨大的进步。”—马克安德森
那么,什么是比特币?
一个比特币是一个单位的比特币数字货币,就像一美元本身没有任何价值,美元有价值是因为我们愿意用美元购买商品和服务,这些商品和服务会给我们带来更多的美元,而且我们相信其他人也会这么做。
要跟踪我们每个人拥有的比特币数量,我们可以利用分类账技术,这是一种数据文件能够跟踪所有的比特币交易。
表1—比特币分类账数字文件
分类账文件并不是储存在中央机构的服务器上,不是银行,也不是数据中心。这些分类账文件分布在全世界各个地方,通过私人计算机网络,而且这些私人计算机都能储存数据执行计算功能。每个计算机代表着区块链网络中的一个“节点”,都有一份分类账文件。
如果David想把比特币发给Sandra,他可以向网络广播一条信息表明他要把个人账户里的比特币数量减少5个比特币,同时Sandra账户里的比特币数量会增加5个比特币。网络中的每个节点会都会收到该信息,并将按照交易信息,将交易结果记录在自己的分类账文件中。
表2 —交易请求信息
分类账由一组联网的计算机维护,而不是由银行之类的中央机构来维护,这有以下几点意义:
· 在银行系统里我们只知道我们自己的交易和账户情况,在区块链上每个人都能看到其他所有人的交易。
· 你可以完全信任你的银行,比特币网络是分布式的,如果哪里出了错,没有服务台可以打电话去咨询或也不能控告别人。
· 区块链的设计模式使得这中间根本不需要信任,而是通过特殊的数学函数和编程来保证安全和可靠。
“我们可以将区块链定义为一个系统,这个系统允许一组相互联网的计算机保持分类账的信息更新和安全。”
要在区块链上执行交易,你需要有一个钱包,一种程序可以让你储存和交易你的比特币。既然只有你能够支出自己账户里的比特币,每个钱包都受到加密方法的保护,这种加密方法使用一对不同但相互连接的键:私有键和公共键。
如果一条信息是使用特定的公共键加密的,只有和这种公共键配对的私有键的所有者才能解密并读取信息。换句话说,如果你使用你的私有键对信息进行加密,只有配对的公共键才能对该信息进行解密。当David要发送比特币时,他需要用其钱包中的私有键对广播的信息进行加密,所有只有他才能支出其个人账户里的比特币,因为David是唯一知道其私有键的人,而这个私有键则是打开其个人钱包的关键。网络中的每个节点都能交叉验证该交易要求来自David,这是利用其个人钱包中的公共键来对交易请求进行解密做到的。
当使用个人钱包的私有键对交易请求进行加密时,你就会生成一个数字签名,区块链网络中的计算机会利用该数字签名来双重核实其来源和交易的真实性。数字签名是一串文本,这一串文本是交易请求和私有键结合的结果,所以不能用作其他交易。如果你改动交易请求信息中的一个字母,那么数字签名就会变动,所以潜在的攻击者无法改动你的交易请求或者改变你发送的比特币数量。
表3—数字签名交易加密
钱包的公共键将会被送到比特币网络中的某个地方,所以当你要把比特币发送给某个人的时候,你实际上是把公共键发送给对方。要把比特币发送出去,你要证明你拥有钱包的私有键,因为你需要用私有键来加密交易请求信息。请注意只有在信息被加密之后信息才被广播出去,你永远不要公开你的私有键。
区块链上的每个节点都会有一个分类账的副本。所以,一个节点怎么会知道你账户的余额呢?区块链系统根本不会跟踪账户余额(表1),它只记录请求的每笔交易。分类账实际上并不跟踪余额变化,它只跟踪比特币网络中广播的每笔交易(表4)。要知道你钱包中的余额,你需要分析并确认网络中所有和你的钱包有关联的所有已发生的交易。
表4—区块链分类账
这种“余额”的确认正是由于和之前交易的相关联才会得到验证。要发送10个比特币给约翰,玛丽必须生成一个交易请求,其中包括了此前交易信息的链接,此前所有的交易总额要等于或超过10个比特币。这些链接被称为输入,网络中的节点会验证所有的交易的总额等于或超过10个比特币,而且这些输入还没有被支出出去。实际上,每次你在交易中提到输入,而且这些输入被认为在未来的交易中无效时,所有这一切都自动在玛丽的钱包中得到执行,而且被比特币网络中的节点进行再次核实,她只要用约翰的公共键发送10个比特币交易到约翰的钱包就可以了。
表5—区块链交易请求结构
所以,系统如何信任输入交易,并认为这些输入是有效的?系统会检查之前所有的交易,这些交易是和你发送比特币的钱包相关联的。为了简化验证过程,提高验证速度,网络节点会保存未支出的交易记录。正是由于这种安全审核机制,收到的比特币不会被两次支出出去。
“拥有比特币意味着在分类账中会有指向你钱包地址的交易,而且这些比特币还没有被支出出去。”
在比特币网络中所有用来执行交易的编码都是开源的,这意味着任何有电脑,能上网的个人都能操作交易。然而,如果向比特币广播的交易请求信息中有一处编码错误,相关的比特币就会永久丢失。记住因为网络是分布式的,没有客户支持可以让你打电话,也没有人能够帮你重新恢复消失的交易 或者你忘记的钱包密码。正是基于此,如果你有兴趣在比特币网络上进行交易,建议使用开源或官方版本的比特币钱包软件(比如Bitcoin Core),并且将钱包密码或私有键保存在安全的数据库中。
好吧,那这样真的安全么?为什么被称为区块链?
任何人可以通过匿名连接接入比特币网络,可以提交或接收标有其公共键的交易。然而,如果有人重复使用同样的公共键,就会将所有的交易连到同一个所有人那里。比特币网络允许你生成很多钱包,只要你愿意,每一个钱包都有自己的私有键和公共键。这允许你在不同的钱包里接受支付,而且不会相互连接在一起。不可能有人知道你拥有过所有这些钱包的私有键,除非你将所有接收到的比特币发到一个钱包里。
比特币的地址可能会有2的160次方或者1461501637330902918203684832716283019655932542976个。这样一个大的数量可以防止可能的网络攻击。
有了这种设置,还是有安全漏洞,在比特币被支出去之后,还是有漏洞被利用来召回这些比特币。交易是从网络中的一个节点传到另一个节点中去的,所以2个交易达到每个节点的顺序可能会不一样。攻击者就可能发送一个交易,等到对方发出产品,然后发出一个反向交易指令到自己的账户里。在这种情况下,有些节点可能在第一个信息之前接收到了第二个交易信息,所以就认为第一个交易信息无效。那你怎么知道请求的交易中哪个是第一个呢?按照时间戳先后来对交易排序并不安全,因为很容易被伪造。所以,没有办法说清楚一个交易是否发生在另一个之前,这就存在被攻击或发生欺诈的可能性。
如果上述情况发生,那么网络节点中关于每个交易发生的顺序会产生不一致。所以区块链系统被设计成使用节点协议来对交易排序,并且防止上述可能的欺诈情况发生。
比特币网络将交易信息聚集起来形成块,每个块都包含了一定数量的交易,并有连接和此前的块联系。这就将一个块和另一个块按照时间连起来。这样所有的块就按照时间链组织起来(表6),这就形成了完整的系统:区块链。
表6—区块链序列结构
在同一个块内的交易被认为是同时发生的,而且不在同一个块内的交易被认为是未经确认。每个节点可以将交易组织起来形成块,并且向网络进行广播下一个块应该是什么样的。因为任何节点都能形成一个新的块,系统怎么会一致同意下一个块是哪一个呢?
要加入区块链,每个块必须拥有能够解答复杂数学问题的答案,这些数学问题是用加密哈希函数生成的。解决数学问题的唯一方法就是猜随机数,该随机数包含有前一个块的内容,生成一个确定的结果(通常是小于某个值的数字)。一个普通的计算机大概需要一年时间才能猜对准确的数字,才能解决数学问题。然而由于网络中猜数字的计算机数量很多,一个块平均10分钟就能解决数学问题。解决了数学问题的节点就获得了在区块链上配置下一个块的权利,并且将其权利在整个网络中广而告之。
如果两个节点同时解决了数学问题,并且同时生成新的块怎么办?在这种情况下,两个块都会被广播到网络中去,每个节点都会建立在第一个接受到广播的块上,但是区块链系统要求在最长的区块链上建立节点。所以如果还不清楚哪个块是后接收到广播的块,每个节点将会采用最长的链作为唯一的选择。
表7—区块链末端的选择逻辑
由于同时解决数学问题的可能性比较低,多个块同时解决了数学问题也是不太可能的,所以整个区块链会非常稳定地形成一系列的块,每个节点都没有反对意见。
对于哪一个块是链的尾部所导致的意见不一致,就会产生欺诈风险。如果交易发生在属于较短的尾部上的块(表7中的块B),一旦下一个块解决了数学问题,这样的交易就会回到未被确认的状态。
让我们看一下玛丽如何利用链末端的模糊性来执行重复支付攻击。玛丽将资金发送给约翰,约翰然后将产品装运送给玛丽,现在既然节点已经将较长的尾部作为经确认的交易,如果玛丽能够生成一个较长的尾部,而这个尾部又包含一个反向交易,且拥有同样的输入参照,约翰就会损失钱财和商品。
表8—玛丽实施的重复支付攻击行为简图
那么系统如何防止这种欺诈行为呢?每个块都包括了对前一个块的参考(表6),要将下一个块延伸到网络中必须要解决节点上的数学问题,而对前一个块的参考则是上述数学问题的部分内容。所以由于要解决块中的数学问题并将其增加到区块链中需要猜测随机数,而由于随机数猜中的难度很大,要提前计算一系列块是非常难的。玛丽在和网络中的所有其他计算机进行竞争来解决数学问题,只有解决了这个数学问题她才能将下一个块增加到区块链中。而且即使她在所有其他计算机之前解决了数学问题,她也不太可能连续解决2个,3个或更多个块的数学问题,因为每次她都是在和整个网络竞争。所以,玛丽能使用一台运算速度超级快的计算机来生成随机数和整个网络竞争吗?这是可以的,但是即便是有一台非常非常快的计算机,由于网络中的成员数量很多,玛丽也不太可能在实施重复支出攻击所需要的时间内连续解决若干块的数学问题。
她需要控制整个网络中50%的计算能力才有50%的机会在其他节点之前解决一个块的数学问题,而且即便是在这种情况下,她也只有25%的机会连续解决两个块的数学问题。要连续解决若干块的数学问题,那玛丽成功的可能性就越低。
“比特币区块链系统中的交易受到解决数学难题竞争的保护:任何攻击者都在和整个网络竞争。”
所以,交易会越来越安全。在过去被确认的交易会比最近一个被确认的交易更安全。因为每隔10分钟,一个块就会加到链中,从交易进入块中之后的1个小时内,交易被处理的可能性就越高,交易就越不可能被逆转。
表9—区块链交易安全性
为了能够发送比特币,你需要提到给你的钱包发送比特币的交易,这适用于网络中所有发生的交易。那么,比特币一开始是从哪里来的?
由于软件错误或钱包密码丢失会导致比特币数量减少,为了平衡比特币的这种特点,解决了每个块中的数学问题的人会得到奖励。要获得这种比特币奖励,这些人就要运行比特币区块链软件,这种活动被称为“挖矿”。
这种奖励是推动个人运作节点的主要激励方式,这样也提供必要的计算能力来处理比特币交易,并且稳定整个区块链网络。
普通的计算机要解决一个块中的数学问题要花很长时间(大约平均1年),节点形成一个组织,要解决下一个块的数学问题所花费的时间就由该组织中的计算机平均承担。这样,整个组织猜中正确的数字所需要的时间就更短,就更容易获得奖励。这样的组织就被称为采矿池。
有些采矿池的规模是非常大的,其计算能力能占整个网络的20%以上。这对于网络安全性有非常重要的意义,这就和玛丽的重复支付攻击案例中的道理是一样的。即便是这些采矿池中的一个能够获得整个网络计算能力的50%,一个块在链中的位置越靠后,那么块中的交易就会越安全。
有些拥有很强的计算能力的采矿池决定限制成员的数量,这样可以保护整个网络的安全性。
由于技术进步和节点数量增加,整个网络的计算能力可能随着时间而增加,区块链系统会重新调整数学问题的难度,以保证每隔10分钟就能增加一个块。这就保证了网络的稳定性和安全性。
而且,每四年,块奖励会减半,所以挖比特币(运行网络)收益会越来越少。为了防止节点停止运转,每笔交易会附有一笔小额的奖励,这些奖励由成功实施交易,并成功解决数学问题的节点收集。由于这种机制的存在,较高奖励的交易通常要比奖励少得交易处理速度要快。这意味着当发出一笔交易时,你可以决定是否让这笔交易处理得更快(更贵)或更便宜(时间更长)。和银行的收费相比,比特币网络中的交易费现在是很少的,并且没有和交易金额挂钩。
表10—比特币交易
现在,你对区块链如何运作有了初步的认识,让我们看看为什么区块链这么引人注目。
使用区块链技术有很多明显的好处:
· 你可以完全掌控你所拥有的价值或财富,没有第三方会为你保存财富或价值,或者没有第三方机构能限制你使用你的财富或价值。
· 在地球上转移价值的成本非常低。
· 价值转移可以在数分钟内实现。
· 由于任何人在任意试点都能证明区块链上的每笔交易,这就有了完全的透明性。
· 利用区块链技术就可以开发去中心化的应用,来快速和安全地管理信息和转移价值。
然而,也存在一些挑战:
· 交易能够被匿名发送和接收。一方面这保护了用户的隐私,但是一方面机构无法跟踪用户的身份。
· 即便是出现了很多新的交易平台,用比特币来交易商品和服务还存在很多困难。但是,这种方式正逐渐受到认可。
· 比特币,就像很多其他加密货币,波动非常大:市场上的比特币数量并不多,而且需求变化也很快。比特币的价格很容易受到重大事件或者加密货币行业发展变化的影响。
· 区块链技术仍处于发展初期。每天都会有新的工具出现来提高区块链的安全性和稳定性,但是也会带来其他一些问题。
总之,区块链技术拥有颠覆很多产业的潜力,从广告到能源分布等。其主要的优势在于不需要信任,而且去中心化。很多区块链技术的应用场景逐渐出现(比如,成立完全去中心化的自治组织或DAO的可能性)。
相关文章:

scp遇到路径中有空格
sudo scp root1.1.1.1:/test/soft/123/Microsoft SQL Server 2000.iso . 错误! sudo scp root1.1.1.1:"/test/soft/123/Microsoft SQL Server 2000.iso" . 错误! sudo scp root1.1.1.1:/test/soft/123/Microsoft\ SQL\ Server\ 2000.…

bzoj 3262 陌上花开
本质是一个三维偏序,一位排序后cdq分治,一维在子函数里排序,一维用树状数组维护。 把三维相等的合并到一个里面。 1 #include<iostream>2 #include<cstdio>3 #include<algorithm>4 #include<cstring>5 #define N 100…

jspstudy启动mysql失败_MySql启动数据库设置初始密码
这一小节介绍在Mac OS、Linux、Windows上启动关闭重启MySQL服务,以及部分图形化界面对服务的操控。安装完成后,可以使用 service 命令启动 mysql 服务,在Mac上service命令不存在。命令行启动关闭重启MySQL服务在命令行终端启动 MySQL 非常方便…

区块链技术产生数字货币时代
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 比特币是一种革命性的数字货币,更是一种颠覆性的创新技术。比特币最大的贡献是创造了信用,解决了困扰互联网进一步发展的拜…

软件构造 第二章 第一节 软件生命周期和版本控制
软件构造第二章 第一节 软件生命周期和版本控制 基本内容 Software Development Lifecycle (SDLC) Traditional software process models (waterfall, incremental, V- model, prototyping, spiral) Agile development and eXtreme Programming (XP) Collaborative software de…

三极管在ad中的原理图库_555时基电路内部结构及其工作原理
555时基电路特点时基电路是一种常用的模数混合型集成电路。由它组成的振荡器、单稳态触发器、双稳态触发器和各类电子开关等都被十分广泛地应用在各类电路之中。它具有定时精度高、响应速度快、温漂小、输出驱动电流大、结构简单等优点。555时基电路型号命名555时基芯片由其内部…
Mac下导出chrome插件
Mac下导出chrome插件 chrome最强大的功能之一就是插件,有时候需要给小伙伴们共享一些插件,所以需要将自己chrome中的插件打包,在mac下打包插件还是挺费劲的,在此记录。 打开chrome的扩展程序,找到要导出的插件…

区块链技术的本质是分布式数据库
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链技术是基于比特币应用提出的一个概念,他是一个融合了多种技术的一个集成式创新。目前区块链的应用早已不仅仅局限在比特币上。人…

sql数据库系统表和mysql系统表
sql数据库系统表,常用的(sysobjects,sysindexes,sysindexkeys,SYSCOLUMNS,SYSTYPES 及更多解释说明): https://docs.microsoft.com/zh-tw/previous-versions/sql/sql-server-2012/ms177596(v%3dsql.110) 系统存储过程sp_spaceused: 执行sp_spaceused存储过程的时候可以不用带参…

交换机启用光口命令_如何在思科交换机上查询光模块状态?
本篇文章易天光通信(ETU-LINK)将为大家介绍下怎么在思科交换机上查询光模块的信息。 第一步,我们需要连接网络,然后登陆思科交换机的管理平台,用户名和密码默认是cisco/cisco。 第二步,在交换机的特权EXEC模式,通过输入以下使用显示光纤端口光纤收发器命令:show光纤端口…

深入浅出谈以太坊智能合约
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 1什么是合约? 合约是代码(它的功能)和数据(它的状态)的集合,存在于以太坊区块链的特定…

人机猜拳(这是最近的一个总结)
人机猜拳是我自己原创的一段代码,我刚学完do-while,知识有限,但自己感觉写的这段代码是我的一个小巅峰,发出来让大家看看,新手能学到东西的话是极好的,然后更多的是想让一些老鸟给点建议。这个写代码很枯燥…

利用python3 调用zabbix接口完成批量加聚合图形(screens)
在上一篇博客中,我们完成的利用python3 调用zabbix接口批量增加主机,增加主机的item,增加主机的图形! 接下来我们完成批量增加主机的screen 首先我们要增加screen需要哪些参数呢?官方的解释如下: {"jsonrpc"…

轮播切换_javascript基础(一)——轮播图
javascript基础(一)——轮播图1、轮播图的实现原理轮播图的js实现原理其实十分的简单,首先将图片放入一个ul标签中,ul标签的大小要足够将所有图片放入其中。然后再将ul标签放进div中,这个div的大小正好可以显示一整张图片,将其他图…

以太坊挖矿源码:clique算法
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 clique 以太坊的官方共识算法是ethash算法,这在前文已经有了详细的分析: 它是基于POW的共识机制的,矿工需要通…

JS中简单原型的使用
转载于:https://www.cnblogs.com/hwgok/p/6163335.html

vuex+vue-router拦截
干就完了 项目中经常遇到这样一个场景,用户信息或者进行增删改的一些模块,需要根据用户是否登录,进行路由拦截,直接上代码 在store文件夹下的store.js中存放一个默认登录状态 /** store.js* */ import Vue from vue import Vuex …

通关制单机器人_2020关务节|“数字供应链与智能通关”论坛——如何打造云上跨境贸易生态圈...
点击标题下「蓝色微信名」可快速关注 随着跨境贸易的飞速发展,其涉及的有商流、信息流、资金流与物流。其中,物流特别是跨境物流,又是其中较为重要的一个环节。如何解决跨境贸易的物流物流困难?让我们来听听,欧坚集团副…

区块链技术世界
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 2017年发展最火热的技术,我觉得一个人工智能AI,另一个当之无愧的是一个叫区块链东西。最典型的例子是,人类顶…

Python学习心得第一周-03练习2
#5. 求1-23-45 ... 99的所有数的和 res0 count1 while count <100:if count%2 0:res-countelse:rescountcount1 print(res) #6. 用户登陆(三次机会重试) count0 while count<3:nameinput(name:)passwordinput(password:)if nameztc and passwords…

与MySQL传统复制相比,GTID有哪些独特的复制姿势?
与MySQL传统复制相比,GTID有哪些独特的复制姿势? http://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg 陈华军,苏宁云商IT总部资深技术经理,从事数据库服务相关的开发和维护工作,之前曾长期从事富士通关系数据库的开发,…

方法的运用_企业如何运用论坛做营销,千享科技分享技巧方法
随着互联网的普及,对企业的发展带来了很大的影响,传统的营销已经满足不了企业的发展,需要运用互联网来营销,企业也意识到了互联网营销的重要性,而做互联网营销可以分成几种形式进行,像百度知识营销、论坛营…

区块链开发入门
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链这么火,可是你很快就会发现,想要入门区块链开发,尤其是想要从零开始学习区块链编程,根本都找…

linux怎么创建牡蛎_文件amp;目录小技巧 | Linux后门系列
0x01 Linux 目录技巧我们都知道 Windows 下文件和文件夹命名是有很多规则和限制的,但是可以通过一些程序来绕过限制,今天我们来看看 Linux 有哪些有趣的规则 参考 https://www.pathname.com/fhs/pub/fhs-2.3.pdf当然了,我这种人怎么可能按照官…

php简单算法之冒泡排序
<?php $arr [2,4,1,5,3,11,6,999,88,666,66,44,22,33,776];function getNewArr($arr){$count count($arr);//该层循环控制 需要冒泡的轮数for($i1;$i<$count;$i){//该层循环用来控制每轮 冒出一个数 需要比较的次数for($k0;$k<$count-$i;$k){if($arr[$k]>$arr[…

iOS单个应用程序的最大可用内存是多少?
iOS单个应用程序的最大可用内存是多少? StackOverflow上有人做了一些简单的测试,有限设备下迄今为止测到的结果: iPad1: 127MB/256MB/49% (大致crash临界值 / 总内存 / 占比)iPad2: 275MB/512MB/53%iPad3: 645MB/1024MB/62%iPad4: 585MB/102…

sql 存储过程和函数
最近在学习数据库,上课过程中总是在许多知识点有或多或少的问题,对于这些问题的产生,大概是由于我听课习惯所造成的吧,好啦,废话不多说,开始今天到主题吧。 首先介绍SQL的存储过程,先来给它定义…

怎樣制作线段动画_PPT动画还能这么做?我擦!动画源文件免费送你
擦除动画,可以说是基础得不能再基础PPT动画之一了,我们几乎可以在任何带有PPT动画效果的演示中找到它的踪影。简单的直线擦除效果可能大部分都会,那么把直线换成曲线呢?小小的变动都会让你措手不及。所以,你确定自己真…

Linux最大打开文件描述符数
1. 系统最大打开文件描述符数:/proc/sys/fs/file-max a. 查看 $ cat /proc/sys/fs/file-max 186405 2. 设置 a. 临时性 # echo 1000000 > /proc/sys/fs/file-max 2. 永久性:在/etc/sysctl.conf中设置 fs.file-max 1000000 2. 进程最大…

XMT.com超200万被区块链终端交易
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构, 并以密码学方式保证的不可篡改和…