区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

2022-10-3020:14:02后端程序开发Comments3,312 views字数 6775阅读模式
作者:李留白
来源:知乎文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发是增长最快的行业之一。随着建立在区块链上的项目(DeFi、NFT、DAO)的爆炸性增长,对区块链开发者的需求也急剧上升。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

当你已经在区块链上开发,或计划在Alchemy创建一个免费的区块链开发者账户时,这里有一个全面的指南,介绍一些创建区块链应用程序的最佳工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

让我们开始吧!文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

编程语言

为了开发区块链应用程序,你需要学习一种编程语言。这些语言允许你创建智能合约代码,作为你的应用程序的后端功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Solidity

目前,Solidity是区块链开发中最流行的编程语言。Solidity是一种高级的、面向对象的语言,它借用了其他语言的一些元素,特别是C++。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

许多开发者喜欢学习Solidity,因为被认为是事实上的区块链的Ethereum使用Solidity来编写智能合约。除此之外,Solidity是图灵完备的,允许你创建具有丰富功能的复杂应用程序。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

学习Solidity是开始你的区块链开发之旅的一个好方法。Solidity的普及意味着你可以获得有用的教程、指南和文档,这些都是为初学者设计的。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Solidity程序也可以在其他区块链上运行,只要它们与Ethereum虚拟机(EVM)兼容。这意味着您可以在兼容EVM的区块链上部署项目,如Binance Smart Chain、Avalanche、Polygon、Matic Network等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Vyper

Solidity很难说是创建智能合约的唯一语言。一个流行的替代方案是Vyper--一种基于Python并且与EVM兼容的语言。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

虽然Vyper没有Solidity那么多的功能和知名度,但它可以成为熟悉Python的开发者的理想选择。此外,Vyper的简单架构减少了软件错误,简化了智能合约的审计工作。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Rust

Rust是一种较新的编程语言,在区块链开发社区越来越受欢迎。它是一种用于编写智能合约的低级语言,因其内存效率、简单性和可靠性而受到推崇。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

问题是Rust与EVM不兼容,所以你不能在Ethereum和EVM兼容的链上部署项目。但是,像Solana、Terra、NEAR、Polkadot和Elrond这样较新的链使用Rust,所以学习这种语言仍然是一项很好的投资。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

框架

从头开始建立一个去中心化的应用程序(dApp)可能是一项艰巨的任务,特别是如果你必须自己处理每一个微小的细节。幸运的是,你可以从提供即插即用的基础设施的软件框架中受益,从而轻松创建dApps。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

框架带有创建、测试和部署代码所需的资源(库和工具)。从头开始编码你的dApp是不必要的,因为你可以采用现成的软件包并添加额外的功能。此外,大多数框架都是由经验丰富的工程师开发和优化的,使其坚固、高效和多功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Truffle

在我们的区块链开发框架列表中,第一个是Truffle。Truffle是一个基于JavaScript的框架,用于开发、测试和部署智能合约。它一直是区块链行业最常用的框架之一,而且有充分的理由。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Truffle包含了创建全功能dApp所需的资源,从内置智能合约创建工具到测试区块链环境。它还配备了开箱即用的库,使构建你的Ethereum dApp的前端更容易。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Hardhat

Hardhat是另一个强烈推荐给智能合约开发者的框架。与Truffle一样,Hardhat是一个基于JavaScript的框架,用于在Ethereum上创建、测试、部署和调试应用程序。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Hardhat是一个全面的工具平台,抽象出与区块链软件开发相关的大多数低级、通用功能。因此,你可以专注于更重要的任务,如为你的dApp构建核心基础设施。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Embark

Embark是一个全栈开发框架,允许你同时构建你的dApp的前端和后端。虽然在名单上排在最后,但Embark与本节中列出的其他框架一样好。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Embark为dApp数据存储、实时代码测试和智能合约部署提供资源。此外,你还可以获得重要的插件,如Etherscan、Solc、Solium,以及更多的插件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

集成开发环境(IDEs)

集成开发环境(IDE)通过将核心开发工具整合到一个图形用户界面(GUI)来帮助应用程序的开发。大多数集成开发环境都具有代码编译、编辑、语法高亮、构建自动化和调试功能等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Remix IDE

