http://www.7klian.com

如何利用Python为区块链编写智能合约-第一部门

常见的BASIC措施如下所示:
   {
}
10 A = 1
尽量在每个计较机都是孤独的世界中,计较机语言和软件体系布局的这种演变是有意义的,但我们很快就开始通过网络毗连设备。
另一个范式转变为我们带来了所谓的互操纵语言,譬喻Java和.NET。
这套中间指令集称为字节码。字节码在JVM(Java虚拟机)或CLR(民众语言运行时)上运行。这样就可以一次编写一个措施,然后在任那里所运行它(这是Sun Microsystems for Java建设的标语)。
   }
ADC #$02
合用于被智能合约代替的常见应用:保险,遗嘱,按期付款时间表,医疗保健打算,自动驾驶汽车经济,游戏,工业互换,资产代币化,抵押,投票等。
首先将计较机措施直接注入到内存地点中,然后需要奉告计较机措施将开始执行的位置。 这是原始的呆板语言计较机代码,就像本文开头显示的那样。
这是我们最近的模式转变,跟着智能合约的呈现,为我们带来了一种建设计较机软件的新方法。
   }
我们正处于一个新时代的开始–分手式区块链时代。 有人大概将其称为Internet 3.0。
尽量我们已经看到了所有这些新的,富厚的,差异的软件交付要领以及
如何设计体系布局,但照旧有一样:在将代码编译成呆板语言后,它取决于特定的CPU。
RUN
换句话说,在IBM PC上建设的软件将无法在Apple计较机上运行,因为每小我私家都有一个带有差异指令集的差异处理惩罚器。
这是一个新时代的曙光,很多编译语言在生态系统中发达成长。
对付每个计较机操纵代码,此刻都有一个相关的单词或标记有助于领略。因此,CLC(排除进位)便是18、LDA(负载累加器)为A9、ADC(加进位)为69、STA(存储累加器)为85。
这种编程要领被称为汇编语言,它是简化编程的第一步,使措施员挣脱了繁琐的任务,譬喻记着数字代码。
建设了办理该问题的新尺度,并将客户端-处事器体系布局引入了编程语言。这种要领认为计较机软件此刻将驻留在处事器上,该处事器将按照某些请求将信息通报给客户端。
System.out.println(mySum); # Outputs the result.
初学者的通用标记指令代码(BASIC)是发现于1964年的第一款高级,人性化的计较机语言,其方针是易于
利用。
当用户在计较机屏幕上键入呼吁RUN时,措施将执行。 在这里,我们有了第一个编程典型转变。
   method sum(op1, op2)
宣布智能合约时,其副本将驻留活着界各地的每个
区块链处事器上。并且正如措施员在引入面向工具的体系布局时曾经不得不改变他们建设软件的方法一样,我们此刻必需再次适应这种新要领。
上面的十六进制数字暗示CPU可以领略以执行操纵的呆板语言。
因此,首先呈现了被称为助记符的对象:
智能合约是在分手情况中运行的措施。它们是粉碎性技能,因为它们消除了某些现实世界进程中对中间人(中间人)的需求,从而使其更自制,更易会见且更高效。
   method subtract(op1, op2)
举个例子,想想此刻用给另一个国度的亲戚汇款是何等自制和容易。
CLC
跟着时间的流逝,新的东西被缔造出来以提高编程效率,因此开拓情况产生了很大的变革。 高级语言一词呈现了。
Math myMath = new Math(); # Instantiates an object of class Math.
这意味着编程语言的品级越高,它与人的口头语言越相似。 同样底层语言是更靠近计较机指令集自己的语言。
40 PRINT(SUM)
软件继承成长。 而且,正如1960年月初期一些计较机科学家(即艾伦·凯和伊万·萨瑟兰德)所发起的那样,实施了一种新的系统开拓要领,以便计较机措施可以更好地代表我们的现实世界。
尽量这对编写和调试软件有很大辅佐,但它仍然适得其反。 我们需要一种更简朴的编程要领。
在BASIC语言中,由序号(10,20,30,…)标识的每一行都存储一个呼吁。 这些呼吁将依次运行,一次运行一次,然后下一次运行。
跟着助记符的呈现,我们建设了所谓的汇编器-一款认真解码人类可读助记符,将其转换为呆板语言代码,将其注入正确的内存地点并汇报CPU启动的软件。
为了一个自由的世界,越分手越好。尽量区块链自己的本钱和可扩展性仍然远远低于其对应的区块链,但凡是在呈现粉碎性技能时,消费者得到办理方案的本钱会急剧下降。
CPU有一个“指令集”,这意味着每个数字都是一个导致处理惩罚器执行操纵的呼吁:加,减,除,乘,加载,存储,跳转等。
这需要办理。
最后,您将可以或许有本领对智能合约举办编码。

