Solidity的自定义结构体深入详解(十一)|入门系列

结构体,Solidity中的自定义类型。我们可以使用Solidity的关键字struct来进行自定义。结构体内可以包含字符串,整型等基本数据类型,以及数组,映射,结构体等复杂类型。数组,映射,结构体也支持自定义的结构体。我们来看一个自定义结构体的定义:

阅读更多→   2017/4/8 posted in  Solidity入门系列

Solidity的数组特性深入详解(十)| 入门系列

数组在所有的语言当中都是一种常见类型。在Solidity中,可以支持编译期定长数组和变长数组。一个类型为T,长度为k的数组,可以声明为T[k],而一个变长的数组则声明为T[]

阅读更多→   2017/4/4 posted in  Solidity入门系列

Solidity的数据位置特性深入详解(九)| 入门系列(老是遇到转换问题的来看看)

代码在执行前,一般会编译成指令。指令就是一个个逻辑,逻辑操作的是数据。代码,或者说业务,操作的其实是数据。非区块链中,代码操作的数据,一般会存到数据库中。

在区块链里,区块链本身就是一个数据库。如果你使用区块链标记物产的所有权,归属信息将会被记录到区块链上,所有人都无法篡改,以标明不可争议的拥有权。所以在区块链中编程中,有一个数据位置的属性用来标识变量是否需要持久化到区块链中。

阅读更多→   2017/4/3 posted in  Solidity入门系列

区块链语言Solidity校验椭圆曲线加密数字签名(附实例)

我们知道整个比特币,以太坊的基石就是椭圆曲线加密算法。所有的数据均需要发起者通过私匙签发,其它人通过非对称的公匙验证确实消息的真实性。下面我们就一起来了解一下椭圆曲线加密算法,并使用以太坊提供的工具对要发送的数据进行数字签名,以及使用Solidity区块链编程语言的ecrecover()校验数字签名的合法性。

椭圆曲线DSA(ECDSA)简介

假如Alice要对消息m加上数字签名,而Bob需要验证该签名。

阅读更多→   2017/3/25 posted in  Solidity入门系列

【Solidity入门系列】函数的可见性与访问权限控制

在之前的文章中1我们介绍了Solidity语言函数的一些基本语法。下面来继续介绍作为一个分布式网络语言所特有的internalexternal这两种不同的函数调用方式,以及Solidity提供的对函数调用时的可见性控制语法。

阅读更多→   2017/3/12 posted in  Solidity入门系列

【Solidity入门系列】函数

函数在所有的语言中都是一种常见类型。Solidity中的函数关键字是function,我们先来看一个最简单的例子:

阅读更多→   2017/3/11 posted in  Solidity入门系列

重磅!企业以太坊联盟技术路线图中文版 | 独家

以太坊企业联盟

以太坊企业联盟,EEA1,是Enterprise Ethereum Alliance的缩写。是基于以太坊建立的一个新的区块链联盟。

联盟成员来自摩根大通,微软,芝加哥大学,ING和BNY Mellon的专家,及Nuco和ConsenSys这样的初创公司。整个联盟尽量保持去中心化的运作方式,采用循环的董事会等手段来最小化单个成员的影响。

阅读更多→   2017/3/5 posted in  热点

【文档翻译系列】ABI详解

ABI1是以太坊的一种合约间调用时的一个消息格式。类似Webservice里的SOAP协议一样;也就是定义操作函数签名,参数编码,返回结果编码等。

阅读更多→   2017/2/26 posted in  Solidity深入浅出系列

【Solidity入门系列】定长字节数组

定义的方式是bytesN,其中N可取从132中的任意整数值1。默认的byte表示的是bytes1

使用指定长度的命名方式bytes2,不是byte,多一个s,不然编译报错Error: Identifier not found or not unique

其它编程语言一般没有这样的类型。可取值范围,增长步长方面与Solidity语言自身的整数有不同3,需注意区分。

阅读更多→   2017/2/25 posted in  Solidity入门系列

【深入浅出Solidity】call相关函数

三个方法都是用来进行合约交互的方法。由于没有进行更进一步的封装,不是最好的选择,一般不会直接使用到它们;另外一个显著的问题由于可以使用任意参数类型,在语言层面不能保证类型安全,所以不推荐使用。

