精华内容
下载资源
问答
  • 以太坊平台

    2016-06-17 15:38:38
    以太坊平台评估 私有链和联盟链的机会与挑战 作者:VitalikButerin 翻译:万向区块链实验室/ChinaLedger联盟 排版/校对:区块链铅笔(ChainB.com)
  • 乙醚市场 以太坊平台上的去中心化区块链应用程序,用于买卖以太坊中的设备
  • 以太坊 调查以太坊平台的文件集 所有文件版权所有 2014 Aeron Buchanan 在知识共享署名-相同方式共享 3.0 许可下发布
  • 以太坊平台增加类 CrytoNote 环签名

    万次阅读 2019-05-10 10:46:20
    以太坊技术开发团队正为以太坊平台增加一个类CryptoNote环签名,这样使得以太坊用户拥有类似于CryptoNote驱动的货币如Monero的匿名能力。 以太坊的创始人Vitalik Buterin上周在Reddit上发布了声明,宣布github更新...

    以太坊技术开发团队正为以太坊平台增加一个类CryptoNote环签名,这样使得以太坊用户拥有类似于CryptoNote驱动的货币如Monero的匿名能力。

    以太坊的创始人Vitalik Buterin上周在Reddit上发布了声明,宣布github更新,并线上回答以太坊社区提出的任何问题。

    Vitalik 指出,该协议目前处于早期开发阶段,拥有软件开发背景的用户可能会更容易理解和使用它,不过他想从普通用户的角度来看,需要足够多的活跃人员参与使用才能取得更好的效果。当然,就算是在理想条件下,这个系统未经测试,因此还不能认为是安全的。

    不过该协议与之前开发的协议一样比较容易实现,代码看起来也很简单明了,再次证明以太坊的编程语言Serpent是多么强大,适应性也很强。

    这个协议的开发并非完全替代像Monero这样的匿名货币。类CryptoNote环签名并不是建立在以太坊本身,而是在以太坊之上的另一层。以太坊区块链上的每个区块的gas上限是310万。如果这个协议在底层协议中实现并在默认情况下生效,它将限制以太坊的扩展能力。

    Buterin和一些人认为,使用以太坊已经开发出来的系统,成本将会明显下降。但是要永远默认打开和免费使用该服务(像一些特别设计的虚拟货币一样)是几乎不可能的。Buterin预见了一种情况,以太坊的混合应用将建立在以太坊区块链上,允许无信任关系的混合服务。

    如何融入以太坊更大规模的计划,涉及到复杂交易、DAC以及其他一切未来的应用,还有待观察,但Buterin相信这两项强大的技术一定会有用武之地。

    展开全文
  • 基于以太坊平台的农业游戏。 入门 先决条件 1. TestRPC npm install -g ethereumjs-testrpc 2.松露 npm install -g truffle 3.流星 curl https://install.meteor.com/ | sh 运行DApp 首先,您需要拥有自己的以太坊...
  • 今天研究了一上午truffle与以太坊平台之间的交互,终于走通了,特地做一下笔记。备忘(truffle与以太坊私有链的交互) 1、首先启动geth客户端,使用如下命令 >geth --datadir "./chaintest" --networkid 314590 --...

    今天研究了一上午truffle与以太坊平台之间的交互,终于走通了,特地做一下笔记。备忘(truffle与以太坊私有链的交互)

    1、首先启动geth客户端,使用如下命令

    >./geth --datadir "./chaintest" --networkid 314590 --port 61910 --rpc --rpcapi "web3,eth,net" --rpccorsdomain "*" --rpcport 8200 console

    部署合约到私有链时,需要注意:geth启动节点的时候,必须带有--rpcapi选项,并且选项的值必须包含有"web3","eth","net"这三个设置,另外为了保证rpc为启用,还必须带有--rpc等一系列参数。

    客户端启动之后,如果是新的客户端,需要给客户端创建1-2个账户以方便测试,新建账户的命令如下:

    >personal.newAccount("123456");    //其中123456为账户密码

    如果客户端原本就有账户,我们给账户解锁,以便智能合约能够部署到私有链上,因为部署合约的时候默认是用第一个账户进行操作,所以我们只要解锁第一个账号即可。解锁命令如下:

    >personal.unlockAccount(eth.accounts[0],passwoed,1000*60*60);   //第三个参数是经过多长时间,账户被锁定,我们可以设置的长一点,这里设置60分钟

    2、启动geth客户端之后,我们来构建一个truffle项目,前提是你的机器上已经安装了truffle,我是在linux上测试的,系统为centos7

    >mkdir truffle3

    >cd truffle3

    >truffle init    //这个命令之后,truffle会自动在truffle3目录下构建一个truffle项目,格式如下


    我这个是经过编译之后的目录结构,实际上刚刚创建完之后,该目录下之后我标出来的四个文件

    删掉contracts目录下除了Migrations.sol的另外两个文件,当然也可以保留,我们这边是用自己写的智能合约进行测试。Migrations.sol文件移植的时候需要用到,所以我们保留。增加Greeter.sol文件。内容如下

    pragma solidity ^0.4.11;
    
    contract Greeter
    {
        address creator;
        string greeting;
    
        function Greeter(string _greeting) public
        {
            creator = msg.sender;
            greeting = _greeting;
        }
    
        function greet() constant returns (string)
        {
            return greeting;
        }
    
        function setGreeting(string _newgreeting)
        {
            greeting = _newgreeting;
        }
    
         /**********
         Standard kill() function to recover funds
         **********/
    
        function kill()
        {
            if (msg.sender == creator)
                suicide(creator);  // kills this contract and sends remaining funds back to creator
        }
    
    }
    
    修改migrations目录下的2_deploy_contracts.js的文件如下:

    var Greeter = artifacts.require("./Greeter.sol");
    
    module.exports = function(deployer) {
      deployer.deploy(Greeter);
    };
    
    修改truffle3下的truffle.js内容如下:

    module.exports = {
      rpc: {
        host:"localhost",
        port:8200
      },
      networks: {
        development: {
          host: "localhost",
          port: 8200,
          network_id: 314590 // Match any network id
        }
      }
    };
    这里的rpc-port为geth客户端启动时的端口号,networks-development-network_id为geth客户端启动时的networkid。

    设置完之后,就可以进行编译了

    >编译

    truffle compile

    编译之后,就会出现上面的目录结构了

    >部署

    truffle migrate

    执行部署操作之后,回到geth客户端进行挖矿操作miner.start();admin.sleepBlocks(13);miner.stop();

    挖矿成功之后,智能合约就部署到以太坊私有链上了

    之后我们在geth客户端测试一下

    > var abi = [{"constant": false,"inputs": [],"name": "kill","outputs": [],"payable": false,"type": "function"},{"constant": false,"inputs": [{"name": "_newgreeting","type": "string"}],"name": "setGreeting","outputs": [],"payable": false,"type": "function"},{"constant": true,"inputs": [],"name": "greet","outputs": [{"name": "","type": "string"}],"payable": false,"type": "function"},{"inputs": [{"name": "_greeting","type": "string"}],"payable": false,"type": "constructor"}]
    undefined
    > 
    > 
    > var address = "0x231485032a7159202382515d4f90baef00ef9cdb";
    undefined
    > 
    > var greeter = web3.eth.contract(abi).at(address);
    undefined
    > greeter.setGreeting("Hello world!",{from : eth.accounts[0]});
    INFO [09-12|16:09:43] Submitted transaction                    fullhash=0x54dd41fde0b5fa8b362713568ef2eddfea3d9075759376dbc0e6de22106a4d8e recipient=0x231485032a7159202382515d4f90baef00ef9cdb
    "0x54dd41fde0b5fa8b362713568ef2eddfea3d9075759376dbc0e6de22106a4d8e"
    > 
    
    > miner.start();admin.sleepBlocks(13);miner.stop();
    
    > var aaa = greeter.greet();
    undefined
    > console.log(aaa);
    Hello world!
    undefined
    > 


    在部署的时候遇到的问题,截图如下:


    exceeds block gas limit的意思是超出了区块最大的gas限制,把创世文件里面的gas limit参数改大一点就好了。

    展开全文
  • 区块链学习札记七:以太坊平台架构 根据以太坊白皮书《A Next-Generation Smart Contract and Decentralized Application Platform》的描述,以太坊架构如下图所示。 如图所示,以太坊架构分为 7 层,由下至上...

    区块链学习札记七:区块链2.0以太坊平台架构

    根据以太坊白皮书A Next-Generation Smart Contract and Decentralized Application Platform的描述,以太坊架构如下图所示。

    https://cdn.55coin.com/upload/1551401934_789035005.jpg

    如图所示,以太坊架构分为 7 层,由下至上依次是存储层、数据层、网络层、协议层、共识层、合约层、应用层

    其中存储层主要用于存储以太坊系统运行中的日志数据及区块链元数据,存储技术主要使用文件系统和 LevelDB。

    数据层主要用于处理以太坊交易中的各类数据,如将数据打包成区块,将区块维护成链式结构,区块中内容的加密与哈希计算,区块内容的数字签名及增加时间戳印记,将交易数据构建成 Merkle 树,并计算 Merkle 树根节点的 hash 值等。

    与比特币的不同之处在于以太坊引入了交易和交易池的概念。交易指的是一个账户向另一个账户发送被签名的数据包的过程。而交易池则存放通过节点验证的交易,这些交易会放在矿工挖出的新区块里。

    以太坊的 Event(事件)指的是和以太坊虚拟机提供的日志接口,当事件被调用时,对应的日志信息被保存在日志文件中。

    与比特币一样,以太坊的系统也是基于 P2P 网络的,在网络中每个节点既有客户端角色,又有服务端角色。

    协议层是以太坊提供的供系统各模块相互调用的协议支持,主要有 HTTP、RPC协议、LES、ETH 协议、Whipser 协议等。

    以太坊基于 HTTP Client 实现了对 HTTP 的支持,实现了 GET、POST 等 HTTP方法。外部程序通过 JSON RPC 调用以太坊的 API 时需通过 RPC (远程过程调用) 协议。

    Whisper 协议用于 DApp 间通信。

    LES 的全称是轻量级以太坊子协议(Light Ethereum Sub-protocol),允许以太坊节点同步获取区块时仅下载区块的头部,在需要时再获取区块的其他部分。

    共识层在以太坊系统中有 PoW(Proof of Work)和 PoS(Proof of Stake)两种共识算法。

    合约层分为两层,底层是 EVM(Ethereum Virtual Machine,即以太坊虚拟机),上层的智能合约运行在 EVM 中。智能合约是运行在以太坊上的代码的统称,一个智能合约往往包含数据和代码两部分。智能合约系统将约定或合同代码化,由特定事件驱动触发执行。因此,在原理上适用于对安全性、信任性、长期性的约定或合同场景。在以太坊系统中,智能合约的默认编程语言是 Solidity,一般学过 JavaScript 语言的读者很容易上手 Solidity。

    应用层有 DApp(Decentralized Application,分布式应用)、以太坊钱包等多种衍生应用,是目前开发者最活跃的一层。

     

    以太坊白皮书英文:https://github.com/ethereum/wiki/wiki/White-Paper

    以太坊白皮书翻译:https://www.cnblogs.com/ECJTUACM-873284962/p/8370825.html

    展开全文
  • 2.用户可通过客户端对笔记进行增删改查,每次操作将被记录到以太坊区块链上。客户端采用基于Android系统的手机客户端,服务器端采用node.js设计,启动方式为npm start。区块链采用geth客户端,数据库使用的是mysql...
  • 以太坊平台搭建

    千次阅读 2017-12-14 22:55:39
    本文主要总结在Ubuntu系统上搭建以太坊开发平台的过程。 注意: 安装以下软件的时候,请尽量使用ubuntu系统官方的apt源。由于国内很多公司,例如阿里,网易,腾讯等都免费提供apt源,在有的时候当然可以加快我们...

    前言

    本文主要总结在Ubuntu系统上搭建以太坊开发平台的过程。

    注意

    • 安装以下软件的时候,请尽量使用ubuntu系统官方的apt源。由于国内很多公司,例如阿里,网易,腾讯等都免费提供apt源,在有的时候当然可以加快我们安装软件的速度。但是,在安装本文所介绍的软件的时候我就遇到了各种奇葩的错误,后来更换了ubuntu的官方apt源后有些问题就没有了。
    • 在使用npm安装某些软件的时候,由于系统某些进程占用,会导致安装过程出错。在搞不清楚哪些进程占用的情况下,还是重启系统比较简单粗暴。
    • 本文所述安装过程均在Ubuntu16.04 64位系统下完成,有些安装过程在早期版本的Ubuntu系统中会出现错误,这一点请大家注意。

    安装git,NodeJS

    输入以下命令安装git:

    sudo apt-get install git

    注意

    如果在安装git时出现E:Package 'git' has no installation candidate错误提示,只需使用以下命令代替即可1

    sudo apt-get install git-core

    因为以太坊开发需要使用开发框架,但是,目前最好用且使用人数最多的是第三方开发框架Truffle。而Truffle建议系统所用NodeJS版本为5.0以上2,因此,我们就需要安装NodeJS的最新版本。

    有多种方法安装NodeJS:

    方法一:使用apt,输入以下命令安装NodeJS 6.0以上版本3

    sudo apt-get install curl
    curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
    sudo apt-get install -y nodejs

    方法二:从Node官网下载源码并解压,然后自行编译安装(以安装Node V6.9.2为例)45

    tar -zxvf node-v6.9.2.tar.gz
    cd node-v6.9.2
    sudo ./configure
    sudo make
    sudo make install

    方法二因为要重新编译,因此耗费的时间可能多一点。

    安装solc

    输入以下命令安装solc6

    sudo npm install -g solc1

    安装完后,我们就会发现在终端中输入solc命令返回一个出错信息。这是因为solc只是一个程序集,如果我们想要在终端中使用solc程序编译智能合约,则需要安装solc-cli,这是solc的命令行界面。

    输入以下命令安装solc-cli:

    sudo npm install -g solc-cli1

    输入以下命令可以一并安装solcsolc-cli7(推荐使用此命令安装):

    sudo npm install -g solc solc-cli --save-dev

    如果输入solcjs --help命令,有以下输出,则表明solc和solc-cli安装成功:

    zcc@ubuntu:~$ solcjs --help
    Usage: solcjs [options] [input_file...]
    
    Options:
      --version         Show version number                                [boolean]
      --optimize        Enable bytecode optimizer.                         [boolean]
      --bin             Binary of the contracts in hex.                    [boolean]
      --abi             ABI of the contracts.                              [boolean]
      --interface       Solidity Interface of the contracts.               [boolean]
      --output-dir, -o  Output directory for the contracts.                 [string]
      --help            Show help                                          [boolean]

    到了这里,如果想以后的智能合约编译工作不使用geth控制台来完成,那么solc编译器就算安装完了。但是,如果我们需要在geth控制台使用solc编译器,那么我们仍然需要安装solc二进制包。输入以下命令安装solc二进制包8

    sudo add-apt-repository ppa:ethereum/ethereum
    sudo apt-get update
    sudo apt-get install solc

    如果在输入第一条命令的时候出现了错误,可以尝试重新启动系统来解决。

    注意

    如果你安装了webthree-umbrella,那么solc就会默认安装,但是我们在终端输入solc并没有显示可用的命令,我们需要输入以下命令手动建立软链接9

    sudo ln -s /home/zcc/webthree-umbrella/solidity/build/solc/solc /bin/solc

    这样就能直接在终端使用solc程序了。

    安装testrpc

    输入以下命令安装testrpc10

    sudo npm install -g ethereumjs-testrpc

    如果输入testrpc命令,有以下输出,则表明testrpc安装成功:

    zcc@ubuntu:~$ testrpc
    EthereumJS TestRPC v2.0.9
    
    Available Accounts
    ==================
    (0) 0x3aaf37e090b570596c47eeb83dee6d7eb6010b87
    (1) 0x2ab74e4872f69f59ddfb19535e731b5abe012748
    (2) 0x5c393ac0eccb6236641b5e3fadae83b745aab893
    (3) 0xa23e3e6c2c11a26b58f0656168dadb4f4965648e
    (4) 0xf15a17d9ecfeed966721e2dddccb1709568c5b83
    (5) 0xb7eadd05c6661884f29dee4f77dfb634b1925729
    (6) 0x77a4609285693d7773b809af4218a0a3702fac2f
    (7) 0xb62e0d887bc7b17810159108f1b6a32eb8c5f51a
    (8) 0xeddcef43e382e4150465d8bd113e5fbc02077aaf
    (9) 0xb2f5addd09b2fb9c94bf41e851a3d537b88748a1
    
    Private Keys
    ==================
    (0) 452b5601745b2c65c3a88f6a56b4bc393511f453646031097fc8d18948f46581
    (1) aaea0670b3eff9db750db8641f3b08ec8268373945f837bf393cf3e494ec8da6
    (2) c9be77fd26933d26ae309a3fe5dbd1cb9747d4f5e872fff3f07921f0b5ff15c7
    (3) 8767cbcd5eafbf914ee66590de121c7fbf951a793d1c7f9376b5d1ba064808ea
    (4) 2e2117afb334e870f15760e74c9d1f72f3c15d59fb047b603590be8d67a5338e
    (5) 017221e1344fdad12ff90b644979052525d048e10596cb88ae4411dcd6cbe3be
    (6) 13a47c99a21403f30579b08ce6116af50028af21b9de13bab05b8d1c45349593
    (7) 24c9f2b3bbf9ebd193c2c9aa3ab62c58005ecb20b9fb28f43b54f9bec7d5b4fb
    (8) e048a57d2d68f5f198b6dc23e8596f88e155bdb2157e616af6247392f49b2e2e
    (9) 16e49075f5cbe265cbb6c7af181d9d6b4e017f39a861d6e2655a7899ad2288f0
    
    HD Wallet
    ==================
    Mnemonic:      cliff evolve motion suit citizen crack borrow churn way glare series trust
    Base HD Path:  m/44'/60'/0'/0/{account_index}
    
    Listening on localhost:8545

    注意

    • 参考网页中的命令没有sudo,但是因为-g参数是表示全局安装,则需要使用root权限才能安装成功11
    • 安装过程可能会出错,可以多试几次安装命令。

    安装truffle

    输入以下命令12

    sudo npm install -g truffle

    如果输入truffle version命令,有以下输出,则表明truffle安装成功:

    zcc@ubuntu:~$ truffle version
    Truffle v2.0.0

    安装Geth客户端

    有多种以太坊客户端,安装go-ethereum输入以下命令13

    sudo apt-get install software-properties-common
    sudo add-apt-repository -y ppa:ethereum/ethereum
    sudo apt-get update
    sudo apt-get install ethereum

    展开全文
  • 以太坊平台开源项目

    千次阅读 2017-09-14 18:09:08
    以太坊发布以后,有 多个客户端,同时也支持多个平台,初学者往往被各种各样的客户端弄迷糊,本文进行了详细的总结。  以太坊客户端以语言进行分类,在github上分成了不同项目,源代码地址:...
  • 以太坊平台评估 私有链和联盟链的机会与挑战 作者:Vitalik Buterin  翻译:万向区块链实验室/ChinaLedger 联盟  排版/校对:区块链铅笔(ChainB.com) (注:本文属于学习资料,请勿用于商业用途。转载请注明作者与...
  • 以太坊平台实验手记

    千次阅读 2017-07-13 17:36:27
    以太坊 Go 客户端的安装与区块链的导入导出 以下实验在 Ubuntu 16.04 LTS 中进行,验证对 Ethereum Go 客户端(geth)的 1.6.6- stable-10a45cb5 版本有效。其他版本的特性参见 Git Hub 项目主页 [1]。 在 Ubuntu...
  • 一个受KickStarter想法启发的react应用程序,它试图通过使用以太坊平台解决与信任相关的问题。 您可以通过以下方式运行我的项目: 克隆到本地计算机 'npm install'安装项目中使用的所有npm模块。 'npm run dev'...
  • 持久的遗产 持久遗产:testrpc --rpc --rpccorsdomain =“ chrome-extension:// nkbihfbeogaeaoehlefnkodbefgpgknn”松露迁移--reset --recompile --compile-all lasting-legacyUI:webpack -d节点应用程序 ...
  • 以太坊的基础知识和一些Java经验 的安装和本地区块链(例如 ) 相当多的耐心和宽恕 免责声明 该原型仅作为示例,并且由于存在许多缺点,因此甚至不应将其视为实际实现的尝试。 例如,就,该合同可能有些昂贵。 基础...
  • 如果搭建的是私有链环境,挖矿速度通常设置比较快,很快就可以捕获到事件的返回,但是在以太坊公有链上,需要等待十几秒的时间,打包区块时才执行合约代码触发回调事件。   然而,网上教程没有告诉你的是:...
  • 以太坊cpp平台

    2019-03-08 14:07:11
    以太坊windows端的c++开发工具,利用这个工具可以查看以太坊钱包的内容,可以建立一个以太坊钱包账户
  • 很多同学已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,本文将基于以太坊平台,以通俗的方式介绍以太坊开发中涉及的各晦涩的概念,轻松带大家入门。以太坊是什么以太坊(Ethereum)是一个建立在...
  • 基于以太坊区块链平台的应用

    千次阅读 2018-07-20 22:12:13
    以太坊与相关应用及其募资金额: 以太坊公共区块链平台 —— 共募资1840万美元 DigixDAO —— 建立以太坊金本位...The DAO —– 基于以太坊平台的创投组织,投资使用区块链技术的共享经济,计划共募资1.32亿美元...
  • 以太坊

    2019-11-22 16:42:37
    区块链2.0的典型代表,主要实现了智能合约的功能,开发人员可以在以太坊平台建立和发布各种分布式应用,这些应用,其实就是合约,智能合约说白了其实就是当达到某条件时会自动执行的代码。很多ICO的代币就是在以太坊...
  • 以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态。目前,以太坊是区块链世界里生态建设最好的底层公链。本篇将以通俗易懂的方式介绍以太坊开发中涉及到的相关概念,带领大家轻松...
  • 以太坊怎么购买,如何在交易平台上购买以太坊  近两年火遍全球的以太坊、比特币等虚拟货币,在2019年依然备受投资者的关注,尤其虚拟币合约交易的出现,为这个市场带来了新的活力,也为投资者提供了更安全简单的...
  • 以太坊是什么? 以太坊是一个全新开放的区块链平台,它允许任何人在平台中建立和使用通过区块链技术运行的...在以太坊平台上创立新的应用十分简便,随着Homestead的发布,任何人都可以安全地使用该平台上的应用。
  • 想知道更多学习区块链的...在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太坊的整个生态。目前,以太坊是区块链世界里生态建设最好的底层公链。本篇将以通俗易懂的方式介绍以太坊开发中涉及...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 21,908
精华内容 8,763
关键字:

以太坊平台