通过Geth搭建私有以太坊网络
为了进一步了解以太坊区块链网络的工作方式和运行原理,笔者通过官方软件Geth搭建了私有以太坊网络fantasynetwork:首先通过VMware Workstation创建基础Ubuntu实验平台,再安装Golang、Geth等依赖环境;其次使用puppeth工具生成私网的配置文件genesis.... ... »
为了进一步了解以太坊区块链网络的工作方式和运行原理,笔者通过官方软件Geth搭建了私有以太坊网络fantasynetwork:首先通过VMware Workstation创建基础Ubuntu实验平台,再安装Golang、Geth等依赖环境;其次使用puppeth工具生成私网的配置文件genesis.... ... »
在小狐狸钱包(MetaMask)日常使用中,有一个细节可能很少人注意到,就是无论你登入什么网站,或者需要跟任何项目签订智能合约都要授权的步骤,这其中就会给黑客留下很多空子,特别是将一个Token用智能合约托管给项目方的时候,这时项目方是拥有操作你账户中该Token权限的权力的,那么怎么才能取消跟他们 ... »
1.账号 账号在以太坊中扮演着核心的角色.以太坊共有两种账号类型: 外部账号( EOA) 和合约账号. 在这里我们先重点关注外部账号,简称账号.合约账号简称合约,合约账户在合约章节中详细介绍. 外部账户和合约账户都是账户的通用概念,这些账户其实都是状态对象.外部账户的余额就是外部账户的一个状态对象,合约账户的状态除了有余额还有合约存储. 所有账户的状态都是以太坊网络的状态,以太坊网络的状态 »
区块存储 区块(Block)是以太坊的核心数据结构之一,Block包含Header和Body两部分。区块的存储是由leveldb完成的,leveldb的数据是以键值对存储的。 // BlockChain 表示了一个规范的链,这个链通过一个包含了创世区块的数据库指定. BlockChain管理了链的插入,还原,重建等操作. //插入一个区块需要通过一系列指定的规则指定的两阶段的验证器. // 使用P »
以太坊 geth 客户端提供自带的交互接口即 web3j ,来控制节点的信息操作。到实际开发中,不论是采用 Java 版的 web3j,还是 Python 版的 web3j,其实关系就不是很大了。 web3 js :https://web3js.readthedocs.io/en/v2.0.0-alpha/ java-web3j:https://docs.web3j.io/getting_star »
目前以太坊客户端支持8种语言的客户端,这篇博客就简单介绍一下每个客户端的编程语言及客户端地址。 go-ethereum 语言:Go 简介:官方推荐,开发使用最多 地址:https://github.com/ethereum/go-ethereum cpp-ethereum 语言:C++ 地址:https://github.com/ethereum/cpp-ethereum pyethapp »
一、为什么用到私有链? 在以太坊的共有链上部署智能合约、发起交易需要花费以太币。而通过修改配置,可以在本机搭建一套以太坊私有链,因为与公有链没关系,既不用同步公有链庞大的数据,也不用花钱购买以太币,很 »
近期在区块链的热潮推动下,我开始研究区块链技术,尤其是智能合约。可编程式的智能合约龙头老大非以太坊莫属了,其他的合约平台如 hyperledger,EOS 相对来说没以太坊成熟,以后陆续在研究。好了,废话不多说了,开始以太坊私有链搭建。 一.geth,mist 客户端下载 1.这里我给大家介绍下,以太坊客户端,以太坊客户端主要分成两类。一个是后台命令行客户端,如:geth(go语言), »
以太坊客户端geth的基本操作命令搭建了私有链环境之后,整理了一下客户端的一些基本的操作命令: 启动命令重复上篇博客步骤,先将区块链客户端启动,命令如下: geth –datadir “%cd%\chain” console 看到启动页面之后,新开启一个终端,并执行一下命令,并把日志输出到文本文件当中: geth --dev console 2>> file_to_log_output »
Blockchain is one of the buzzwords in IT world during some last months. This term is related to cryptocurrencies, and was created together with Bitcoins. It is decentralized, immutable data structure »
一、初始化项目 mkdir helloworld cd helloworld truffle init 新建一个文件夹,使用truffle init进行初始化,有时候会连接不上,多试几次就好了。 将文件夹使用ftp下载到本地,文件目录如下: 文件目录解释如下: contract/ - Truffle默认的合约文件存放地址。 migrations/ - 存放发布脚本文件 test/ »
昨天 »
一、什么是WaffleWaffle是什么呢?我们直接看其文档上的介绍: Waffle is a library for writing and testing smart contracts. Sweeter, simpler and faster than Truffle. Works with ethers-js. 大致意思为,它是一个编写和测试(以太坊上)智能合约的库,比Truffl »
区块链技术从1.0时代以比特币为代表的数字化支付;到2.0时代以太坊为代表,数字支付和智能合约相结合;至今3.0时代,超出金融领域,为各行各业提出去中心化解决方法。 国家也提出以联盟链为发展方向进军区块链世界。 区块链所需要的环境配置好以后,接下来内容均为个人开发记录,仅供参考。(geth 客户端、web3j.py 交互、python开发使用) 初始化创世区块 1 { 2 "confi »
以太坊虚拟机算术运算指令EVM总共定义了11条算术运算指令,见下表: 这些指令从栈顶弹出两到三个元素,进行相应计算,然后把结果推入栈顶。参与计算的元素和结果均被解释为按二的补码编码的整数。如果计算结果(假设为x)溢出(超出2^256),则最终的结果x’取值x % 2^256(%表示取模运算,^表示指数运算)。 下面是算术运算指令的操作码分布图: ADD、MUL、SUB、DIV、SDIV、 »
以太坊go-ethereum签名部分源码解析 golang标准库里的crypto/ecdsa椭圆曲线加密算法所提供的函数有: ecdsa.PublicKey结构体通过持有一个elliptic,Curve接口的实现体,可以提供椭圆曲线的所有属性,和相关操作;PublicKey的成员(X,Y),对应于算法理论中公钥的坐标。 func GenerateKey(c elliptic.Curve, »
比特币系统:基于交易 以太坊:基于账户(160位,即40位16进制数),对与double spending attack有天然防御作用,不用说明币的来源 账户: 1)外部账户:账户余额(blance) »
c#实战开发:用.net core开发一个简单的Web以太坊钱包 (六) c#实战开发:以太坊Geth 命令发布智能合约 (五) c#实战开发:以太坊Geth 常用命令 (四) c#实战开发:以太坊钱包快速同步区块和钱包卡死解决方案 (三) c#实战开发:以太坊钱包对接私链 (二) c#实战开发:以太坊私链搭建(一) 首先以太坊默认的快速同步模式 我们需要先设置当前同步模式内存大小512-2048 »
Token开发步骤 一、准备工具1.安装以太坊brew tap ethereum/ethereumbrew install ethereum2.node:brew install nodejs3.安装依赖库:npm install -g ganache-cli web3 solc truffle truffle-contract zeppelin-solidity4.运行ganache-cli, »