TypechoJoeTheme

加密社区

统计

了解加密货币以及区块链的正确方式--以太坊,NFT,比特币,Web3

加密社区博 主大黑
2023-01-08
/
0 评论
/
98 阅读
/
2377 个字
/
百度已收录
01/08
本文最后更新于 2023年01月15日,已超过 613天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

什么是以太坊?


以太坊是一个开源的、公共的、区块链平台,允许任何人创建和使用智能合约和去中心化的应用。它使用以太币(Ether)作为交易货币,用于付费在平台上执行代码。


以太坊的主要目标是什么?


以太坊的主要目的是提供一个分布式的虚拟机,允许任何人在上面执行任何想要执行的代码,而无需担心它被篡改或恶意攻击。为了实现这一目标,以太坊使用了区块链技术来保证代码执行的去中心化和安全性。

以太坊的另一个目标是创建一个通用的开发平台,使得开发人员能够利用其中的智能合约功能来创建去中心化的应用(称为 dApps)。以太坊的 dApps 可以用来做很多事情,比如实现分布式自治组织(DAO)、金融应用、供应链管理、游戏等等。

其次是提供一种可扩展的区块链技术,使得其他项目能够建立在其之上,从而创建出新的区块链应用。这就是所谓的以太坊元平台(Ethereum meta-platform)的概念。

我们通过一个实例来更加了解以太坊(Ethereum )


https://campaign-sigma.vercel.app/



通过使用Metamask这样的轻客户端允许用户通过浏览器与以太坊网络进行交互,而无需安装整个以太坊节点软件。
区块链取代了我们传统开发所使用的中心化数据库


以太坊作为一种数据库系统具有许多优势:


去中心化:以太坊使用区块链技术,这意味着数据是分布式存储的,无需单一数据中心或者管理员。这使得以太坊非常适合存储关键的、需要高度安全的数据。
不可篡改:以太坊的数据是不可更改的,因为它使用了散列加密技术来确保数据完整性。这使得以太坊非常适合存储敏感的或者法律相关的数据。
可扩展性:以太坊具有高度的可扩展性,因为它使用了分布式系统架构。这使得以太坊能够应对大量的并发交易,并且可以随着业务的增长而扩展。
智能合约:以太坊支持智能合约功能,这意味着可以在以太坊上执行自动化的、去中心化的业务流程。这使得以太坊非常适合用来建立去中心化的应用,比如供应链管理系统、分布式自治组织(DAO)等等。

开放性:以太坊是开源的,这意味着它的代码是公开的,并且任何人都可以贡献代码或者建立在其之上的应用。
丰富的生态系统:以太坊拥有庞大的生态系统,包括开发工具、钱包、浏览器、交易所等等。这为开发者和用户提供了许多的选择和方便。
社区支持:以太坊有庞大的社区支持,包括许多贡献者、开发者、公司和机构。这为以太坊的发展和维护提供了强大的动力。

以太坊是一个分布式公共区块链网络,具有高度可编程性和智能合约功能。尽管以太坊在区块链领域中具有重要地位,但它也存在一些问题和需要优化的地方。


其中一个比较明显的缺点是交易速度较慢。以太坊目前的每秒交易速度约为15笔,远远低于其他区块链网络(如比特币的每秒交易速度约为3笔)。这意味着在高流量情况下,交易可能会排队等待,这对于应用场景的使用者来说是不理想的。
区块大小限制:以太坊的区块大小有限制,这意味着在区块内交易数量有限。
另一个需要优化的地方是以太坊的手续费(也称为“燃气费”)。在以太坊的区块链上进行交易或执行智能合约操作时,需要支付一定数量的以太币作为手续费。这是为了防止滥用区块链资源,但在高流量情况下,手续费可能会显著增加,导致部分用户无法使用区块链网络。
还有其他的一些问题,可以知道的是以太坊团队正在努力攻克这些难点,我们能看到的就是他还在进化


而去年随着以太坊2.0的推出,已经从POW开始正式转向POS,二层网络和分片技术会在今年看到更多的变化,这些技术都将会增强以太坊的性能,使之能够拥有更快更高的处理速度和更低的交易手续费。

诚然,目前以太坊具有比较高的学习成本,但是越来越多的工具以及类似我们这样的知识博主会帮助大家了解和学习以太坊

下面的代码,就是上面这个演示案例的智能合约代码。欢迎大家在Solidy中测试


智能合约代码


// SPDX-License-Identifier: UNLICENSED
pragma solidity ^0.8.9;

