当前位置: 主页 > 皇冠官方网 > 工程案例 » 如何使用Python为区块链编写智能合约:皇冠官方网
皇冠官方网
本文摘要:在2019年,智能合约毫无疑问是计算机编程中的新范式改变。
在2019年,智能合约毫无疑问是计算机编程中的新范式改变。本指南目的沦为创立在分散式区块链中部署和运营的计算机程序的入门途径。一段历史…早在1950年代,在计算出来的早期,如果您想要撰写一段代码来继续执行一个非常简单的议和运算(考虑到Motorola 6502 8位CPU),您将最后 像这样:18 A9 01 69 02 85 31 F6上面的十六进制数字回应CPU可以解读以继续执行操作者的机器语言。
CPU有一个“指令集”,这意味著每个数字都是一个造成处理器继续执行操作者的命令:特,减半,除,乘,读取,存储,函数调用等。程序员必须忘记操作者代码,从而忘记哪个数字相等于哪个命令。效率不低。
迅速,很显著,必须一种更加人性化的方法。这是创立高级语言的运动的开始,高级语言看上去更加像口头语言。因此,首先经常出现了被称作助记符的东西:CLCLDA #$01ADC #$02STA $31F6对于每个计算机操作代码,现在都有一个涉及的单词或符号有助解读。
因此,CLC(清理进制)相等18、LDA(阻抗累加器)为A9、ADC(加到位)为69、STA(存储累加器)为85。这种编程方法被称作汇编语言,它是修改编程的第一步,使程序员挣脱了繁复的任务,例如忘记数字代码。上面的程序清理进制,将值01读取到累加器中,将02添加累加器中,然后将结果数存储在存储器地址31F6中。现在以一种更容易解读的方式可供人类解读。
随着时间的推移,新的工具被建构出来以提升编程效率,因此研发环境再次发生了相当大的变化。高级语言一词经常出现了。
这意味著编程语言的等级越高,它与人的口头语言就越相近。某种程度底层语言是更加相似计算机指令集本身的语言。与计算机语言的这种发展同时,在此过程中再次发生了一些范式切换。
首先将计算机程序必要流经到内存地址中,然后必须告诉计算机程序将开始继续执行的方位。这是完整的机器语言计算机代码,就像本文结尾表明的那样。随着助记符的经常出现,我们创立了所谓的汇编器-一款负责管理解码人类可读书助记符,将其切换为机器语言代码,将其流经准确的内存地址并告诉他CPU启动的软件。
尽管这对撰写和调试软件有相当大协助,但它依然适得其反。我们必须一种更加非常简单的编程方法。“ BASIC”语言初学者的标准化符号指令代码(BASIC)是发明者于1964年的第一款高级,人性化的计算机语言,其目标是更容易用于。
少见的BASIC程序如下右图:10 A = 120 B = 230 SUM = A + B40 PRINT(SUM)RUN在BASIC语言中,由序号(10,20,30,…)标识的每一行都存储一个命令。这些命令将依序运营,一次运营一次,然后下一次运营。当用户在计算机屏幕上键入命令RUN时,程序将继续执行。在这里,我们有了第一个编程范例改变。
有一种叫作解释器的东西,它的功能是将代码的每一行动态切换为机器语言的等效代码,然后继续执行它。另外,请注意,命令现在由一个英语单词(例如print)回应。CPU寄存器(例如累加器)和存储器地址被变量更换。
这样编程显得更容易得多!BASIC尽管是一种功能十分强劲的高级语言,但继续执行一起太快,因为解释器必须将所有内容动态切换为机器语言。这必须解决问题。编译语言再次发生了范式切换,为我们带给了当今我们熟知的编译语言。编译器意味著我们现在在继续执行计算机代码方面又迈进了一步。
编译器是一款软件,可以将高级语言撰写的程序转换为几乎机器语言,但无法动态切换(例如BASIC)。忽略,用户必需等候该过程已完成。
最后,当程序被切换(编译器)并可以运营时,用户拒绝启动可执行文件。区别在于它的运营速度比旧的解释程序要更快-生产率更高且节省时间。另一个潜在的益处是可执行文件需要源代码才可分享,从而防止了版权问题。
这是一个新时代的曙光,许多编译语言在生态系统中蓬勃发展。一些示例:Ada,ALGOL,SMALL,Visual Basic,PureBasic,C,C ++,Objective-C,Swift,D,C#(to bytecode),Java(to bytecode),CLEO,COBOL,Cobra,Crystal,eC,Eiffel, Sather,Ubercode,Erlang(to bytecode),F#(to bytecode),Factor(更高版本),Forth,Fortran,Go,Haskell,Haxe(to bytecode或C ++),JOVIAL,Julia,LabVIEW,G,Lisp,Common Lisp ,Lush,Mercury,ML,Alice,OCaml,Nim(针对C,C ++或Objective-C),Open-URQ,Pascal,Object Pascal,Delphi,Modula-2,Modula-3,Oberon,PL / I,RPG ,Rust,Seed7,SPITBOL,Visual Foxpro,Visual Prolog,W,Zig以及许多其他许多…软件之后发展。并且,正如1960年代初期一些计算机科学家(即艾伦·凯和伊万·萨瑟兰德)所建议的那样,实行了一种新的系统开发方法,以便计算机程序可以更佳地代表我们的现实世界。
面向对象编程(OOP)问世了。另一个范式移往。
现在,我们有了类和方法的概念:class Math(){ method sum(op1, op2) { return op1+op2; } method subtract(op1, op2) { return op1-op2; } method multiply(op1, op2) { return op1 * op2; }}Main:Math myMath = new Math(); # Instantiates an object of class Math.Integer mySum = myMath.sum(1, 2); # Calls a method from Math class.System.out.println(mySum); # Outputs the result.尽管我们早已看见了所有这些新的,非常丰富的,有所不同的软件交付给方法以及如何设计体系结构,但还是有一样:在将代码编译成机器语言后,它各不相同特定的CPU。换句话说,在IBM PC上创立的软件将无法在Apple计算机上运营,网卓新闻网,因为每个人都有一个具有有所不同指令集的有所不同处理器。互操作性另一个范式改变为我们带给了所谓的互操作语言,例如Java和.NET。
这背后的点子很非常简单:创立一个中间(虚拟世界)指令集,并将程序的源代码编译器为中间指令集。然后,在每个计算机家族中,您将享有一个特定的编译器/解释器,从这些中间指令到每个计算机品牌的特定指令集。
一种“两步编译器”形式,可以分享一组标准化指令。这套中间指令集称作字节码。字节字节在JVM(Java虚拟机)或CLR(公共语言运营时)上运营。
这样就可以一次撰写一个程序,然后在任何地方运营它(这是Sun Microsystems for Java创立的口号)。尽管在每个计算机都是孤立无援的世界中,计算机语言和软件体系结构的这种演进是有意义的,但我们迅速就开始通过网络连接设备。
网络协议的问世是为了容许机器之间通过电子通信地下通道展开通信。1989年,Tim Berners-Lee发明者了万维网。现在该软件必须通过网络发给,我们不告诉相连了哪种类型的计算机。
创立了解决问题该问题的新标准,并将客户端-服务器体系结构引进了编程语言。这种方法指出计算机软件现在将待命在服务器上,该服务器将根据某些催促将信息传送给客户端。
这种新的范式改变几乎转变了我们用于软件和编程的方式。我们必需登记在线托管地服务才能公布我们的软件。然后,将该软件每天24小时上传遍服务器,以号召用户的催促。
上面的段落叙述了Internet和客户端服务器软件的近期时代。它几乎转变了我们所告诉的世界,并由此转变了我们生产,发给和用于计算机程序的方式。
尽管益处是毋庸置疑的,但它依然是基于集中化的环境,更容易受到反击,检查和告终的影响。该软件各不相同服务器否一直在线。即使通过用于计算机网络云解决问题了性能和可伸缩性问题,它依然不存在中间人的问题–中间人。
中介一般来说不会给您带给障碍,并给标准化分享解决方案的用户带给困难。这可以是高额费用,许可,地区规则,政府审查制度的形式; 总会以某种方式损害消费者。为了一个权利的世界,就越集中就越好。
尽管区块链本身的成本和可扩展性依然相比之下高于其对应的区块链,但一般来说在经常出现破坏性技术时,消费者取得解决方案的成本不会急剧下降。荐个例子,看看现在用比特币给另一个国家的亲戚汇款是多么低廉和更容易。
新时代我们正处于一个新时代的开始–分散式区块链时代。有人有可能将其称作Internet 3.0。
这是我们最近的模式改变,随着智能合约的经常出现,为我们带给了一种创立计算机软件的新方式。智能合约是在集中环境中运行的程序。
它们是破坏性技术,因为它们避免了某些现实世界过程中对中间人(中间人)的市场需求,从而使其更加低廉,更加不易采访且更加高效。限于于被智能合约代替的少见应用于:保险,遗嘱,定期缴付时间表,医疗保健计划,自动驾驶汽车经济,游戏,财产互相交换,资产代币化,抵押,投票等。
公布智能合约时,其副本将待命在世界各地的每个区块链服务器上。而且正如程序员在引进面向对象的体系结构时曾多次被迫转变他们创立软件的方式一样,我们现在必需再度适应环境这种新方法。
您将无法在智能合约中展开股票期权Black-Scholes公平价格计算出来,这不是要展开的事情。结论本文是该系列文章的第一部分,目的通过一个几乎在线的环境IDE,用于基于Python的语言来介绍智能合约编程的基础知识,该IDE容许在区块链中编辑,测试,调试和运营智能合约。
在本系列的第二部分中,我们将针对那些早已具备计算机编程经验但有逐步的非常简单示例的用户,开始一种稳健的方法。最后,您将需要有能力对智能合约展开编码。
本文来源:皇冠官方网-www.casalillibelle.com