Remix被许多区块链开发者认为是IDE的行业标准。通过Remix IDE,您可以编译、测试和调试智能合约--所有这些都来自一个直观的界面。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Remix IDE是用JavaScript编写的,你可以从任何浏览器上使用它,尽管你也可以在你的电脑上本地运行它(作为一个桌面应用程序)。它提供了一套全面的库、插件和其他功能,以增强智能合约的开发。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

EthFiddle

EthFiddle是一个基于浏览器的IDE,用于编写和调试Solidity代码。由Loom Network开发的EthFiddle是一个优秀的工具,如果你在一个项目上与他人合作。有了这个软件,你可以轻松地编辑、查找并与他人分享代码片段以获得反馈。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

EthFiddle不像Remix IDE那样功能丰富,但它很适合在演示中分享代码。它提供精心设计的测试和原型设计功能,使其成为任何区块链开发者的好工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Ethcode

我们还推荐Ethcode,一个用于Ethereum智能合约开发的Visual Studio Code插件。Ethcode提供了一个对初学者友好的开发环境,用于编写、调试和单元测试合约代码文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

该代码是开源的,新的开发者可以在需要时请求支持。Ethcode同时适用于Vyper和Solidity,可以将你的智能合约部署到Ethereum Mainnet和Goerli testnet等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

APIs and SDKs

除了框架和IDE,API和SDK是Web3开发者最重要的工具之一。两者都有助于区块链工程师解决开发过程中面临的具体问题,并帮助创建dApp。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

应用程序编程接口(API)是为了简化不同软件之间的互动。你可以通过使用API来请求数据以改善你的dApp,从而建立在现有的功能上。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

SDK是 "软件开发工具包 "的简称,指的是用于为特定平台构建应用程序的软件产品集合。区块链开发SDK降低了构建特定平台dApp的复杂性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy NFT API

随着不可伪造代币(NFT)价值的飙升,许多开发者正将他们的注意力转向这个行业。如果你打算创建一个NFT应用程序,Alchemy的NFT API是一个完美的工具。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy NFT API让开发者在一个用户友好的界面上显示不同NFT的元数据。而且它可以在多个链上工作(以太坊、Polygon、Flow等),所以买家在选择NFT时有更大的灵活性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

NFT API抽象化了与NFT互动的大部分技术任务。随着NFT API集成到你的平台,买家在验证和购买NFT之前不必阅读智能合约。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Thirdweb SDK

Thirdweb SDK对于建立Web3应用程序或将Web3功能集成到现有的应用程序中非常有用。例如,你可以在你的应用程序中添加 "连接钱包 "功能,而不需要编写代码。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Thirdweb可用于以下方面:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

  • • 创建NFT市场
  • • 无需编写代码即可启动NFT投放
  • • 为治理、社区成员和其他目的创建代币
  • • 将特许权使用费拆分为NFT的编程

Thirdweb目前支持Fantom、Avalanche、Ethereum和Polygon,并承诺在未来支持更多链。虽然智能合约是免费使用的,但Thirdweb通过对未来从代币合约赚取的版税收取5%的费用来赚钱。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Moralis API and SDK

Moralis 是一个 Web3 开发平台,提供 API 和 SDK 产品以加快区块链开发周期。Moralis SDK 通过提供现成的功能来降低构建功能齐全的 dApp 的复杂性,例如:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

  • • 验证用户
  • • 发送和获取交易
  • • 监听智能合约事件
  • • 拉取用户余额
  • • 与智能合约交互

Moralis 的跨链 Web3 API 还可以聚合关于账户余额、代币、链上交易等的综合信息。它支持最流行的链,包括 Avalanche、Polygon、Ethereum 和 Binance Smart Chain。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

测试区块链网络

默认情况下,大多数智能合约是不可变的,一旦代码部署在区块链上,就排除了任何修改。因此,不鼓励在以太坊主网上进行测试,因为您无法在部署后进行更改。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

为了解决这个问题,以太坊开发人员可以使用测试区块链网络(testnet)来测试 dApp。测试网络可让您了解您的智能合约在区块链上的工作方式,让您在启动之前发现任何缺陷。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

本地区块链(Ganache)

