草庐IT

Uniswap V1——合约源码分析

        下面会对UniswapV1版本的链上合约源码进行解读分析,主要是看Uniswap的各种功能是如何实现的。V1版本使用的不是Solidity而是Vyper语言编写,语言本身不关键,主要看实现逻辑和核心思路。        UniswapV1版本比较简单,总共两份链上合约,分别是uniswap_exchange.vy代币兑换合约和uniswap_factory.vy工厂合约,其中兑换合约的功能就是实现基本的代币兑换操作,工厂合约的功能就是产生不同代币的代币兑换合约。        要看懂代码的操作目的就得明白每个功能的设计思想,因此在看源码前推荐可以先去看UniswapV1版本的白

【区块链 | 智能合约】Ethereum源代码(2)- go-ethereum 客户端入口代码和Node分析

一、gethmakefile以及编译逻辑上篇提到用makegeth来编译geth客户端。我们来看看makefile做了什么:.PHONY:gethandroidiosevmalltestcleanGOBIN=./build/binGO?=latestGORUN=envGO111MODULE=ongorungeth: $(GORUN)build/ci.goinstall./cmd/geth @echo"Donebuilding." @echo"Run\"$(GOBIN)/geth\"tolaunchgeth."all: $(GORUN)build/ci.goinstall执行了ci.gofunc

智能合约及其web3共识机制

 目录什么是共识?什么是共识机制?共识机制的目标为什么需要共识机制?如何评价一个共识机制的优劣:共识机制分类PoW(ProofofWork)工作量证明:多劳多得PoS(ProofofStake)股权证明算法:持有越多,获得越多优点缺点如何配置web3智能合约测试 什么是共识?我们所说的共识,是指达成了广泛的一致。比如,一群人去吃晚饭,如果他们对于提议“吃某火锅”没有任何异议,那么就可以说共识达成了。如果存在异议,那么他们就必须通过某种方法决定吃什么。这群人就会分开。什么是共识机制?区块链要成为一个难以攻破的、公开的、不可篡改数据记录的去中心化诚实可信系统,需要在尽可能短的时间内做到分布式数据记

区块链全国技能大赛第(二)套 供应链金融智能合约

本文展示该套智能合约的功能应用合约提供了添加公司、添加银行、获取公司信息、获取银行信息、获取所有公司地址、获取所有银行地址以及获取数字发票收据的功能。在存证交易方面,合约实现了三种交易类型:银行向公司交易、公司与公司交易和公司向银行交易。每种交易类型都包括了发送方地址、接受方地址、交易金额和存证类型等信息。在每笔交易完成后,会生成一个对应的数字发票收据,并更新相关账户的资产余额。部署成功总页面如下: 实体说明 在本合约中发票类型和交易类型如下下面将一步步演示各功能1.监管者信息部署及查询superviosrlns记住这个地址ox5b3.....2.添加银行和公司信息(添加银行需要使用监管者0x

golang调用智能合约,获取合约函数的返回值

如果不是只读取数据的合约函数,需要异步的执行,因此并不能直接获取到合约函数的返回值,需要等到交易执行完毕,得到确认后才能获取到合约函数的返回值。而且合约函数返回值一般是通过事件日志获取到的。这里给出一个例子来展示我是如何获取合约函数返回值的。我使用的以太坊版本为:github.com/ethereum/go-ethereumv1.13.0solidity合约://SPDX-License-Identifier:MITpragmasolidity^0.8.0;contractStoreString{eventItemSetStr(bytes32indexedhash,stringkey,stri

智能合约介绍

介绍智能合约是区块链实现可编程化的重要工具;在比特币时期,脚本仅限于描述交易得到内容和状态;随着智能合约的出现可以定义任何数据对象的状态擦欧总——>使其成为网络上的“法律条文”或者“商业共识”。相当于网络中的道德准则,不被第三方操控,公道在人心特点智能合约是基于事件驱动有状态,可部署共享的分布式数据库上的计算机程序,多用IF-THEN语句。狭义来说,智能合约是设计相关商业逻辑和算法的程序代码,把人、法律和网络的复杂关系代码化;广义来说,智能合约是一种可以实现自我执行和自我验证的计算机协议。乍一看,与数据库中的触发器颇为相似。智能合约的生命周期智能合约的全生命周期包括:合约生成、合约发布和合约执

web3:智能合约浏览器版本的 IDE - remix 使用教程

如果你是一位web3行业的从业者,那么智能合约一定是要接触的,这里我们就智能合约浏览器版本的IDE-remix来介绍一下,及简单的使用操作目录Remix简介官方网址语言设置使用编辑合约编译合约部署合约测试验证Remix简介Remix是一个开源的Solidity智能合约开发环境,是一款浏览器版本的IDE,提供基本的编译、部署至本地或测试网络、执行合约等功能。Solidity是以太坊Ethereum官方设计和支持的开发语言,专门用于编写智能合约。我们在上面编辑测试我们的智能合约,尤其对于新手来说是一个非常棒的编辑工具。因为官方文档内容比较多,并且是英文的,很多内容我们还不需要了解,所以这里只介绍一

Table合约自写工具类详解

Table合约这是一个关于Table的Solidity智能合约。该智能合约定义了一些重要的实体和方法,可以用于创建、操作和管理表格数据。首先是TableFactory合约,用于创建和打开表格。其中包含:openTable(string)方法用于打开一个已经存在的表格并返回该表格实例TablecreateTable(string,string,string)方法用于创建一个新的表格,并需要传入三个参数:表格名、主键名、存储引擎类型接下来是一个Condition合约,用于设置查询条件。其中包含:等于(Equal)不等于(NotEqual)大于(GreaterThan)大于等于(GreaterorE

数字人民币又一里程碑,中国银行将智能合约技术应用于小学教育

中国银行推出了一项计划,利用其数字人民币中的智能合约进行小学教育。中国银行四川分行与成都教育和金融部门合作,启动了一个数字人民币项目,允许居住在中国四川省成都市的父母使用数字人民币中央银行数字货币为他们的孩子参加课后或课外课程。为了注册该计划,父母向私立教育实体支付一系列课程的押金,然后智能合约按比例将每节课与押金绑定。如果学生错过了一节课,e-CNY付款将通过智能合约自动记入他们的帐户。“在数字人民币中使用智能合约取代了监管机构监控家长与私立教育实体之间支付交易的角色,”中国银行在一份声明中表示。智能合约通常用于区块链网络上的加密空间,并允许用户使用加密资产购买和销售产品或服务,而无需第三方

6.DApp-用Web3实现前端与智能合约的交互

题记        用Web3实现前端与智能合约的交互,以下是操作流程和代码。准备ganache环境    文章地址:4.DApp-MetaMask怎么连接本地Ganache-CSDN博客 准备智能合约     文章地址: 2.DApp-编写和运行solidity智能合约-CSDN博客编写index.html文件          NameContractDemo        //检查Metamask是否已安装  if(typeofwindow.ethereum!=='undefined'){  console.log('Metamask已安装');  }  //设置Web3.js提供者为M