Ⅰ 「官方」搭建Web3:Filecoin与以太坊携手共进
这是Protocol Labs创始人Juan Benet在EthCC 2021上的演讲概要,查看完整内容:
https://www.bilibili.com/video/BV1eb4y1r7E1
Filecoin网络是面向生态的,它与Protocol Labs搭建模块化解决方案的倾向是一致的。因为它本来就是设计给其他人使用,所以Filecoin在Web3领域的其他栈、应用和生态里如鱼得水。自从其在2020年10月的启动开始,Filecoin已经增长到超过8 exbibytes的可用存储空间,有超过400个项目进入了这个生态。以太坊就是一个能持续证明其可协作性和共同利益的生态系统。
Filecoin + 以太坊
>>>>Filecoin和以太坊虚拟机(EVM)
Filecoin生态意识到网络支持智能合约的好处。最初,开发者社区相信架设在以太坊和Filecoin之间的桥服务足够在Filecoin上支持智能合约了。不过,通过桥来使用智能合约是很笨重的方式,相比于直接在以太坊实现智能合约的功能和可组合性更是不足。有一个提议是在Filecoin上加入以太坊虚拟机(EVM),从而在存储层启用对智能合约的支持,以及为这两个生态的结合提供更多机会。
>>>>开发者工具和资源
Fleek:让用户能为去中心化网络架设网站、存储和分发文件及开发dapp。Fleek可以让每一个人(从专业的开发者到日常的互联网用户)更容易以去中心化的方式创建app和存储文件,从而加速去中心化网络的采用率。Fleek可以在Filecoin上进行自动化存档,并通过ENS(以太坊域名服务)这样的应用来利用以太坊的生态系统。
https://fleek.co/
Web3.Storage:是一个让开发者在Filecoin去中心化存储网络上存取数据的简单接口。Web3.Storage为开发者(包括以太坊dapp开发者)提供了搭建应用的简单方式,这些应用可以带有冗余的去中心化的存储以及安全的内容寻址数据。
http://web3.storage/
PowerLoom:以去中心化的方式将链上和链下数据聚合起来以生成带有密码学证明的快照。它旨在通过一个丰富的节点和利益相关者生态系统(他们被激励参与到协议里)来搭建信任,并按需提供洞见。PowerLoom特别适用于以太坊DeFi这样的生态,这类系统是非常复杂的,而且需要基于验证的信任。
https://powerloom.io/
>>>>DeFi应用
SecuredFinance(https://secured-finance.com/)是一个综合平台,整合了基于智能合约的点对点固定利率贷款、抵押品管理服务、货币间交易和其他类型的利率产品。Secured Finance的协议是去中心化的点对点金融协议,提供了由以太坊智能合约赋能的区块链上的中后台银行业务。Secured Finance可以满足Filecoin网络内的需求,它提供的解决方案能够满足Filecoin存储提供者对FIL贷款的强烈需求。
>>>>数据市场
OceanProtocol(https://t.co/misApE3ggc?amp=1)是一个在Filecoin上搭建的数据市场。Ocean的数据token(data tokens)是以太坊ERC-20 token,可以轻易地用于发布和消费数据服务。如果你有1个数据token,你可以访问一个特定的数据服务。Ocean market是一个专门为数据服务的去中心化交易所,它分叉了一个Balancer AMM(自动化做市商)来降低gas成本。在这个市场中,用户可以对数据进行发布、购买、销售、消费和stake操作。
通过Filecoin,用户可以利用Ocean来发起自己的Filecoin数据市场,或创建一个Filecoin dataDAO或指数基金。通过Ocean Protocol的工具和Filecoin的去中心化存储数据库,我们正见证新生的开放数据经济。
>>>>视频应用
LivePeer:是一个去中心化的在线视频流媒体基础设施,由以太坊区块链确保安全性。将Filecoin和IPFS结合提供存储和内容分发功能后,去中心化视频应用就成为可能了。
https://livepeer.org/
Voodfy:正为私有的视频架设服务提供去中心化工具。这是一个多功能的安全流媒体解决方案,让用户能完全控制自己的内容,这包括了访问权的设定以及变现的方式。它利用了Livepeer、Ethereum、Textile Powergate和Filecoin.
https://voodfy.com/
VideoCoin:正搭建一个能可靠地创建、存储和交易基于视频的NFT解决方案,它可以绕过在以太坊上存储实际内容时固有的复杂性和费用。VideoCoin正将其去中心化视频处理网络与Filecoin整合起来,以搭建首个专门为创建和交易视频NFT服务的平台。这个平台是新生的全球数字收藏品市场急需的一部分。
https://videocoin.io/
>>>>NFT
nft.storage(http://nft.storage/)是一个由Protocol Labs实验室和Pinata支持的服务,它专门为存储NFT数据而设计。
nft.storage让开发者通过内容寻址和去中心化存储来保护其NFT资产和相关的元数据,确保所有的NFT遵循最佳实践以实现长期的可访问性。
未来的使用场景
随着Filecoin和Ethereum生态系统的成长和重叠,会出现更多的新生用例和开发者机会。一些可以进行创新的用例包括:
>>>>可组合的DeFIL
将存储和Defi的世界结合可以产生一些机会。人们可以将市场订单(如要价、出价和交易)带到一个去中心化交易所上,以观察市场是如何评判这些订单的价值的。通过这样的能力,生态系统可以开始想象硬件期货(hardware futures)和时空期货(spacetime futures)等的出现。
>>>>数据丰富的NFT
NFT将会越来越复杂,而Web3社区需要 探索 采用数据丰富(data-rich)的NFT的方式。VideoCoin已经将其视频处理引擎与Filecoin连接起来,以结合以太坊对NFT的支持能力及Filecoin的存储能力。像VideoCoin这样的工具可以用来创建一类新型的NFT,如短电影、视频片段和完整长度的专题特写。
>>>>按观看次数支付的媒体
通过在Filecoin上存储的信息,我们可以利用以太坊的token支持能力去创建由token保护的页面和媒体(文章、电影和音乐等)。我们可以复制Web2时代的按观看次数支付模式,而无需复制数据和广告模型。
这只是一个开始!Filecoin和以太坊生态有长期的协作 历史 和机会,未来可期。
Ⅱ web3.0鎬庝箞鍏ラ棬
web3.0鍏ラ棬鏂规硶鏄锛氫簡瑙e尯鍧楅摼鎶鏈銆佸︿範Solidity缂栫▼璇瑷銆佸垱寤轰互澶鍧婇挶鍖呫佸弬涓庝互澶鍧婄綉缁溿佺爺绌禗App寮鍙戙
1銆佷簡瑙e尯鍧楅摼鎶鏈锛歐eb3.0鏄寤虹珛鍦ㄥ尯鍧楅摼鎶鏈涔嬩笂鐨勶紝鍥犳ら渶瑕佸厛浜嗚В鍖哄潡閾剧殑鍩烘湰鍘熺悊銆佸姞瀵嗙畻娉曞拰鏅鸿兘鍚堢害绛夋傚康銆
2銆佸︿範Solidity缂栫▼璇瑷锛歋olidity鏄涓绉嶄笓闂ㄧ敤浜庣紪鍐欐櫤鑳藉悎绾︾殑缂栫▼璇瑷锛屽畠鏄浠ュお鍧婂钩鍙颁笂鐨勪富瑕佺紪绋嬭瑷銆傚彲浠ラ氳繃鍦ㄧ嚎鏁欑▼銆佷功绫嶆垨鑰呭弬鍔犲煿璁鐝鏉ュ︿範Solidity缂栫▼璇瑷銆
3銆佸垱寤轰互澶鍧婇挶鍖咃細浠ュお鍧婇挶鍖呮槸涓涓瀛樺偍鏁板瓧璐у竵鍜岀侀挜鐨勮蒋浠剁▼搴忥紝鐢ㄤ簬涓庝互澶鍧婄綉缁滀氦浜掋傚彲浠ヤ娇鐢∕etaMask銆乀rust Wallet绛夊父瑙佺殑浠ュお鍧婇挶鍖呫
4銆佸弬涓庝互澶鍧婄綉缁滐細閫氳繃鎼寤轰釜浜鸿妭鐐规垨鑰呬娇鐢ㄤ竴浜涚涓夋柟骞冲彴锛屽彲浠ュ弬涓庡埌浠ュお鍧婄綉缁滀腑銆傚彲浠ュ湪鏈鍦版祴璇曟櫤鑳藉悎绾﹀拰DApp銆
5銆佺爺绌禗App寮鍙戯細DApp鏄鍩轰簬鍖哄潡閾炬妧鏈鐨勫簲鐢ㄧ▼搴忥紝閫氬父鍖呮嫭鏅鸿兘鍚堢害鍜屽幓涓蹇冨寲鐨勫簲鐢ㄧ▼搴忋傚彲浠ラ氳繃闃呰荤浉鍏虫枃妗c佸弬鍔犲紑鍙戣呯ぞ鍖虹瓑鏂瑰紡鏉ュ︿範鍜岀爺绌禗App寮鍙戙
Web3.0鐗硅壊锛
1銆佸幓涓蹇冨寲锛歐eb3.0鏄寤虹珛鍦ㄥ尯鍧楅摼鎶鏈涔嬩笂鐨勶紝鍏锋湁鍘讳腑蹇冨寲鐨勭壒鐐广傝繖鎰忓懗鐫鏁版嵁鍜屽簲鐢ㄧ▼搴忎笉鏄鐢卞崟涓鐨勪腑蹇冩帶鍒讹紝鑰屾槸鐢辩綉缁滀腑鐨勬墍鏈夎妭鐐瑰叡鍚岀淮鎶ゅ拰绠$悊銆
2銆佸畨鍏ㄦч珮锛歐eb3.0浣跨敤瀵嗙爜瀛︽妧鏈鍜屾櫤鑳藉悎绾︽潵纭淇濇暟鎹鐨勫畨鍏ㄦу拰闅愮佹с傝繖浣垮緱Web3.0鏇村姞瀹夊叏锛屽彲浠ユ湁鏁堝湴闃叉㈤粦瀹㈡敾鍑诲拰鏁版嵁娉勯湶绛夊畨鍏ㄩ棶棰樸
3銆佸彲鎵╁睍鎬у己锛歐eb3.0鍏锋湁鍙鎵╁睍鎬э紝鍙浠ュ勭悊澶ч噺鐨勬暟鎹鍜屼氦鏄撱傝繖鏄鍥犱负Web3.0浣跨敤浜嗗垎甯冨紡缃戠粶鍜屽叡璇嗙畻娉曪紝鍙浠ュ悓鏃跺勭悊澶氫釜浜ゆ槗锛岃屼笉浼氬嚭鐜版嫢鍫靛拰寤惰繜绛夐棶棰樸
4銆侀忔槑搴﹂珮锛歐eb3.0浣跨敤鍖哄潡閾炬妧鏈鏉ヨ板綍鎵鏈夌殑浜ゆ槗鍜屾暟鎹锛岃繖浣垮緱鏁版嵁鐨勯忔槑搴﹂潪甯搁珮銆傝繖涔熶娇寰梂eb3.0鏇村姞鍏姝e拰鍙淇★紝鍥犱负浠讳綍浜洪兘鍙浠ユ煡鐪嬪拰楠岃瘉杩欎簺鏁版嵁銆
Ⅲ 【ETH钱包开发03】web3j转账ETH
在之前的文章中,讲解了创建、导出、导入钱包。
【ETH钱包开发01】创建、导出钱包
【ETH钱包开发02】导入钱包
本文主要讲解以太坊转账相关的一些知识。交易分为ETH转账和ERC-20 Token转账,本篇先讲一下ETH转账。
1、解锁账户发起交易。钱包keyStore文件保存在geth节点上,用户发起交易需要解锁账户,适用于中心化的交易所。
2、钱包文件离线签名发起交易。钱包keyStore文件保存在本地,用户使用密码+keystore的方式做离线交易签名来发起交易,适用于dapp,比如钱包。
本文主要讲一下第二种方式,也就是钱包离线签名转账的方式。
交易流程
1、通过keystore加载转账所需的凭证Credentials
2、创建一笔交易RawTransaction
3、使用Credentials对象对交易签名
4、发起交易
注意以下几点:
1、Credentials
这里,我是通过获取私钥的方式来加载 Credentials
还有另外一种方式,通过密码+钱包文件keystore方式来加载 Credentials
2、nonce
nonce是指发起交易的账户下的交易笔数,每一个账户nonce都是从0开始,当nonce为0的交易处理完之后,才会处理nonce为1的交易,并依次加1的交易才会被处理。
可以通过 eth_gettransactioncount 获取nonce
3、gasPrice和gasLimit
交易手续费由gasPrice 和gasLimit来决定,实际花费的交易手续费是 gasUsed * gasPrice 。所有这两个值你可以自定义,也可以使用系统参数获取当前两个值
关于 gas ,你可以参考我之前的一篇文章。
以太坊(ETH)GAS详解
gasPrice和gasLimit影响的是转账的速度,如果gas过低,矿工会最后才打包你的交易。在app中,通常给定一个默认值,并且允许用户自己选择手续费。
如果不需要自定义的话,还有一种方式来获取。获取以太坊网络最新一笔交易的 gasPrice ,转账的话, gasLimit 一般设置为21000就可以了。
Web3j还提供另外一种简单的方式来转账以太币,这种方式的好处是不需要管理nonce,不需要设置gasPrice和gasLimit,会自动获取最新一笔交易的gasPrice,gasLimit 为21000(转账一般设置成这个值就够用了)。
这个问题,我想是很多朋友所关心的吧。但是到目前为止,我还没有看到有讲解这方面的博客。
之前问过一些朋友,他们说可以通过区块号、区块哈希来判断,也可以通过Receipt日志来判断。但是经过我的一番尝试,只有 BlockHash 是可行的,在web3j中根据 blocknumber 和 transactionReceipt 都会报空指针异常。
原因大致是这样的:在发起一笔交易之后,会返回 txHash ,然后我们可以根据这个 txHash 去查询这笔交易相关的信息。但是刚发起交易的时候,由于手续费问题或者以太网络拥堵问题,会导致你的这笔交易还没有被矿工打包进区块,因此一开始是查不到的,通常需要几十秒甚至更长的时间才能获取到结果。我目前的解决方案是轮询的去刷 BlockHash ,一开始的时候 BlockHash 的值为0x00000000000,等到打包成功的时候就不再是0了。
这里我使用的是rxjava的方式去轮询刷的,5s刷新一次。
正常情况下,几十秒内就可以获取到区块信息了。
区块确认数=当前区块高度-交易被打包时的区块高度。
Ⅳ 以太坊如何使用web3.js或者rpc接口获取交易数据交易时间与确认数
如果要查询主网上的交易记录,可以使用etherscan。但是,如果是你自己搭建的私链,应该如何查询交易记录呢?
答案是你需要自己监听链上的日志,存到数据库里,然后在这个数据库中查询。例如:
varaddr=""
varfilter=web3.eth.filter({fromBlock:0,toBlock:'latest',address:addr});
filter.get(function(err,transactions){
transactions.forEach(function(tx){
vartxInfo=web3.eth.getTransaction(tx.transactionHash);
//这时可以将交易信息txInfo存入数据库
});
});
web3.eth.filter()用来监听链上的日志,web3.eth.getTransaction()用来提取指定交易的信息,一旦获得交易信息,就可以存入数据库供查询用了。
推荐一个实战入门,你可以看看:以太坊教程