Ganache 是用于以太坊开发的本地区块链,可作为命令行工具或桌面应用程序使用。区块链开发人员可以使用Ganache来部署智能合约和执行测试。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Ganache 工具拥有一个用户友好的界面,您可以在其中访问调试信息和区块链数据(帐户、块、交易)。您还可以配置其他元​​素,例如块时间,以满足您的开发需求。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

公共测试网(Ropsten/Rinkeby)

您可以使用 Ropsten、Goerli 或Rinkeby等公共测试网来代替 Ganache。主要区别在于 Ganache 可以离线使用,不需要在线访问。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

一些开发人员更喜欢公共测试网,因为它们模拟了以太坊的行为,并且可能更适合测试假设。例如,Ropsten 使用类似于以太坊主网的工作量证明共识。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

虽然测试网可以免费使用,但您需要在浏览器钱包中测试以太 (ETH) 才能完成交易。获得测试以太币的最简单方法是使用水龙头,例如Alchemy Rinkeby Faucet。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

预言机

虽然智能合约有令人兴奋的应用,但它们的功能有限,因为它们只能访问存储在链上的信息。这给任何构建依赖外部信息来执行功能的智能合约的开发人员带来了问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

这就是预言机出现的地方。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链预言机从不同来源收集现实世界的信息,并将其传递给在区块链上运行的智能合约。此信息可以采用多种形式:实时价格信息、天气信息、体育赛事结果等等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

选择去中心化的预言机很重要,因为它们更难被恶意行为者操纵并提供(大部分)可靠信息。Kyber、Synthetix 和 Compound 等许多流行的 dApp 使用去中心化的预言机来执行智能合约。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Chainlink

目前,Chainlink是市场份额领先的去中心化预言机解决方案。Chainlink 于 2017 年推出,为跨多个区块链的智能合约提供“可靠且防篡改”的数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

使用 Chainlink,您可以将您的智能合约连接到各种真实世界的数据源。例如,您可以创建一个投注 dApp,奖励用户预测现实世界事件的结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

其他去中心化预言机解决方案包括Band Protocol、Witnet和Universal Market Access (UMA)。这些应用程序激励选定的预言机提供准确的信息,保持链下数据的完整性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链节点提供商

在构建 dApp 时,您需要与区块链交互——无论是读取链上数据还是将数据写入区块链。为此,需要与区块链节点连接;区块链节点保存整个区块链历史,可以发送/查询区块链数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

问题是维护一个完整的以太坊节点是昂贵、耗时且复杂的。因此,建议区块链开发人员使用区块链节点提供商(节点即服务)。节点提供商为客户处理区块链基础设施,让您腾出时间专注于构建和扩展您的 dApp。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy Supernode

如果您正在寻找合适的区块链节点提供商,Alchemy Supernode值得一试。Supernode 提供了一套完全开发的 API,用于与区块链交互并获取关键的区块链数据。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

使用我们的工具,连接到区块链网络层就像注册和接收 API 密钥一样简单。该服务适用于其他项目,而不仅仅是以太坊——因此您在使用区块链方面拥有完全的灵活性。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy 的节点即服务工具还提供以下优势:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

1.免费注册:免费开始使用超级节点并升级以获得特殊功能。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

2.随用随扩展的基础设施:随着 dApp 使用量的增加,运行专用节点变得困难。您可以尝试启动更多节点,但这只会使问题更加复杂并增加您的开销。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Supernode 旨在适应您的需求并提供无缝的可扩展性。这样,您就不会因节点基础设施而失眠,您的用户可以享受更好的体验。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

3.增强的 API:Alchemy Supernode 带有一组独特的 API 端点,使查询区块链数据比以往更容易。获取交易历史、代币标识符、交易收据、待处理交易等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

4.可靠性:标准节点经常会遇到各种导致dApp崩溃的问题。使用 Supernode,您可以获得最高的可靠性,确保您的区块链应用程序可以在不停机的情况下运行。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

如果您想了解可用选项,可以查看其他节点提供程序。此产品类别中的其他名称包括 QuickNode、Infura、GetBlock、BlockDaemon 和 Chainstack。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

分析

在构建dApps时,许多Web3开发者很快发现,跟踪链上活动是很困难的。在大多数情况下,你需要做繁重的工作,才能获得关键的应用信息,如实时使用信息、用户采用率和代币指标。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

