概述
文章目录
- 基础(Basics)
- 账户
- 账户 ID 规则
- 顶级帐户 Top Level Accounts
- 子账户 Subaccounts
- 开发账号 Dev Accounts
- 如何创建一个开发者账号
- 我如何获得另一个
- 拥有一个开发者账号,然后如何做?
- 访问密钥 Access Keys
- 完全访问Keys Full Access Keys
- 功能调用Keys
- 与以太坊相比
- 账号和合约
基础(Basics)
账户
NEAR使用人类可读的帐户ID代替公用密钥哈希。 有关20分钟的视频说明,请在YouTube( https://www.youtube.com/watch?v=2_Ekz7w6Eo4&t=18s )上观看。
账户 ID 规则
- 最小长度是2
- 最大长度为64
- 帐户ID包含用 . 分隔的帐户ID部分
- 帐户ID部分由用_或-分隔的小写字母数字符号组成
Account names are similar to a domain names. Anyone can create a top level account (TLA) without separators, e.g. near. Only near can create alice.near. And only alice.near can create app.alice.near and so on. Note, near can NOT create app.alice.near directly.
帐户名称类似于域名。 任何人都可以创建没有分隔符的顶级帐户(TLA),例如 near。Only near can create alice.near. And only alice.near can create app.alice.near and so on. Note, near can NOT create app.alice.near directly.
用于完整帐户ID的正则表达式,不检查长度:
^(([a-zd]+[-_])*[a-zd]+.)*([a-zd]+[-_])*[a-zd]+$
顶级帐户 Top Level Accounts
顶级帐户名称(TLA)非常有价值,因为它们为公司,应用程序和用户提供了信任和可发现性的根源。 为了公平地使用它们,将拍卖短于MIN_ALLOWED_TOP_LEVEL_ACCOUNT_LENGTH个字符(在撰写本文时为32个字符)的顶级帐户名称。
Specifically, only REGISTRAR_ACCOUNT_ID account can create new top level accounts that are shorter than MIN_ALLOWED_TOP_LEVEL_ACCOUNT_LENGTH characters. REGISTRAR_ACCOUNT_ID implements a standard Account Naming interface which allow it to create new accounts.
具体来说,只有REGISTRAR_ACCOUNT_ID帐户可以创建少于MIN_ALLOWED_TOP_LEVEL_ACCOUNT_LENGTH个字符的新顶级帐户。 REGISTRAR_ACCOUNT_ID实现了一个标准的“帐户命名”界面,该界面允许其创建新帐户。
We are not going to deploy the registrar auction at launch. Instead we will allow it to be deployed by the Near Foundation at some point in the future.
我们不会在启动时部署注册商拍卖。 相反,我们将允许它在将来的某个时候由Near Foundation进行部署。
Currently all mainnet accounts use a near top level account name (ex example.near) and all testnet accounts use a testnet top level account (ex. example.testnet).
当前,所有mainnet帐户都使用接近顶级帐户名(例如example.near),所有testnet帐户都使用testnet顶级帐户(例如example.testnet)。
子账户 Subaccounts
如前所述,NEAR上的帐户名称遵循与具有类似规则的网站域相似的命名方式。 帐户可以创建任意数量的子帐户,只有父帐户可以创建子帐户。 例如,example.near可以创建subaccount1.example.near和subaccount2.example.near,但不能创建sub.subaccount.example.near。 只有subaccount.example.near才能以相同的方式创建sub.subaccount.example.near,而test.near无法创建subaccount.example.near。 只有直接上级帐户有权创建子帐户。
Try it out using our near-cli command, near create-account, in your terminal.
在您的终端中使用我们的创建帐户,near create-account 命令尝试一下。
开发账号 Dev Accounts
开发帐户是由Near-cli和电子钱包等工具自动创建的特殊帐户,可帮助您自动化测试和部署合同。 由于每个帐户都可以拥有合约,但是重新部署合约不会创建新的状态,因此在测试时,您通常希望部署到完全不同的帐户。
注意:在部署多个测试示例并创建新的开发人员帐户时,您将需要在所有localhost示例上“注销” NEAR钱包,然后再次“登录”! 登录后会向您的帐户添加访问密钥,并将私钥保存在localStorage中,以便该应用可以调用合约方法而无需再次申请批准。 但! 您现在有机会尝试与部署在完全不同的开发人员帐户上的合约进行交互。
如何创建一个开发者账号
When you run the command dev-deploy from near-cli, it looks for a file here /neardev/dev-account with the dev account ID to deploy to.
当您从near-cli运行命令dev-deploy时,它将在/neardev/dev-account中查找一个文件,其中包含要部署到的dev帐户ID。
If it doesn’t find one, it creates a dev-account (using our cloud helper service for creating test accounts) and then creates the folder for you with the dev-account file.
如果找不到,它将创建一个开发帐户(使用我们的云助手服务创建测试帐户),然后使用开发帐户文件为您创建文件夹。
It will also create the associated credentials, a public and private keypair here: ~/.near-credentials/default/[dev-account-id].json. Go ahead and try it:
它还将在此处创建关联的凭据,即公私钥对:~/.near-credentials/default/[dev-account-id].json 继续尝试:
code ~/.near-credentials/default/[dev-account-id].json
Replace dev-account-id with the account ID here /neardev/dev-account and open the json file up in your editor of choice (code for VS Code).
在 /neardev/dev-account 处将dev-account-id替换为帐户ID,在您选择的编辑器(VS Code的代码)中打开json文件。
我如何获得另一个
Delete the folder /neardev and run near dev-deploy [wasmFile default="/out/main.wasm"] and you’ll see a new dev account was created in neardev and credentials are also stored for you.
删除文件夹/ neardev并在dev-deploy [wasmFile default =“ / out / main.wasm”]附近运行,您会看到在neardev中创建了一个新的dev帐户,并且还为您存储了凭据。
拥有一个开发者账号,然后如何做?
在json文件中找到的这些帐户和关联的密钥对对于自动化测试非常有用。
NEAR生态系统中的许多示例都使用某种类型的 yarn dev:deploy 脚本来部署合约,甚至可能运行一些测试。 了解这些帐户的创建方式,凭据的存储位置以及您自己的使用方式非常重要。
PS ,即json文件存储了账号id和密钥对的关联关系。
访问密钥 Access Keys
NEAR uses human readable account IDs instead of a public key hash as the account identifier and many keys (public/private key pairs) can be created for each account that we call “Access Keys”. Currently, there are two types of access keys; FullAccess & FunctionCall.
NEAR使用人类可读的帐户ID代替公用密钥哈希作为帐户标识符,并且可以为我们称为“访问密钥”的每个帐户创建许多密钥(公私钥对)。 当前,有两种类型的访问密钥: FullAccess和FunctionCall。
完全访问Keys Full Access Keys
顾名思义,FullAccess键具有对帐户的完全控制权,类似于在操作系统上具有管理员特权。 使用此键,您可以在NEAR上执行八种操作类型中的任何一种,而没有任何限制。
Create Account
Delete Account
Add Key
Delete Key
Deploy Contract
Function Call
Transfer Ⓝ
Stake Ⓝ (for validators)
有关更多详细信息,请参见我们的操作规范部分。(https://nomicon.io/RuntimeSpec/Actions.html)
功能调用Keys
FunctionCall Key是唯一的,因为它仅有权调用不附带Ⓝ作为保证金的智能合约的方法(即应付款功能)。 这些键具有以下三个属性:
-
allowance - amount of Ⓝ loaded onto the key to pay for gas fees (0.25 default)
津贴-存入钥匙以支付汽油费的Ⓝ金额(默认为0.25) -
receiver_id - contract the key is allowed to call methods on (required)
receiver_id-约定允许密钥调用的方法(必填) -
method_names - contract methods the key is allowed to call (optional)
method_names-允许调用密钥的合约方法(可选)
注意:如果未指定特定的方法名称,则可以调用所有方法。
用dApp创建FunctionCall键的最简单方法是提示用户通过Near-api-js的WalletConnection使用NEAR Wallet登录。 这会提示用户授权访问,并且在批准后会创建一个FunctionCall密钥。 该密钥仅允许调用合同上的方法,该方法将用户重定向到NEAR Wallet,默认配额为0.25Ⓝ,以支付交易的汽油费用。 由于使用此密钥执行了非货币交易,因此您会发现配额减少了,一旦0.25 burn被烧毁,就需要创建一个新密钥。 如果请求使用FunctionCall密钥转移任何数量的令牌,则用户将被重定向回钱包以授权此交易。 您可以通过试用NEAR Guestbook来查看此功能的使用情况。
创建FunctionAccess键的另一种方法是使用Near-cli的add-key命令。 使用Near-cli,您可以通过只允许FunctionCall键调用特定的合约方法以及对限额进行调整来更具体地使用FunctionCall键。
FunctionCall访问键是NEAR强大的可用性功能,为您提供了许多可能性。 您不仅可以消除用户一遍又一遍地授权小额交易的需要,而且甚至可以允许用户与区块链进行交互,而无需创建帐户。 这可以通过让dApp自动创建一个FunctionCall键来实现,该键只需在您的前端上单击即可指向自身,从而允许任何人与您的dApp无缝交互。
与以太坊相比
账号和合约
Each NEAR account can only hold 1 smart contract. For applications where users should be able to organize multiple contracts you can create “subaccounts” whose “master account” is the user account. The format of a subaccount would include a dot in the name like contract1.user-A-account, contract2.user-A-account, etc. NEAR restricts the creation of accounts with a dot in the name such that these accounts can only by created by user-A-account, as if the user account is a top-level domain like your-company.com if you’re familiar with this model.
每个NEAR帐户只能持有1个智能合约。 对于用户应该能够组织多个合约的应用程序,您可以创建其“主帐户”为用户帐户的“子帐户”。 子帐户的格式应在名称中包含点,例如contract1.user-A-account,contract2.user-A-account等。NEAR限制名称中带有点的帐户的创建,以便这些帐户只能通过 由用户帐户创建,就像您熟悉此模型一样,该用户帐户是诸如your-company.com之类的顶级域。
使用NEAR CLI,您可以像这样将新合约部署到您的帐户:
near deploy --wasm-file path/to/contract.wasm --account-id contractAccount.developerAccount.testnet --master-account yourAccount.testnet
请注意,要使此方法起作用,您将需要使用NEAR CLI登录并授权它代表您使用主帐户(YOUR_ACCOUNT.testnet)。 在此处了解有关NEAR CLI的更多信息(https://docs.near.org/docs/tools/near-cli)。
最后
以上就是醉熏麦片为你收集整理的NEAR官方文档翻译(二)基础(Basics)- 账户基础(Basics)的全部内容,希望文章能够帮你解决NEAR官方文档翻译(二)基础(Basics)- 账户基础(Basics)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复