与计较机语言的这种成长同时,在此进程中产生了一些范式转换。
STA $31F6
Main: 
      return op1-op2;
上面的措施排除进位,将值01加载到累加器中,将02加到累加器中,然后将功效数存储在存储器地点31F6中。 此刻以一种更容易领略的方法供人类领略。
class Math()
编译语言
再次产生了范式转换,为我们带来了当今我们所知的编译语言。
在本系列的第二部门中,我们将针对那些已经具有计较机编程履历但有慢慢的简朴示例的用户,开始一种务实的要领。
网络协议的降生是为了答允呆板之间通过电子通信通道举办通信。
别的,请留意,呼吁此刻由一个英语单词(譬喻print)暗示。CPU寄存器(譬喻累加器)和存储器地点被变量替换。 这样编程变得容易得多!
新时代
“ BASIC”语言
BASIC尽量是一种成果很是强大的高级语言,但执行起来太慢,因为表明器需要将所有内容及时转换为呆板语言。
30 SUM = A + B
编译意味着我们此刻在执行计较机代码方面又迈出了一步。编译器是一款软件,可以将高级语言编写的措施转换为完全呆板语言,但不能及时转换(譬喻BASIC)。
这种新的范式转变完全改变了我们
利用软件和编程的方法。我们必需注册在线托管处事才气宣布我们的软件。然后,将该软件天天24小时上传随处事器,以响应用户的请求。
区别在于它的运行速度比旧的表明措施要快得多-出产率更高且节减时间。另一个潜在的长处是可执行文件无需源代码即可共享,从而制止了版权问题。
   }
这背后的想法很简朴:建设一其中间(虚拟)指令集,并将措施的源代码编译为中间指令集。
措施员需要记着操纵代码,从而记着哪个数字相当于哪个呼吁。效率不高。
Integer mySum = myMath.sum(1, 2); # Calls a method from Math class.
一段汗青…早在1950年月,在计较的早期,假如您想编写一段代码来执行一个简朴的求和运算(思量到Motorola 6502 8位CPU),您将最终 像这样:18 A9 01 69 02 85 31 F6
此刻,我们有了类和要领的观念:
尽量长处是毋庸置疑的,但它仍然是基于会合化的情况,容易受到进攻,查抄和失败的影响。 该软件取决于处事器是否始终在线。
{
      return op1+op2;
您将无法在智能合约中举办股票期权Black-Scholes公正价值计较,这不是要举办的工作。
一些示例: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以及很多其他很多…
很快,很明明,需要一种更人性化的要领。 这是建设高级语言的举动的开始,高级语言看起来更像口头语言。
   method multiply(op1, op2)
本文是该系列文章的第一部门,旨在通过一个完全在线的情况IDE,利用基于
Python的语言来讲授智能合约编程的基本常识,该IDE答允在区块链中编辑,测试,调试和运行智能合约。
然后,在每个计较机家属中,您将拥有一个特定的编译器/表明器,从这些中间指令到每个计较机品牌的特定指令集。一种“两步编译器”形式,可以共享一组通用指令。
纵然通过利用计较机网络云办理了机能和可伸缩性问题,它仍然存在中间人的问题–中间人。
   {
20 B = 2
中介凡是会给您带来障碍,并给通用共享办理方案的用户带来贫苦。 这可以是高额用度,执照,地域法则,当局审查制度的形式; 总会以某种方法伤害消费者。
LDA #$01
      return op1 * op2;
有一种叫做表明器的对象,它的成果是将代码的每一行及时转换为呆板语言的等效代码,然后执行它。

在2019年,智能合约无疑是计较机编程中的新范式转变。 本指南旨在成为建设在分手式中陈设和运行的计较机措施的入门途径。
结论
互操纵性
面向工具编程(OOP)降生了。另一个范式转移。
1989年,Tim Berners-Lee发现了万维网。 此刻该软件需要通过网络分发,我们不知道毗连了哪种范例的计较机。
上面的段落描写了Internet和客户端处事器软件的最新时代。它完全改变了我们所知道的世界,并由此改变了我们出产,分发和利用计较机措施的方法。
相反,用户必需期待该进程完成。最后,当措施被转换(编译)并可以运行时,用户要求启动可执行文件。
   {

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读