阅读更多→   2017/2/19 posted in  Solidity深入浅出系列

【Solidity入门系列】以太币支付

阅读更多→   2017/2/19 posted in  Solidity入门系列

【Solidity入门系列】地址

【编者按:】Solidity编程语言是一门基于以太坊(Ethereum)的区块链语言。深入浅出Solidity系列文章将介绍该语言的一些特点,希望能给大家带来一些深入的了解。

说到Solidity的地址就不得不先提到比特币的UXTO模型。

UXTO是什么?

UXTO是Unspend Transaction Output的缩写,意指未花费的交易输出。我们都知道比特币是一个超级帐本,整个系统记录的就是一笔笔操作。举例来说:小明有20元,要向只有5元的小红转帐10元,可以将上述操作表述为:

 操作({ 小明:20,小红: 5 },“从小明到小红发送10元”) = { 小明:10,小红:15元 }

要想知道当前小明的余额(状态),就得从整个帐本记录的第一笔操作开始推算小明未被花费的钱。推算都谁转过给他,他转给其它人多少,最后余额是否如他现在所说,检查确认金额正确且是小明本人后才会记录这样一笔操作,当然在这之后,小明的余额就只有10元了。

阅读更多→   2017/2/18 posted in  Solidity入门系列

【Solidity入门系列】整数

Solidity编程语言是一门基于以太坊(Ethereum)的区块链编程语言。深入浅出系列文章将介绍该语言的一些特点,希望给大家带来一些深入的了解。

Solidity支持有符号整数和无符号整数。与其它语言不同的是,整数所占位数可以指定从uint8/int8uint256/int256,以8为步长单位递增的不同长度。uintint默认表示uint256int256。为了节省空间考虑,应在开发中选择适合的大小。

阅读更多→   2017/2/14 posted in  Solidity入门系列

【文档翻译系列】Solidity语言

Solidity是一种智能合约高级语言,运行在Ethereum虚拟机(EVM)之上。

Solidity与其它语言相关的特点?

它的语法接近于Javascript,是一种面向对象的语言。但作为一种真正意义上运行在网络上的去中心合约,它又有很多的不同,下面列举一些:

  • 以太坊底层是基于帐户,而非UTXO的,所以有一个特殊的Address的类型。用于定位用户,定位合约,定位合约的代码(合约本身也是一个帐户)。
  • 由于语言内嵌框架是支持支付的,所以提供了一些关键字,如payable,可以在语言层面直接支持支付,而且超级简单。
  • 存储是使用网络上的区块链,数据的每一个状态都可以永久存储,所以需要确定变量使用内存,还是区块链。
  • 运行环境是在去中心化的网络上,会比较强调合约或函数执行的调用的方式。因为原来一个简单的函数调用变为了一个网络上的节点中的代码执行,分布式的感觉。
  • 最后一个非常大的不同则是它的异常机制,一旦出现异常,所有的执行都将会被回撤,这主要是为了保证合约执行的原子性,以避免中间状态出现的数据不一致。
阅读更多→   2015/12/19 posted in  文档翻译

【文档翻译系列】Truffle框架

Truffle是什么?

Truffle是针对基于以太坊的Solidity语言的一套开发框架。本身基于Javascript。

学习Truffle前要知道什么?

总的来说不需要什么特别的。

  • 由于本身是基本Javascript的,但对Javascript的要求比较低,知道基本语法、模块、Promise的概念差不多就可以了,不知道也行,碰到不懂的,现查资料都来得及。(这个我做为一个后台开发勉强可以懂)。
  • 需要知道Solidity,因为本身就是针对它的一个框架,不然学这个干什么。
  • 知道一点点以太坊的基础,不过学Solidity那点就够了。
阅读更多→   2015/12/19 posted in  文档翻译

关于本站

大家好,我是Rick,一个后端Java开发,热爱学习新技术,自学了go,node.js,还正在学Javascript(后面自学的语言都还比较渣,哈哈)。一个孤独的探索者。

阅读更多→   2015/11/28 posted in  其它

友情链接: 区块链技术中文社区