译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
Optimism的OptimisticRollup主网发布在即!我们在热切的期待中,因此我们为Optimisim的早期参与者准备了一个scaffold-eth的专门分支,脚手架包含以下内容:
运行本地链(L1)与OptimisticRollup(L2)。
L1和L2交互
在L1和L2之间移动ETH
在L2部署智能合约
创建自己的ERC20代币桥接!
这些工作仍在进行中:这是在一个全新的协议上的全新的构建方式,所以预计一切都会发展和变化:),欢迎反馈!
如果你想直奔主题,代码在这里6。
关于Optimism的Rollup是如何工作的,其他人已经写了更详细的。这篇文章的重点是我们可以在乐观的以太坊上做什么,如何运行和开发...
我们开始吧!
运行一个具有Rollup的本地链
你需要安装Docker!
在本地几条链,让他们互相交互,不是件容易的事。值得庆幸的是,Optimism团队提供了一个开箱即用的集成仓库,包含了运行所需的六个Docker容器。这是local-optimism分支的一部分,作为Git子模块提供。当你把repo拉下来的时候,你需要启动&更新子模块,然后就是一个命令就可以把整个东西创建起来。
cddocker/optimism-integration&&makeup
img启动并运行
有点像飞船起飞的感觉!
看日志可以很实际的感受到Optimism的工作原理--首先初始化一个L1链,并部署Optimism核心合约,然后初始化几个在L1和L2之间传递信息服务,最后启动L2geth实现。
动态 | Compound 推出为 DeFi 创造盈利模式的复合代币 dToken:加密借贷平台 Compound 宣布将于本月推出新的智能合约系统 dTokens,dToken 是基于其代币化借贷接口 cToken 开发的 Wrapper Token (复合代币),是基于 Dai 或 USD 计价的稳定币。 Compound 表示,推出 dToken 是完成未来路线图上包括增强支付隐私和可拓展解决方案的的重要先决条件,此举措旨在创造 Compound 的业务模式,以继续构建将 DeFi 推向主流的创新功能。[2020/2/7]
如果一切顺利,我们就可以开始了!
Rollup与本地链交互
Optimism实现的真正优势之一是与EVM的兼容性--在很多方面,它就像改变RPCURL和chainID一样简单。
l1Local:{rpc:"http://localhost:9545",chainId:31337}l2Local:{rpc:"http://localhost:9545",chainId:420}l2Kovan:{rpc:"https://kovan.optimism.io",chainId:69}
当然,也有一些需要考虑的差异,这里让我们边走边讲。
从用户和开发者的角度来看,需要考虑的主要问题之一是如何处理L1和L2网络,哪些要呈现给用户,以及如何确保钱包连接到正确的网络。
使用自定义网络API,可以很好的解决后一个问题(在这个分支中还没有实现--欢迎PR!)
在这个分支中,我们实例化了两个provider(提供者)和两个singer(签名者),因为我们要支持与本地链和Rollup的交互。
1_vF4ynkFGTcdgvDm77hEC3g一个钱包有两个余额!
在L1和L2之间转移ETH
动态 | Brave 浏览器整合 Yubico 产品 支持为 iOS 设备提供安全密钥:隐私保护浏览器 Brave 宣布已支持身份验证硬件服务商 Yubico 的最新产品 YubiKey 5Ci,目前已同时支持在 iPhone 及 iPad 等 iOS 设备上提供安全密钥以防止网络钓鱼。Brave 已宣布和 Yubico 合作,此次整合新产品将 YubiKey 的支持带到 Brave iOS 客户端。安全密钥可以同时对网站和登录人员进行身份验证。[2019/8/21]
本地Rollup和目前在Kovan上的部署不需要任何交易费用,但这将是主网的一个关键过渡。我们有一个简单的OptimisticETHBridge组件,它可以显示用户在L1和L2的余额,并允许他们存款到L2或从L2取款。
1_iUEdefxX0UwlELeOwG4GdgL1/L2桥
存款是指在L1ETHGateway合约上调用_payable_deposit函数,存入你想存入的数量。该合约作为Optimism初始化的一部分进行部署,在本地设置上的部署地址总是相同的,但在Kovan上是不同的。
在Optimism上,没有原生的ETH,ETH只是一个ERC20的代币,提现是转入到ERC20合约中。
awaitl2Tx(L2ETHGatewayContract.withdraw(parseEther(values.amount.toString())))
该组件还为L1和L2内置了简单的Send功能。
Optimism团队短期内正在研究的难题:
目前L2还不支持用{value}发送的交易,所以我们实例化一个ethers.js合约,并调用transfer。
目前在L2上实现的geth版本并不像在L1上那样抛出transactionResponse,需要wait()等待transactionReceipt。在scaffold-eth中,这意味着要给我们的Transactorhelper增加一行。
量子链创始人帅初:区块链不是为 TPS而生的,去中心化的程度和TPS 基本上是一个不可调和的矛盾:日前,量子链创始人帅初谈到对 TPS的看法时表示,区块链不是为 TPS的而生的,如果我们需要更快的TPS,现有的银行系统和支付宝和微信支付,都是一个更好的选择。 另外去中心化的程度和TPS 基本上是一个不可调和的矛盾,很多TPS的取代是以牺牲网络 去中心化的程度来获得,单纯为了追求更高的TPS,反而是没有意义的,特别是当网络如果只有几十个大的全节点之后再高的TPS,很多时候意义也不大。 TPS对具体的事物是有意义的,但和加密货币背后的理念需要一个折中和平衡。 因为传统IT技术对分布式系统,已经有几十年的研究,所有基于BFT和各种变种的算法,都可以获得很高的TPS,但是其中心化程度都比较高,普通人在网络中是无法获得对等的权利的。 如果无法参与网络的监督和验证,其实使用现有金融服务也绰绰有余。[2018/2/17]
result=awaitsigner.sendTransaction(tx);awaitresult.wait()
在Optimism上进行部署合约。
Optimism的主要关注点之一是转移性,从EVM到OVM。因此,我们只需要做一些小的改动,就可以使我们的现有scaffold-eth上的合约在L2上可行--我们只需要在我们的hardhat配置中导入Optimism编译器17,然后使用Optimismethersvariant来部署我们的合约。
const{l2ethers}=require("hardhat");...contractArtifacts=awaitl2ethers.getContractFactory(contractName,signerProvider);constdeployed=awaitcontractArtifacts.deploy(...contractArgs,overrides);awaitdeployed.deployTransaction.wait()
浙商证券分析师认为 区块链领域短期内还看不到大体量收入的产生:“区块链技术是一种全新的技术,各大机构仍然处于研究阶段,大规模落地应用尚需时日。” 浙商证券分析师杨云表示,区块链领域短期内还看不到大体量收入的产生。[2018/1/23]
请注意前面提到的wait()!
有一些细微的差别--我们不能使用内置的Hardhat网络,必须实例化我们自己的提供者和签名者。
我们不需要对合约做任何修改,尽管可能不一定是这样,例如对.balance的调用会在编译时抛出一个错误。一般来说,编译器的错误对追踪问题都很有帮助。
我们确实做了一些改动,在Optimism上出块时间block.timestamp确实存在,但却是对L1时间的引用。有两件动作会更新了L2上的时间:从L1到L2的桥接信息,以及按设定频率(心跳)定期更新L2时间。
1_dCfswNwv6CKF4PXboiR_Hg
这确实给处理L2上的时间时产生了一些有趣的挑战,因为获取的block.timestamp总是过去的。以后还会有更多的思考...
在一个非常实际的问题上,这意味着在本地开发中,你需要定期在本地链上进行交易,以保持你的L2时间的更新!
在Optimism的桥接:古英语ERC20
虽然对于很多使用场景来说,使用他人部署的ETH桥和代币桥可以满足大部分L1到L2桥接的需求,但我们也想了解如何将自己的L1ERC20转移到L2,以及如何返回。
幸运的是,Optimism团队在他们合约包提供了一些参考合约,再加上有用的教程,所以我们能够把它们拉到我们的分支中,我们将部署三个合约:
ERC20.sol:在L1上,这是真理之源----一个简单的ERC20实现,有一个mint(value)函数,允许任何人自己铸造一些代币。
俄罗斯区块链与加密货币负责人认为 比特币年底有望涨至1.4万美元:据报道,俄罗斯区块链与加密协会(RACIB)负责人表示,比特币未来还会维持飙涨趋势,年底有望升至1.4万美元,明年可突破2万美元大关。[2017/12/1]
L1ERC20Gateway.sol:也是在L1上,这允许我们向L2存款,同时锁定代币。
L2DepositedERC20.sol:该合约部署在L2上,它也是一个ERC20的实现,当新的代币从L1存入时,它就将其铸成新的代币,当它们被提取时,就将其销毁。
部署顺序很重要,因为L1ERC20Gateway需要知道ERC20地址和L2DepositedERC20地址,然后需要通过init()与L1ERC20Gateway地址激活L2DepositedERC20合约,完成连接。我们部署的合约分别与L1Messenger和L2Messenger进行通信,以进行存款和提款。
部署完成后,我们就可以测试桥接功能了,可以在前端应用中测试,也可以在直接在部署脚本中测试。
l2l1桥接测试
L1ERC20Gateway必须经过批准才能转移代币,才能启动整个事情。
目前有在进行一个想法,希望有一个通用的用于ERC20代币的桥接,这样的桥接在生产中可能不需要,但它仍然是一个有益的概念验证,以方便本地开发。
下一步
显然,下一步的关键是上测试网local-optimism分支包含了去Kovan部署Optimism的配置选项,就像更新App.js中的selectedNetwork,以及从Hardhat部署时的defaultNetwork或--network参数一样简单。
但更大的问题是,在Optimism上构建什么!
我们将在未来几周内发布更多的试运行、概念验证,甚至可能是成熟的产品。欢迎关注。
如果你还没有-获取分支,那就赶快尝试一下吧。
非常感谢来自Optimism的Ben和Kevin的有益回答,以及__AustinGriffith的帮助、努力和支持!
本翻译由CellNetwork赞助支持。
来源:https://azfuller20.medium.com/optimism-scaffold-eth-draft-b76d3e6849e8
参考资料
登链翻译计划:https://github.com/lbc-team/Pioneer
翻译小组:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
Optimism的OptimisticRollup:https://optimism.io/
scaffold-eth:https://github.com/austintgriffith/scaffold-eth/tree/local-optimism
代码在这里:https://github.com/austintgriffith/scaffold-eth/tree/local-optimism
Optimism的Rollup是如何工作的:https://research.paradigm.xyz/optimism
Docker:https://www.docker.com/products/docker-desktop
开箱即用的集成仓库:https://github.com/ethereum-optimism/optimism-integration
Git子模块:https://git-scm.com/book/en/v2/Git-Tools-Submodules
Optimism核心合约:https://community.optimism.io/docs/protocol/protocol.html#system-overview
一些需要考虑的差异:https://community.optimism.io/docs/protocol/evm-comparison.html#behavioral-differences
自定义网络API:https://learnblockchain.cn/article/2223
provider(提供者):https://docs.ethers.io/v5/api/providers/
singer(签名者):https://docs.ethers.io/v5/api/signer/
预部署地址:https://community.optimism.io/docs/protocol/protocol.html#predeployed-contracts
Optimism编译器:https://hardhat.org/plugins/eth-optimism-plugins-hardhat-compiler.html
Optimismethersvariant:https://hardhat.org/plugins/eth-optimism-plugins-hardhat-ethers.html
合约包:https://www.npmjs.com/package/@eth-optimism/contracts
有用的教程:https://github.com/ethereum-optimism/optimism-tutorial/tree/deposit-withdrawal
部署脚本:https://github.com/austintgriffith/scaffold-eth/blob/local-optimism/packages/hardhat/scripts/oe-deploy.js
通用的用于ERC20代币的桥接:https://github.com/ethereum-optimism/contracts/pull/257
获取分支:https://github.com/austintgriffith/scaffold-eth/tree/local-optimism
AustinGriffith:https://twitter.com/austingriffith
CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9788536.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
盘点零知识证明代表性项目:如何影响和塑造区块链生态系统?
标签:TIMOPTIIMITIMITIMONWrapped OptimusDolaimi Universaltimi币官方网站
链闻消息,据韩国当地媒体亚洲经济报道,摩根士丹利正在考虑通过Bithumb主要股东Vidente来收购Bithumb股份,目前正处于谈判阶段.
受到此前美国政府1.9万亿美元刺激计划的影响,市场预期可能会发生全球经济恶性通胀或会迫使美联储提前采取加息行动.
Uniswap新版本即将发布?当Uni遇上CellETF可能会推出什么样的未来?Uniswap新版本即将发布3月17日消息.
亲爱的用户:币安Staking平台将于2021年03月18日20:00上线IOTX高收益锁仓活动.
热点时事 随着FOMC议息会议尘埃落定,BTC日内走高4000美金,目前位于58200附近震荡.
尊敬的用户: 您好!为了给您提供更好的交易体验,火币合约平台将于新加坡时间2021年3月22日18:00-18:15进行系统升级。此次升级时长预计15分钟.