# 如何在 StarkNet 网络上部署智能合约


By [Waxifa](https://paragraph.com/@waxifa) · 2023-04-28

---

 关注[@Waxifa](https://twitter.com/WaxifaLam778)， 带你撸空投

[Subscribe](null)

[StarkWare](https://starkware.co/)是一个 ZK-Rollup 区块链扩展解决方案。

**投资者：** Coinbase Ventures、Paradigm、Sequoia、Polychain、Alameda Resaerch、Intel，甚至 Vitaly Buterin 本人。

其中一个产品，StarkNet 是以太坊上的 Layer2 解决方案。

**项目复拿出12% 的额度分配给：StarkNet 协议的开发、测试、部署和支持的研究和工作……**

因此今天就来部署智能合约。

  

一、部署智能合约前需要准备的
==============

1、服务器租用
-------

可以在[Contabo](https://contabo.com/en/)或任何其他平台上租用；

智能合约部署的最低规格：

CPU：1

RAM：1GB

SSD： 15 GB

购买时请选择Ubuntu系统；

2、SSH工具
-------

SSH工具：小白用户建议使用Xshell或者Finalshell.

3、教程里面提到要导入私钥，请使用argertx钱包
--------------------------

这是粉丝在评论区里面的留言，很有用：

  

![](https://storage.googleapis.com/papyrus_images/098c8152677fef01ee19ac0e6a6f9d4f99e87639c34ab63c1eeb3357bdd3e812.png)

4、如何连接到 VPS
-----------

**MacOs**：如果你用的是这个操作系统，你只需要用自己的设备与 SSH 连接；

**Windows：如果你是Win，有很多工具可以用，比如**[**putty**](https://www.putty.org/) **、**[**MobaXterm**](https://mobaxterm.mobatek.net/)、[**Xshell**](https://www.netsarang.com/en/xshell/)

1、下载一个应用（本教程以**putty**为例，小白用户建议使用Xshell或Finalshell）

2、复制云服务器IP链接

  

![](https://storage.googleapis.com/papyrus_images/368ceebda604de85c3c91569386922871b80e4ab62746bae8eb8da0991220f46.png)

3、点击“接受”，输入云服务器的用户名和密码

**注意：要粘贴你已经复制的任何命令，只需右键单击要粘贴命令即可**

![](https://storage.googleapis.com/papyrus_images/3b83f323458900d193793c6f415672821ad85bb2861c0749aea0e52ca310b90c.png)

  

![](https://storage.googleapis.com/papyrus_images/f23fbc4848f880d608bb68a9240590a9a324c5be23e15a88eed7fce201f1cbdd.png)

  

4、再次输入密码，并输入新密码。

  

![](https://storage.googleapis.com/papyrus_images/92023a3e4b1bf9e3fb50113822fb947e70d32e50e782d2c0932bfa7a143d2eef.png)

以上就是云服务器+SSH组合的步骤，下文所有步骤都在SSH工具中进行（小白用户建议使用Xshell或Finalshell）

二、安装智能合约具体步骤
============

本文所有代码都来自官方文档，\*\*所有步骤都在主网上操作，所以请提前准备好钱包私钥，并宝藏钱包里面有一定的Gas费，\*\*估计交易成本约为 2-5 美元。

1、安装protostar:
--------------

curl -L [https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh](https://raw.githubusercontent.com/software-mansion/protostar/master/install.sh) | bash

source /root/.bashrc

protostar init

在最后一个命令之后，\*\*将出现项目目录名称行，\*\*可以写下任何名称，比如： StarkD。

2、进入目录
------

cd <刚写的名字>

3、创建一个文件夹
---------

使用以下命令创建一个文件：

protostar build

使用你的密钥创建一个文件

echo <从钱包插入私钥> > .env

比如：

_echo 1780577367856757586576879655423757134249303378563877454818592 > .env_

4、插入钱包地址
--------

接下来，在命令中输入你的钱包地址：

protostar declare ./build/ main .json  --account-address <你的钱包地址> --max-fee auto --private-key-path ./ .env  --network mainnet

如果报错，可能是空格太多，请用粉丝修改的这一段试试：

protostar declare ./build/main.json - account-address <钱包地址> - max-fee auto - private-key-path ./.env - network mainnet

**比如：**

protostar declare ./build/main.json — account-address 0x0404CF507CFd1291baD33e86FB71b88f82c7002229963310955FD4625ECb8C68 — max-fee auto — private-key-path ./.env — network mainnet

如果一切都正确完成，将出现：

  

![](https://storage.googleapis.com/papyrus_images/127314138050ef85de86e1ca8b0c89df9563cbfcdbb48f2b73576c5da2ac595a.png)

复制**Transaction Hash**并将其粘贴到[StarkScan](https://starkscan.co/)中，等待交易变为**Accepted on L2 状态。**

  

![](https://storage.googleapis.com/papyrus_images/ff1caf607810d1b58d271e12e801c02d32050290504da033671d570877a1ef4f.png)

5、部署智能合约
--------

接下来，部署智能合约。 在命令中输入交易哈希（我们从交易中获取的）并再次指向钱包的地址。

protostar deploy --account-address <你的钱包地址> --max-fee auto --private-key-path ./ .env  --network mainnet 比如： protostar deploy 0x523be5e7088bf4226d4fdb28c6a19d4d3b93118f7263849a6d8912bf503d672 — account-address 0x0404CF507CFd1291baD33e86FB71b88f82c7002229963310955FD4625ECb8C68 — max-fee auto — private-key-path ./.env — network mainnet 输完上面一段后，如果一切顺利会出现一个交易结果，复制**Contract address**并粘贴到\*\*[StarkScan](https://starkscan.co/)\*\*中。 _合约不会立即出现，大约要等 5 分钟或更长时间。合约出现后，我们可以发送一点ETH 到合约地址。_ 现在，在合约在部署交易得到验证之后，会出现这样的界面：   转到**Read / Write Contract**项，连接钱包，点击**Write**并与合同交互，签署交易。   到了这里我们就已经部署了一个智能合约并与之交互，这是在主网中比较便宜的交互方式，不出什么意外，一样可以参与空投额度分配。

---

*Originally published on [Waxifa](https://paragraph.com/@waxifa/starknet)*
