简体   繁体   English

在 Stellar Network 上,为什么必须先激活一个帐户才能收到它?

[英]On the Stellar Network, why must one activate an account before receiving to it?

Documentation for the Stellar payment network indicates that an address is not valid until it is activated, and that activating requires a special operation and 1 XLM. Stellar 支付网络的文档表明地址在激活之前无效,并且激活需要特殊操作和 1 XLM。

The Stellar Docs say this: 恒星文档这样说:

in order to prevent unused accounts from bloating the ledger, Stellar requires accounts to hold a minumum balance of 1 XLM before they actually exist.为了防止未使用的账户膨胀账本,Stellar 要求账户在实际存在之前至少持有 1 XLM 的余额。 Until it gets a bit of funding, your keypair doesn't warrant space on the ledger.在获得一点资金之前,您的密钥对不保证账本上的空间。

Why is it not adequate to simply send XLM from an active account to the new address, thereby funding it?为什么仅仅将 XLM 从一个活跃账户发送到新地址并为其提供资金是不够的? Practically speaking, sending funds from one address to another which has a new/zero balance is funding it.实际上,将资金从一个地址发送到另一个具有新/零余额的地址就是为其提供资金。 And related, why would the address take any space in the ledger before it received its first transaction?与此相关的是,为什么地址在收到第一笔交易之前会占用分类帐中的任何空间?

In the Bitcoin world, if you want to sell a thing and receive bitcoin, you typically will generate a new address and tell the customer to pay to that new address.在比特币世界中,如果你想卖东西并接收比特币,你通常会生成一个新地址并告诉客户向那个新地址付款。 As long as you save the new address with the customer order, you always know if/when your customer sent payment.只要您在客户订单中保存新地址,您就始终知道客户是否/何时发送付款。

But with Stellar, if you have to "activate" an address just to receive to it, that requires extra effort and additional funds kept just for the purpose of making a new address actually usable.但是对于 Stellar,如果您必须“激活”一个地址才能接收到它,这需要额外的努力和额外的资金,以使新地址真正可用。 And if you have a lot of orders in a very short period of time, you would have to have quite a lot of XLM on hand to activate all the order payment addresses.如果你在很短的时间内有很多订单,你手头必须有相当多的 XLM 才能激活所有的订单支付地址。 If the orders are small, that's a considerable temporary up-front expense.如果订单很小,这是一笔可观的临时前期费用。 Then you have to decide how long to let the order remain open before canceling it and merging the account to reclaim your activation fund if the customer never got around to paying it.然后,您必须决定在取消订单并合并帐户以收回您的激活资金之前让订单保持开放多长时间,如果客户没有时间付款的话。

Stellar does have the memo field which can be used to essentially associate a particular sale/customer with a transaction, but people often forget or otherwise fail to provide the memo. Stellar 确实有备忘录字段,可用于将特定销售/客户与交易关联起来,但人们经常忘记或无法提供备忘录。 Then their payment is not associated with their order.然后他们的付款与他们的订单无关。 That approach also leaks information about how much business you have done since all customers pay to the same address.这种方法还会泄露有关您完成了多少业务的信息,因为所有客户都向同一个地址付款。

When in doubt, test and experiment.如有疑问,请进行测试和实验。

Sending 1+ XLM to a newly created address (sending to the public address of a new public/secret pair) works, and the transaction appears in the public ledger.将 1+ XLM 发送到新创建的地址(发送到新的公共/秘密对的公共地址)是可行的,并且交易出现在公共分类账中。

No "activation" step was required.不需要“激活”步骤。

It appears that the Stellar documentation is incorrect, outdated, or misleading. Stellar 文档似乎不正确、过时或具有误导性。

The payment is the activation as you write above and as explained in the docs.付款是您在上面写的以及文档中解释的激活。 This is true whoever the payment comes from, whether that is the customer or creator.无论付款来自谁,无论是客户还是创建者,都是如此。 They are not distinguished between.它们之间没有区别。 But you don't need to create new accounts for each payment, there is a URI Scheme with callback and the API enables you to see how much was sent and who it was from .但是您不需要为每次付款创建新帐户,有一个带有回调的 URI 方案,并且API 使您能够查看发送了多少以及来自谁 The combination of these two should enable you to work out who sent a payment.这两者的结合应该使您能够确定谁发送了付款。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM