区块链学习资料

转载

新开发者从这里开始!

  • Solidity:最流行的智能合约语言。

  • Truffle:最流行的智能合约开发,测试和部署框架。通过NPM安装CLI,然后从这里开始编写你的第一份智能合约。

  • Metamask:与Dapps交互的Chrome扩展钱包。

  • Truffle boxes:以太坊生态系统的包装组件。

  • EthHub.io:以太坊的全面概述,包括其历史,治理,未来计划和开发资源。

  • Infura:可扩展,安全,可靠地访问以太坊网络。

开发工具/tool

智能合约开发工具/tool

智能合约语言/language

  • Solidity:以太坊智能合约语言。

  • Bamboo:一种变形的智能合约语言。

  • Vyper:新的实验性pythonic编程语言。

  • LLL:低级Lisp语言。

  • Flint:正在开发的新语言,具有安全功能,包括资产类型,状态转换和安全整数。

框架/Frameworks

  • Truffle:最受欢迎的智能合约开发,测试和部署框架。Truffle套件包括Truffle, Ganache, and Drizzle. 深入了解Truffle

  • Embark:DApp开发框架。

  • Waffle:高级智能合约开发和测试框架,小巧,灵活,快速(基于ethers.js)。

  • Dapp:DApp开发框架,DApple的继任者。

  • Populus:以太坊开发框架中最可爱的动物图片。

  • Etherlime:基于ethers.js的Dapp部署框架。

  • Parasol:敏捷智能合约开发环境,包括测试,INFURA部署,自动合约文档等。它具有灵活和不受欢迎的设计,可无限制地定制。

  • 0xcert:用于构建去中心化应用程序的JavaScript框架。

IDEs

测试区块链网络/Test

  • Ganache:用于测试以太坊区块链的应用程序,带有可视UI和日志。

  • Kaleido:使用Kaleido打造财团区块链网络。非常适合PoC和测试。

  • Pantheon Private Network:在Docker容器中运行Pantheon节点的专用网络。

  • Orion:PegaSys执行私人交易的组件。

  • Artemis:PegaSys的以太坊2.0信标链的Java实现。

  • Cliquebait:使用非常类似于实际区块链网络的docker实例简化集成并接受智能合约应用程序的测试。

  • Local Raiden:在Docker容器中运行本地Raiden网络,以进行演示和测试。

  • Private networks deployment scripts:私有PoA网络的即插即用部署脚本。

  • Local Ethereum Network:私有PoW网络的即插即用部署脚本。

  • Ethereum on Azure:联盟链的部署和治理以太网PoA网络。

  • getho:DApp开发平台,包括PoA私有区块链和智能合约测试工具。

  • Ethereum on Google Cloud:基于PoW构建以太坊网络。

Test Ether faucets

以太坊的交互/Communicating

以太坊前端APIs/Frontend

  • Web3.js:Javascript Web3

    • Eth.js:Javascript Web3替代方案。

    • Ethers.js:Javascript Web3替代,有用的实用程序和钱包功能。

    • Web3Wrapper:Typescript Web3替代方案。

    • Ethereumjs:以太坊的实用函数集合如ethereumjs-utilethereumjs-tx

    • flex-contractflex-ether现代零配置的用于与智能合约交互和进行交易的高级别库。

    • ez-ens简单的零配置以太坊名称服务地址解析器。

    • web3x:web3.js的TypeScript端口。优势包括包括与合约交互时微服务构建和完整类型安全。

  • Nethereum:跨平台的以太坊开发框架。

  • Drizzle:使用Redux库将前端连接到区块链。

  • Tasit SDK:一个JavaScript SDK,用于使用React Native制作原生移动端的以太坊dapps。

  • Subproviders:与Web3-provider-engine 结合使用的几个有用的子提供程序,包括用于为你的dApp添加Ledger硬件钱包支持的LedgerSubprovider。

  • web3-react:用于构建单页以太坊dApp的React框架。

  • Vortex:一个Dapp-ready Redux Store。借助WebSockets,智能和动态后台数据刷新。TruffleEmbark

  • 其他Javascript替代品

以太坊后端APIs/Backend

Bootstrap/out of box tools

  • Truffle boxes:以太坊生态系统的打包组件。

  • Pantheon Private Network:在Docker容器中运行Pantheon节点的专用网络。

  • Testchains:预配置的.NET devchains,用于快速响应(PoA)。

  • Blazor/Blockchain Explorer:Wasm区块链资源管理器(功能样本)。

  • Local Raiden:在Docker容器中运行本地Raiden网络,以进行演示和测试。

  • Private networks deployment scripts:私有PoA网络的即插即用部署脚本。

  • Parity Demo-PoA Tutorial:构建具有2个节点的PoA测试链的分步教程,具有奇偶校验授权共识。

  • Local Ethereum Network:私有PoW网络的即插即用部署脚本。

  • Kaleido:使用Kaleido打造财团区块链网络。非常适合PoC和测试。

  • Cheshire:CryptoKitties API和智能合约的本地沙箱实现,可作为Truffle Box使用。

  • Aragon CLI:Aragon CLI用于创建和开发Aragon应用程序。

  • ColonyJS:JavaScript客户端,提供用于与Colony Network智能合约交互的API。

  • ArcJS:便于javascript应用程序访问DAOstack Arc以太坊智能合约的库。

Ethereum ABI (Application Binary Interface) tools

  • ABI decoder:用于解码以太坊交易中的数据参数和事件的库。

  • ABI-gen:从合约ABI生成Typescript合约包装。

  • Ethereum ABI UI:从以太坊合约ABI自动生成UI表单字段定义和相关验证器。

  • headlong:Java中的类型安全合约ABI和递归长度前缀库。

  • One Click dApp:使用ABI在唯一的URL上即时创建dApp。

  • Truffle Pig:一种开发工具,提供简单的HTTP API,用于查找和读取Truffle生成的合约文件,以便在本地开发期间使用。通过http提供新合约ABI。

模式和最佳实践/Patterns & Best Practices

智能合约开发的模式/Patterns for Smart Contract Development

可升级性/Upgradebility

基础设施/Infrastructure

客户端/Ethereum Clients

存储/Storage

  • IPFS:去中心化存储和文件引用。

    • IPFS-Store:具有附加搜索功能的IPFS存储服务。

    • OrbitDB:IPFS之上的去中心化数据库。

    • JS IPFS API:IPFS HTTP API的客户端库,用JavaScript实现。

    • TEMPORAL:易于使用的API到IPFS和其他分布式/去中心化存储协议。

  • Swarm:分布式存储平台和内容分发服务,以太坊web3堆栈的本机基础层服务。

消息传递/Messaging

  • Whisper:DApps相互通信的通信协议,是以太坊web3堆栈的本机基础层服务。

  • DEVp2p Wire Protocol:运行以太坊/Whisper的节点之间的对等通信。

  • Pydevp2p:RLPx网络层的Python实现。

测试工具/Testing Tools

  • Solidity code coverage:Solidity代码覆盖率工具。

  • Solidity coverage:Solidity智能合约的替代代码覆盖范围。

  • Solidity function profiler:Solidity智能合约分析器。

  • Sol-profiler:备选和更新的Solidity智能合约分析器。

  • Espresso:快速,并行化,热重载solidity测试框架。

  • Eth tester:用于测试以太坊应用程序的工具套件。

  • Cliquebait:使用非常类似于实际区块链网络的docker实例简化集成并接受智能合约应用程序的测试。

  • Hevm:hevm项目是以太坊虚拟机(EVM)的一个实现,专门用于单元测试和调试智能合约。

  • Ethereum graph debugger:Solidity图形调试器。

  • Tenderly CLI:利用人类可读的堆栈跟踪加速你的开发。

  • Solhint:为智能合约验证提供安全性,样式指南和最佳实践规则。

  • Ethlint:用于识别和修复Solidity(以前称Solium)中的样式和安全问题的Linter。

  • Decode:npm包解析提交给本地testrpc节点的tx,使其更易读,更易理解。

  • truffle-assertions:一个带有额外断言和实用程序的npm包,用于测试与松露的Solidity智能合约。最重要的是,它增加了断言特定事件是否已经发出的能力。

  • Psol:具有mustache.js样式语法,宏,条件编译和自动远程依赖包含的Solidity词法预处理器。

  • solpp:Solidity预处理器和flattener,具有全面的指令和表达式语言,高精度数学和许多有用的辅助函数。

  • Decode and Publish:解码并发布原始以太坊tx,https://live.blockcypher.com/btc-testnet/decodetx/

  • Doppelgänger:用于在单元测试期间模拟智能合约依赖关系的库。

  • rocketh:一个简单的lib来测试以太坊智能合约,允许使用你选择的任何web3 lib和测试运行器。

安全工具/Security Tools

  • MythX:以太坊开发人员的安全验证平台和工具生态系统。

  • Mythril Classic:开源EVM字节码安全分析工具。

  • Oyente:替代静态智能合约安全性分析。

  • Securify:以太坊智能合约的安全扫描程序。

  • SmartCheck:静态智能合约安全分析器。

  • Porosity:基于区块链的以太坊智能合约的反编译器和安全分析工具。

  • Ethersplay:EVM反汇编程序。

  • Evmdis:替代EVM反汇编程序。

  • Hydra:加密经济合约安全框架,去中心化安全奖励。

  • Solgraph:可视化智能合约安全性分析的Solidity控制流程。

  • Manticore:智能合约和二进制文件的符号执行工具。

  • Slither:一个Solidity静态分析框架。

  • Adelaide:Solidity编译器的SECBIT静态分析扩展。

  • Solidity security blog:已知攻击向量和常见反模式的综合列表。

  • Awesome Buggy ERC20 Tokens:ERC20与Token智能合约中的漏洞集合。

  • Free Smart Contract Security Audit:来自Callisto Network的免费智能合约安全审计。

监控/Monitoring

  • Neufund - Smart Contract Watch:一种监控大量智能合约和交易的工具。

  • Scout:以太坊上智能合约的活动和事件日志的实时数据Feed。

  • Chainlyt:使用已解码的交易数据探索智能合约,查看合约的使用方式以及使用特定函数调用搜索交易。

其他工具/Other Miscellaneous Tools

  • Truffle boxes:用于快速构建DApps的打包组件。

    • Cheshire:CryptoKitties API和智能合约的本地沙箱实现,可作为Truffle Box使用。

  • Solc:Solidity编译器。

  • Sol-compiler:项目级Solidity编译器。

  • Solidity cli:更快,更简单,更可靠地编译solidity代码。

  • Solidity flattener:将solidity项目与平面文件实用程序相结合。用于可视化导入的合约或验证你在Etherscan上的合约。

  • Sol-merger:替代方案,将所有导入合并为单个文件以获得可靠性合约。

  • RLP:JavaScript中的递归长度前缀编码。

  • eth-cli:一系列用于帮助以太坊学习和开发的CLI工具。

  • Ethereal:Ethereal是一个命令行工具,用于管理以太坊中的常见任务。

  • Eth crypto:用于以太坊的加密javascript函数以及将它们与web3js和solidity一起使用的教程。

  • Parity Signer:移动应用程序允许签署交易。

  • py-eth:为以太坊生态系统收集Python工具。

  • truffle-flattener:在Truffle下开发的Concats solidity文件及其所有依赖项。

  • Decode:npm包解析提交给本地testrpc节点的tx,使其更易读,更易理解。

  • TypeChain:以太坊智能合约的Typescript绑定。

  • EthSum:一个简单的以太坊地址校验和工具。

  • PHP based Blockchain indexer:允许索引块或在PHP中监听事件。

  • Purser:基于以太坊的钱包的JavaScript通用钱包工具。支持软件,硬件和Metamask,将所有钱包都集成到dApp开发的一致且可预测的界面中。

  • Node-Metamask:从node.js连接到MetaMask。

  • Solidity-docgen:Solidity项目的文档生成器。

  • Ethereum ETL:将以太坊区块链数据导出为CSV或JSON文件。

  • prettier-plugin-solidity:用于格式化Solness代码的更漂亮的插件。

  • EthToolbox:一款为以太坊开发人员提供离线工具的网络应用程序。 EC恢复,地址格式化程序,单位转换器,哈希函数,密钥生成器等。

  • Unity3dSimpleSample:以太坊和Unity集成演示。

  • Flappy:以太坊和Unity集成演示/示例。

  • Wonka:Nethereum业务规则引擎演示/示例。

智能合约标准库/Smart Contract Standards & Libraries

ERCs:Ethereum Request for Comment资料库

  • Tokens

    • ERC-20:可互换资产的原始通证合约。

    • ERC-721:非可替换资产的通证标准。

    • ERC-918:可采用通证标准。

  • ERC-165:创建一个标准方法来发布和检测智能合约实现的接口。

  • ERC-725:密钥管理和执行的代理合约,用于建立区块链标识。

  • ERC-173:合约所有权的标准接口。

第二层基础架构的开发人员指南/Developer Guides for 2nd Layer Infrastructure

可伸缩性/Scalability

支付和状态 / Payment/State Channels

Plasma

  • Learn Plasma:网站作为节点应用程序,开始于康奈尔大学2018年IC3-Ethereum Crypto训练营,涵盖所有Plasma variants (MVP/Cash/Debit)。

  • Plasma MVP:OmiseGO对最小可行Plasma的研究实施。

  • Plasma MVP Golang:Golang实现和最小可行Plasma规范的扩展。

  • Plasma Cash:简单的Plasma现金实施。

侧链/Side-Chains

隐私Privacy / 保密Confidentiality

zkSNARKs

  • ZoKrates:以太坊上的zkSNARKS工具箱。

  • The AZTEC Protocol:以太坊网络上的机密交易,在以太坊主网上实施。

预编译UI组件/Prebuilt UI Components