您正在查看: Ethereum 分类下的文章

开源以太坊浏览器

1.blockscout

开源地址:https://github.com/poanetwork/blockscout

BlockScout是一个Elixir应用程序,允许用户搜索交易,查看帐户和余额,并验证整个以太坊网络上的智能合约,包括所有的叉子和侧链。

目前可用的块探测器(即Etherscan和Etherchain)是封闭系统,不能独立验证。随着以太坊侧链在私人和公共场合的不断扩散,需要透明的工具来分析和验证交易。

2.EthVM

开源地址:https://github.com/EthVM/EthVM

EthVM是一个开源的区块链浏览器,主要关注以太坊(虽然其他网络将受到支持)在MIT许可下,并以不同语言(即TypeScript,Kotlin和Solidity)的混合编写。

您可以使用EthVM作为工具来探索自定义专用网络或现有公用网络,或者作为ETL(提取,转换,加载)平台来对数据执行不同的分析。

3.etherparty/explorer

开源地址:https://github.com/etherparty/explorer

轻盈的以太坊块探险家

4.carsenk/explorer

开源地址:https://github.com/carsenk/explorer

以太坊Block Explorer基于etherparty/explorer

5.etherchain-light

开源地址:https://github.com/gobitfly/etherchain-light

Etherchain Light是一个使用NodeJS,Express和Parity构建的以太坊区块链资源管理器。它不需要外部数据库,并从后端以太坊节点即时检索所有信息。

6.toy-block-explorer

开源地址:https://github.com/curvegrid/toy-block-explorer

用Go编写的区块链资源管理器,用于了解如何构建与以太坊区块链一起使用的服务器端应用程序。

7.mini-eth-browser

开源地址:https://github.com/ismaelbej/mini-eth-browser

一个简单的以太坊块和事务探索器。由于它不使用数据库,因此某些操作很慢。

8.eth-explorer

开源地址:https://github.com/ethnamed/eth-explorer

简单的Nodejs以太坊资源管理器

9.Clixplorer

开源地址:https://github.com/Magicking/Clixplorer

10.ethereumproject / explorer

开源地址:https://github.com/ethereumproject/explorer

11. 模仿etherscan

https://github.com/bing-chou/etherscan-explorer

参考

https://www.cnblogs.com/huangenai/p/10075876.html

使用web3.js监听以太坊智能合约event

var Web3 = require("web3")

var web3;

if (typeof web3 !== 'undefined') {
    web3 = new Web3(web3.currentProvider);
} else {
    web3 = new Web3(new Web3.providers.WebsocketProvider("ws://172.17.116.158:8546"));
}

