Ampliación del período de registro de un espacio de nombres

Esta guía le muestra cómo extender el período de alquiler de un espacio de nombres.

requisitos previos

  • Complete la guía registering a namespace.

  • Tener una cuenta con un espacio de nombres.

  • Tener una cuenta con suficiente bitxor para pagar las tarifas de transacción y renovación.

Método #01: Uso de la billetera de escritorio

  1. Haga clic en “Espacios de nombres” en el menú del lado izquierdo.

  2. Haga clic en el botón “Editar” (pen bitxor) para el espacio de nombres cuya duración desea extender. Luego haz clic en “Extender duración”.

resources/images/screenshots/extend-namespace-1.gif
  1. Ingrese la cantidad de bloques para extender la duración del espacio de nombres. Seleccione la cantidad de tarifas que está dispuesto a gastar. Haga clic en “Enviar”.

  2. Revise la información, ingrese la contraseña de su billetera y haga clic en “Confirmar”.

resources/images/screenshots/extend-namespace-2.gif

Método #02: Usando el SDK

1. Obtenga la información de su espacio de nombres e inspeccione el valor de la propiedad endHeight. La guía usa el espacio de nombres foo, pero debe seguir junto con el namespace name you have registered y desea extender su duración.

bitxor-cli namespace info --name foo

Namespace: foo
--------------

hexadecimal:    82a9d1ac587ec054
uint:           [ 1484701780, 2192167340 ]
type:           Root namespace
owner:          TBULEA...IPS4
startHeight:    52000
endHeight:      53000

La CLI devuelve que el espacio de nombres se volverá inactivo en la altura 5300. El siguiente paso es averiguar la altura actual de la cadena y calcular la cantidad de bloques restantes antes de que su espacio de nombres se vuelva inactivo.

  1. Verifique la altura actual de la cadena de bloques.

bitxor-cli blockchain height

52500

Como puede ver, el espacio de nombres caducará en 500 bloques (53000-52500). Para evitar perder todos los subespacios de nombres y alias vinculados a foo, vamos a extender la duración del espacio de nombres.

  1. Ampliar la duración del espacio de nombres para 172800 más bloques.

// replace with namespace name
const namespaceName = 'foo';
// replace with duration (in blocks)
const duration = UInt64.fromUint(172800);
// replace with network type
const networkType = NetworkType.TEST_NET;

const namespaceRegistrationTransaction = NamespaceRegistrationTransaction.createRootNamespace(
  Deadline.create(epochAdjustment),
  namespaceName,
  duration,
  networkType,
  UInt64.fromUint(2000000),
);

// replace with private key
const privateKey =
  '1111111111111111111111111111111111111111111111111111111111111111';
const account = Account.createFromPrivateKey(privateKey, networkType);
// replace with meta.networkGenerationHash (nodeUrl + '/node/info')
const networkGenerationHash =
  '1DFB2FAA9E7F054168B0C5FCB84F4DEB62CC2B4D317D861F3168D161F54EA78B';
const signedTransaction = account.sign(
  namespaceRegistrationTransaction,
  networkGenerationHash,
);
// replace with node endpoint
const nodeUrl = 'NODE_URL';
const repositoryFactory = new RepositoryFactoryHttp(nodeUrl);
const transactionHttp = repositoryFactory.createTransactionRepository();

transactionHttp.announce(signedTransaction).subscribe(
  (x) => console.log(x),
  (err) => console.error(err),
);
// replace with namespace name
const namespaceName = 'foo';
// replace with duration (in blocks)
const duration = bitxor_sdk_1.UInt64.fromUint(172800);
// replace with network type
const networkType = bitxor_sdk_1.NetworkType.TEST_NET;
const namespaceRegistrationTransaction = bitxor_sdk_1.NamespaceRegistrationTransaction.createRootNamespace(
  bitxor_sdk_1.Deadline.create(epochAdjustment),
  namespaceName,
  duration,
  networkType,
  bitxor_sdk_1.UInt64.fromUint(2000000),
);
// replace with private key
const privateKey =
  '1111111111111111111111111111111111111111111111111111111111111111';
const account = bitxor_sdk_1.Account.createFromPrivateKey(
  privateKey,
  networkType,
);
// replace with meta.networkGenerationHash (nodeUrl + '/node/info')
const networkGenerationHash =
  '1DFB2FAA9E7F054168B0C5FCB84F4DEB62CC2B4D317D861F3168D161F54EA78B';
const signedTransaction = account.sign(
  namespaceRegistrationTransaction,
  networkGenerationHash,
);
// replace with node endpoint
const nodeUrl = 'NODE_URL';
const repositoryFactory = new bitxor_sdk_1.RepositoryFactoryHttp(nodeUrl);
const transactionHttp = repositoryFactory.createTransactionRepository();
transactionHttp.announce(signedTransaction).subscribe(
  (x) => console.log(x),
  (err) => console.error(err),
);

Una vez que se confirme RegisterNamespaceTransaction, vuelva a verificar que la duración del espacio de nombres se haya extendido.

  1. Valide que endHeight haya aumentado en 172800 unidades de bloque.

bitxor-cli namespace info --namespace-name foo

Namespace: foo
--------------

hexadecimal:    82a9d1ac587ec054
uint:           [ 1484701780, 2192167340 ]
type:           Root namespace
owner:          BXRBDE...32I
startHeight:    52000
endHeight:      225800

Método #03: Uso de la CLI

Abra una ventana de terminal y ejecute el siguiente comando.

Reemplace foo con el nombre del espacio de nombres y 172800 con la cantidad de bloques a extender.

bitxor-cli transaction namespace --name foo --rootnamespace --duration 172800