contract CrowdFunding {
    struct Campaign {
        address owner;
        string title;
        string description;
        uint256 target;
        uint256 deadline;
        uint256 amountCollected;
        string image;
        address[] donators;
        uint256[] donations;
    }

    mapping(uint256 => Campaign) public campaigns;

    uint256 public numberOfCampaigns = 0;

    function createCampaign(address _owner, string memory _title, string memory _description, uint256 _target, uint256 _deadline, string memory _image) public returns (uint256) {
        Campaign storage campaign = campaigns[numberOfCampaigns];

        require(campaign.deadline < block.timestamp, "The deadline should be a date in the future.");

        campaign.owner = _owner;
        campaign.title = _title;
        campaign.description = _description;
        campaign.target = _target;
        campaign.deadline = _deadline;
        campaign.amountCollected = 0;
        campaign.image = _image;

        numberOfCampaigns++;

        return numberOfCampaigns - 1;
    }

    function donateToCampaign(uint256 _id) public payable {
        uint256 amount = msg.value;

        Campaign storage campaign = campaigns[_id];

        campaign.donators.push(msg.sender);
        campaign.donations.push(amount);

        (bool sent,) = payable(campaign.owner).call{value: amount}("");

        if(sent) {
            campaign.amountCollected = campaign.amountCollected + amount;
        }
    }

    function getDonators(uint256 _id) view public returns (address[] memory, uint256[] memory) {
        return (campaigns[_id].donators, campaigns[_id].donations);
    }

    function getCampaigns() public view returns (Campaign[] memory) {
        Campaign[] memory allCampaigns = new Campaign[](numberOfCampaigns);

        for(uint i = 0; i < numberOfCampaigns; i++) {
            Campaign storage item = campaigns[i];

            allCampaigns[i] = item;
        }

        return allCampaigns;
    }
}
什么是智能合约,以太坊扮演的角色
以太坊担任的就是数据库的功能,区块中存储的是智能合约,也就是自动执行的程序代码。

使用 MetaMask 可以让用户在使用轻应用时能够方便地进行以太坊交易,而无需将私钥暴露给轻应用。这样可以提高用户的账户安全。另外,MetaMask 也支持多种网络,可以让用户在不同网络之间轻松切换。

如何使用Metamask
注册和使用 MetaMask 的过程非常简单,下面是一般步骤:

  1. 在浏览器中安装 MetaMask 插件。
  2. 打开 MetaMask,点击“Create a Wallet”来创建新钱包。
  3. 备份你的助记词,并输入一个密码。这些助记词将用来恢复你的钱包。
  4. 在 MetaMask 中输入你的助记词,并输入你的密码来恢复钱包。
  5. 在 MetaMask 中查看你的钱包地址,并复制它以便在以太坊网络上进行交易。
  6. 现在你可以在 MetaMask 中进行以太坊交易了,如转账,查看余额等。

需要注意的是,在使用MetaMask前,需要确保你的浏览器支持MetaMask插件。

如何看Etherscan
Etherscan 是一个强大的以太坊区块链浏览器,可以帮助用户查询以太坊区块链上的交易、账户等信息。对于新手来说,使用 Etherscan 应该注意以下几点:

  1. Etherscan 支持多种网络,在使用之前请确保你选择了正确的网络。
  2. 使用Etherscan前,请确保你有一个以太坊地址,这个地址是一个HEX字符串,以0x开头。
  3. Etherscan 上的信息是实时的,所以如果你的交易还没有被区块链网络确认,可能在 Etherscan 上查不到相关信息。
  4. 在Etherscan上查询交易信息时,可以使用交易哈希(transaction hash)来查询。
  5. 如果你想查询某个地址的交易记录,可以使用地址来查询。
  6. Etherscan 上的信息是公开的,所以请勿在上面泄露私密信息。
  7. Etherscan上还有大量的高级功能,可以根据需要慢慢学习。
需要注意的问题
使用Etherscan时需要注意以下几点:
  • 确保选择了正确的网络,避免查询错误的区块链信息。
  • 当查询交易信息时,确保使用的是正确的交易哈希(transaction hash)。
  • 当查询地址信息时,确保使用的是正确的地址,并确保地址是以0x开头的HEX字符串。
  • 在查询信息时,注意区块链网络的确认时间,如果交易还没有被确认,在Etherscan上可能查不到信息。
  • 避免在Etherscan上泄露私密信息,因为区块链信息是公开的。
  • 如果你不确定如何使用Etherscan,可以先参考官方文档或社区的教程来学习。
  • 尽量不要在Etherscan上输入私钥,如果你想查询自己的账户信息,建议使用轻钱包工具(如MetaMask)。
  • 一定要保管好自己的私钥,避免钱包被盗。
  • 智能合约是如何工作的
    智能合约是基于区块链技术开发的一种程序,它可以在以太坊区块链上运行。智能合约是一种自动执行的程序,可以根据预先设定的条件自动执行交易。

    智能合约的工作原理如下:

    1. 首先,智能合约被编写并部署到以太坊区块链上。
    2. 然后,智能合约可以被外部的用户或程序调用。
    3. 当智能合约被调用时,它会检查调用者提供的参数是否符合预先设定的条件。
    4. 如果参数符合条件,智能合约会自动执行相应的交易,如转账。
    5. 智能合约所执行的交易会被记录到区块链上,并被其他人查询。
    6. 如果参数不符合条件,智能合约会拒绝执行交易。

    智能合约的优点在于,它可以在没有人为干预的情况下自动执行交易,并且所有交易都被记录到区块链上,可以提高交易的透明度和可信度。

    赞(1)
    版权属于:

    加密社区

    本文链接:

    https://blogs.khtain.com/index.php/archives/33/(转载时请注明本文出处及文章链接)

    评论 (0)
     
    登录
    X
    用户名
    密码