然而,如果你想改善你的dApp并扩大你的用户群,分析这些数据点是很重要的。为此,你要使用像Alchemy Monitor这样的工具,它可以让你更容易获得Web3应用程序的分析结果。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy Monitor

Alchemy Monitor是一个功能强大的专用工具,用于监控dApp基础设施并深入了解用户活动。Alchemy Monitor提供关于您的dApp健康状况的实时更新,并可显示API调用、错误率和响应时间。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Alchemy Monitor仪表板还跟踪dApp的使用情况,并提供对用户行为的有用见解。它有一个有趣的自动警报系统,可以在您的dApp遭受严重故障之前及早标记问题。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Alchemy Notify

开发人员并不是唯一需要有关 dApp 活动的实时信息的人。用户也需要知道 dApp 发生了什么。例如,用户可能想知道在 dApp 中执行的事务是否成功。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

这就是为什么使用Alchemy Notify推送通知服务是一个绝妙的主意。将推送通知添加到您的 dApp 可能是用户体验优秀与差的区别。Notify 为应用程序用户提供以下信息:文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

  • • 交易通知;
  • • 解决活动警报;
  • • 天然气价格警报等。

结合使用时,Alchemy Monitor 和 Notify 可提供更好的分析,并允许开发人员提高区块链应用程序的可用性。您可以将这些工具与区块链浏览器(如Etherscan )结合使用,后者提供有关以太坊区块链本身的信息(平均汽油价格、出块时间等)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

安全工具

如果说今年有什么启示的话,那就是安全应该是任何区块链项目的第一优先。加强智能合约的安全性比为你的新DApp添加铃声和口哨更值得考虑。当前背景时,这里有一些今年最大的漏洞。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

  • • Axie Infinity (hacked for $615 million)
  • • Inverse Finance (hacked for $15 million)
  • • Elephant Money (hacked for $22.5 million)

还有更多的黑客,但这些应该让您了解智能合约安全是一项严肃的业务。如果没有正确的安全措施,您就有可能为恶意攻击创造温床,这可能会损害您的声誉并阻碍用户采用。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Octopus

在我们加强智能合约安全的工具清单上,首先是Octopus,这是一个对智能合约代码进行详细分析的解决方案。Octopus提供了符号执行、调用流分析和控制流分析--所有这些都有助于你发现合同错误,并在为时已晚之前修复它们。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

Mythril

接下来是Mythril,一个由ConsenSys支持的智能合约安全工具。Mythril对分析以太坊虚拟机(EVM)字节码很有用,它使用污点分析、符号执行和污点解决来识别以太坊软件中的错误。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

Securify

为了完善这个名单,我们有Securify--一个由Ethereum基金会支持的智能合约扫描器。Securify可以检测多达37个不同的软件漏洞,并为基于Solidity的智能合约实现特定环境分析。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

钱包

如果你要建立DApps,你需要一个钱包来存放资金,即使是测试乙醚(ETH)。为此,你可以在几分钟内从你的浏览器设置一个加密货币钱包。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

MetaMask

我们推荐使用MetaMask,因为它提供了比持有ETH更多的功能。作为一个浏览器扩展,MetaMask将Web3js API注入网站,这使得用户可以直接从他们的浏览器与dApps互动。MetaMask还可以执行其他功能,如密钥管理、读取区块链数据等。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

区块链开发入门:Solidity、rust…编程语言选择、创建应用程序的最佳工具

最后总结

区块链开发可以是一个令人兴奋的旅程,但只有当你有正确的工具开始时。创建一个强大的开发堆栈,可以更容易地创建应用程序,并提高输出的质量。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

本文已经介绍了你开始构建区块链应用程序所需的顶级开发者工具,包括框架、IDE、安全工具、测试网络、区块链预言机和节点服务。要开始使用这些工具进行构建,请在Alchemy免费开设一个开发者账户。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html

文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/29872.html
  • 本站内容整理自互联网,仅提供信息存储空间服务,以方便学习之用。如对文章、图片、字体等版权有疑问,请在下方留言,管理员看到后,将第一时间进行处理。
  • 转载请务必保留本文链接:https://www.cainiaoxueyuan.com/bc/29872.html

Comment

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定