简单的说,以太坊(Ethereum)是下一代密码学账本,打算支持众多的高级功能,包括用户发行货币,智能合约,去中心化的交易和我们认为的第一个完全的去中心化自治组织(DAOs)或去中心化自治公司(DACs)应用。

通过被称为“合同”的机制来为自己想实现的特性写代码。一个合同就像一个自动的代理,每当接收到一笔交易,合同就会运行特定的一段代码,这段代码能修改合同内部的数据存储或者发送交易。高级的合同甚至能修改自身的代码。

比特币区块链浏览器

经过近两个的严格测试以后,团队在七月末发布了正式的以太坊网络,这也标准着以太坊区块链正式运行。以太坊的发布分成了四个阶段,即Frontier(前沿)、Homestead(家园)、Metropolis(大都会)和Serenity(宁静),在前三个阶段以太坊共识算法采用工作量证明机制(POW),在第四阶段会切换到权益证明机制(POS)。

Mist浏览器

比特币的核心技术区块链可以理解成可复制、共享的账本。

比特币的最核心创新:它教会世界如何在不需要信任第三方的情况下远距离转移价值。

智能合约模型:一段代码(智能合约),被部署在分享的、复制的账本上,它可以维持自己的状态,控制自己的资产和对接收到的外界信息或者资产进行回应。 智能合约模型:它是运行在可复制、共享的账本上的计算机程序,可以处理信息,接收、储存和发送价值。

以太坊 = 区块链 + 智能合约。

Sybil攻击是指利用社交网络中的少数节点控制多个虚假身份,从而利用这些身份控制或影响网络的大量正常节点的攻击方式。Sybil攻击最早出现于无线通信领域中。Douceur

如写智能合同,开发Đapp,发布Đapp,发送交易,使用蜂群Swarm,使用细语Whisper

Serpent是一种用来编写以太坊合约(Ethereum Contract)的高级编程语言。Serpent翻译成中文意思是"大蛇",如这个名字所示,这是一种与Python类似的编程语言。Serpent在兼顾底层语言效率与良好编程风格的同时尽可能的追求简洁,还加入了一些针对合约编程的特性。Serpent编译器由C++实现,因此可以被轻松打包进任何客户端,最新版本可以在Github上找到。

Serpent 与

在节点启动时,可以给节点指定一个正活跃节点IP, 如果没有,客户端也维持一个列表,列出了那些长期稳定运行的节点。这样的节点也被称为种子节点(其实和BT下载的种子文件道理是一样的),就可以通过种子节点来快速发现网络中的其他节点。

每个网络节点都是平等的(是指在网络层面上节点是平等的,但各节点在功能上可以有不同的分工, 如钱包节点、挖矿节点等),不存在任何“特殊”中心节点,那么当新的网络节点启动后,它是如何跟其他的节点建立连接,从而加入到比特币网络呢?

在中心化网络中,新加入的节点只要连接“特殊”的中心节点就可以加入网络。

为了能够加入到比特币网络,比特币客户端会做一下几件事情:

节点会记住它最近成功连接的网络节点,当重新启动后它可以迅速与先前的对等节点网络重新建立连接。

节点会在失去已有连接时尝试发现新节点。

当建立一个或多个连接后,节点将一条包含自身IP地址消息发送给其相邻节点。相邻节点再将此消息依次转发给它们各自的相邻节点,从而保证节点信息被多个节点所接收、保证连接更稳定。

新接入的节点可以向它的相邻节点发送获取地址getaddr消息,要求它们返回其已知对等节点的IP地址列表。节点可以找到需连接到的对等节点。

在节点启动时,可以给节点指定一个正活跃节点IP, 如果没有,客户端也维持一个列表,列出了那些长期稳定运行的节点。这样的节点也被称为种子节点(其实和BT下载的种子文件道理是一样的),就可以通过种子节点来快速发现网络中的其他节点。

比特币节点通常采用TCP协议、使用8333端口与相邻节点建立连接, 建立连接时也会有认证“握手”的通信过程,用来确定协议版本,软件版本,节点IP,区块高度等。

文章发布只为分享区块链技术内容,版权归原作者所有,观点仅代表作者本人,绝不代表区块链兄弟赞同其观点或证实其描述。