var contractAbi = [{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"proposer","type":"address"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"LogCreateProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"LogPassProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"dst","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"LogRejectProposal","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"val","type":"address"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"LogSetUnpassed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"voter","type":"address"},{"indexed":false,"internalType":"bool","name":"auth","type":"bool"},{"indexed":false,"internalType":"uint256","name":"time","type":"uint256"}],"name":"LogVote","type":"event"},{"inputs":[],"name":"MaxValidators","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MinimalStakingCoin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PROPOSAL_ADDR","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ProposalAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PunishContractAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"StakingLockPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ValidatorContractAddr","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"WithdrawProfitPeriod","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pass","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proposalLastingPeriod","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"proposals","outputs":[{"internalType":"address","name":"proposer","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"string","name":"details","type":"string"},{"internalType":"uint256","name":"createTime","type":"uint256"},{"internalType":"uint16","name":"agree","type":"uint16"},{"internalType":"uint16","name":"reject","type":"uint16"},{"internalType":"bool","name":"resultExist","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"val","type":"address"},{"internalType":"address","name":"punish","type":"address"},{"internalType":"address","name":"proposal","type":"address"}],"name":"setContracts","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"miner_","type":"address"}],"name":"setMiner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"votes","outputs":[{"internalType":"address","name":"voter","type":"address"},{"internalType":"uint256","name":"voteTime","type":"uint256"},{"internalType":"bool","name":"auth","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"vals","type":"address[]"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"string","name":"details","type":"string"}],"name":"createProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bool","name":"auth","type":"bool"}],"name":"voteProposal","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"val","type":"address"}],"name":"setUnpassed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}];

var contractaAddress = "0x000000000000000000000000000000000000F002";

MyContract = new web3.eth.Contract(contractAbi, contractaAddress);
                //console.log(MyContract.events.orderlog);

var myEvent = MyContract.events.LogCreateProposal({
        filter:{},
        fromBlock: 0
}, function(error, event){})
        .on('data', function(event){
        console.log(event); // same results as the optional callback above
})
        .on('changed', function(event){
                    // remove event from local database
        })        
    .on('error', console.error);

运行

npm init -y
npm install web3 --save
node map_event.js

测试数据

{
  address: '0x000000000000000000000000000000000000F002',
  blockNumber: 64274,
  transactionHash: '0x950203bc5d391a6b8180c5be6d290403f39fe81a8666e40b74cc3b9b094ce1a6',
  transactionIndex: 0,
  blockHash: '0x9abb16d015c49268c04909bcea414994d9bc0867dc8648b5e3dd33071d86daf5',
  logIndex: 0,
  removed: false,
  id: 'log_14a4176e',
  returnValues: Result {
    '0': '0x88437e94b8ffc61e30087ba66182c8f291e4af36d289ae299f676f014fdba411',
    '1': '0xc65dD4299C682f335d6e15e2B5774D015E01E479',
    '2': '0xc65dD4299C682f335d6e15e2B5774D015E01E479',
    '3': '1614340623',
    id: '0x88437e94b8ffc61e30087ba66182c8f291e4af36d289ae299f676f014fdba411',
    proposer: '0xc65dD4299C682f335d6e15e2B5774D015E01E479',
    dst: '0xc65dD4299C682f335d6e15e2B5774D015E01E479',
    time: '1614340623'
  },
  event: 'LogCreateProposal',
  signature: '0xc10f2f4d53a0e342536c6af3cce9c6ee25c32dbb323521ce0e1d4494a3e362e8',
  raw: {
    data: '0x000000000000000000000000000000000000000000000000000000006038e20f',
    topics: [
      '0xc10f2f4d53a0e342536c6af3cce9c6ee25c32dbb323521ce0e1d4494a3e362e8',
      '0x88437e94b8ffc61e30087ba66182c8f291e4af36d289ae299f676f014fdba411',
      '0x000000000000000000000000c65dd4299c682f335d6e15e2b5774d015e01e479',
      '0x000000000000000000000000c65dd4299c682f335d6e15e2b5774d015e01e479'
    ]
  }

参考

https://www.cnblogs.com/tokenpai/p/10334952.html

基于以太坊支持数据隐私

官网:https://consensys.net/
开源地址: https://github.com/ConsenSys/quorum

详细介绍:https://rdc.hundsun.com/portal/article/892.html

Quorum是一个基于以太坊的分布式账本协议,具有交易/合同隐私和新的共识机制。

Quorum是go-ethereum的一个分支,并根据go-ethereum发行版进行了更新。

以太坊的主要增强功能:

  • 隐私-Quorum通过公共/私有状态分离来支持私有交易和私有合同,并利用对等加密消息交换(请参阅Constellation和Tessera)将私有数据定向传输到网络参与者

  • 替代共识机制-Quorum不需要在许可的网络中使用POW / POS,而是提供了多个更适合联盟链的共识机制:

    • 基于筏的共识-一种共识模型,可加快区块时间,完成交易并按需创建区块
    • Istanbul BFT-由AMIS启发,具有PBFT的交易最终性的共识算法。
    • Clique POA共识-与Go Ethereum捆绑在一起的默认POA共识算法。
  • 对等权限-节点/对等权限,确保只有已知方才能加入网络

  • 帐户管理-Quorum引入了帐户插件,该插件使Quorum或clef可以通过包括外部库在内的其他帐户管理方法进行扩展。

  • 可插拔架构-允许将其他功能作为插件添加到核心geth,从而提供可扩展性,灵活性和Quorum功能的独特隔离。

  • 更高的性能-Quorum提供的性能吞吐量比公共场所高得多

IBFT共识概述: https://docs.goquorum.consensys.net/en/stable/Concepts/Consensus/IBFT/
https://www.jianshu.com/p/43354a82e176

以太坊生态系统资源

生态系统资源

有关用于学习和理解以太坊生态系统的可用dapp,服务,著作和知识库的指南。

该资源旨在专注于生态系统的发展,但该相关资料还包括:

欢迎捐款!

可以随意拉取并提交请求,补充您想要添加(或删除!)的工具。如果添加新工具,请添加您认为新开发人员会理解的简短描述。

感谢众多贡献者包括@corbpage和@pakaplace为Meridio做出的贡献,并感谢@jpantunes以更合理的方式重组清单列表。

资源

钱包

网络钱包

  • MyEtherWallet -用于轻松,安全地与区块链进行交互的开源工具
  • MyCrypto - 用于生成以太币钱包,处理ERC-20代币以及更轻松地与区块链进行交互工具
  • Arkane - 基于Web的钱包专注于用户友好UX和DAPP整合。(适用于移动设备)
  • Torus - 开源客户端钱包重点放在UX
  • Portis -基于Web的钱包的植入,方便用户对你的DAPP
  • Eth lightwallet - 适用于Node和浏览器的轻量级JS钱包
  • SpankCard - 浏览器内以太坊钱包,支持支付渠道
  • Mnemonic generator - 生成单词助记符和相关的公用/专用密钥对。选择“以太坊”作为硬币以生成以太坊地址。对于truffle-hd-wallet钱包很有用。

手机钱包

  • Coinbase Wallet - 移动Dapp资源管理器和 钱包
  • Cipher - 移动Dapp资源管理器
  • Trust - 用于ERC代币的 移动钱包
  • Status - 适用于以太坊的免费开源移动操作系统
  • imToken - 功能丰富的数字资产移动钱包,支持多链资产管理,DApp浏览以及安全的私有价值交换
  • Jaxx - 手机和台式机钱包。集成了Shapeshift支持
  • WallETH - 原生Android以太坊钱包
  • eth-wallet-light - 针对移动设备进行了优化的轻量级JS钱包
  • Metamask - 带有ERC令牌的Mobile Ether钱包支持beta
  • WiniWallet - 具有多个DeFi投资的DAI稳定币钱包

硬件钱包

  • Trezor - 原始硬件钱包
  • Ledger - 支持多种加密货币和代币
  • KeepKey - 简单的硬件钱包

区块浏览器

  • Etherscan - 最受欢迎的集中式查看Eth交易和合同代码的方式
  • BlockScout - 由Ethprize资助,由POA开发的开源以太坊区块浏览器
  • TrueBlocks -TrueBlocks是软件库,应用程序,工具和示例的集合,可让您更快地检索以太坊区块链数据,(b)具有较高的信息内容,(c)以完全去中心化的方式,(d) (e)以高度免维护的方式。)
  • Etherchain lite - 您的私人以太坊链的轻量级区块链浏览器
  • EthStats - 以太坊区块链分析平台
  • Scout - 以太坊上智能合约的活动和事件日志的实时数据馈送
  • ethq - 为开发人员构建的,由dfuse 驱动的,最详细的块浏览器

汽油价格计算器和工具

  • EthGasStation - 用于估算交易价格与时间的网站
  • Petrometer - 汇总从指定以太坊地址发送的所有交易的每日和总汽油消耗

服务

  • Provable - 用于智能合约的具有真实性证明的区块链Oracle服务
  • Infura - API网关,因此您不必托管自己的ETH节点
  • Quiknode - 提升个人Parity/Geth节点的服务
  • Nodesmith - 免费API访问完整的以太坊主网和testnet节点,可以像本地节点一样使用
  • dfuse - Slick区块链API构建世界一流的应用程序
  • Regis - 数字资产注册表框架
  • Treum - 如果用例面向业务流程(以前是Viant),只需考虑将Treum用作后端
  • uPort - 整体身份解决方案
  • Ether Address Lookup - Chrome扩展程序,用于网络钓鱼防护和Eth地址突出显示
  • Netstats - 以太坊网络统计
  • ENS - ENS提供了一种安全且分散的方式,可以使用简单易读的名称来处理区块链上和下的资源
  • Name Bazaar - 通过以太坊名称服务注册的名称交换的对等市场
  • Quantstamp - 一种服务,提供收费的自动和手动智能合约安全性审核
  • SmartCheck - 对Solidity源代码进行静态分析以获取安全漏洞和最佳实践
  • MD4 Online Hash Function - 使用各种哈希算法选项对输入进行哈希的工具
  • iExec SDK - 使智能合约能够脱链执行功能或应用程序。支持作为Docker映像提供的所有旧版应用程序。
  • Incentivai - 通过使用ML代理进行仿真来测试智能合约经济性
  • Arkane - A wallet provider for Dapps - 提供API网关,并为Dapps及其用户提供钱包和钱包管理。
  • Aave SDK - JavaScript库,可与作为分散贷款市场ETHLend的Aave生态系统的API连接。
  • Rockside Cloud - 以太坊网络访问提供商和财团区块链构建商
  • Chainstack - 共享和专用的以太坊节点即服务
  • BUIDLHub - 在传统的Web服务和以太坊之间创建自动化的工作流。支持bot,webhooks,自定义dapp集成等。

知识/教育

安全最佳实践

Solidity 游戏!

Scaling

参考

治理

  • Ethresear.ch - 参与以太坊研究工作的半公开论坛,包括但不限于:Casper,Sharding,EVM改进,加密经济学,等离子和状态通道
  • Fellowship of Ethereum Magicians - 该讨论区促进整个以太坊社区中个人之间的有意义的交流
  • EIPs - 的复仇改进建议库
  • Aragon Research Forum - 与Aragon研究工作相关的长篇讨论,包括治理,经济学和令牌工程

去中心化交易所

安全分散数据协议

  • Stow - 在我们的组件和SDK分钟您的用户安全地存储和共享数据。前身为Linnia。

激励/货币化工具

  • Gitcoin - 资助开源或寻找开源工作的赏金网络
  • CodeFund - 开源广告平台

很棒的清单

去中心化金融(DeFi)

  • ETHLend - 分散的点对点借贷市场,使世界各地的人们都能获得贷款或成为贷方。
  • Aave Pay - Aave Pay允许用户使用其加密货币以FIAT货币向银行帐户支付。
  • rTrees - 一种无损捐赠应用程序,用于使用DeFi兴趣来种植真实的树木。

转载:https://github.com/ConsenSys/ethereum-developer-tools-list