diff --git a/docs/build/get-started/before-you-start.md b/docs/build/get-started/before-you-start.md
index d97bdc0f698..bee952c22c8 100644
--- a/docs/build/get-started/before-you-start.md
+++ b/docs/build/get-started/before-you-start.md
@@ -8,7 +8,7 @@
**Endpoint Node**
* Your [Endpoint Node](../../nodes/endpoint-node/endpoint-node.md) is needed to connect to the Klaytn network and to issue an API call or send a transaction.
-* `ken` is a Klaytn Endpoint Node binary. `ken` exposes two interfaces, a [command-line interface](../../nodes/references/klaytn-command.md) and the [JSON-RPC APIs](../../references/json-rpc/json-rpc.md). `ken` runs on Linux and MacOS.
+* `ken` is a Klaytn Endpoint Node binary. `ken` exposes two interfaces, a [command-line interface](../../nodes/endpoint-node/ken-cli-commands.md) and the [JSON-RPC APIs](../../references/json-rpc/json-rpc.md). `ken` runs on Linux and MacOS.
* `ken` CLI comes with several utility and node management functions.
**Smart Contract Development**
@@ -17,6 +17,7 @@
* [Truffle](https://github.com/trufflesuite/truffle) - An open-source tool for developing smart contracts in Solidity.
* [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - A development environment for smart contracts and dApps.
* [Foundry](https://book.getfoundry.sh/) - Foundry is a smart contract development toolchain.
+* [Thirdweb](https://portal.thirdweb.com/) - Thirdweb is a complete web3 development framework that provides services to build, manage, and analyze web3 applications.
**Klaytn SDKs**
diff --git a/docs/build/smart-contracts/deploy/ken.md b/docs/build/smart-contracts/deploy/ken.md
index 5643f3d3062..2d1d1ec21d4 100644
--- a/docs/build/smart-contracts/deploy/ken.md
+++ b/docs/build/smart-contracts/deploy/ken.md
@@ -44,7 +44,7 @@ $ mkdir -p ~/kend_home
### Configuring the EN
-The configuration file, `kend.conf`, is located under `ken-xxxxx-amd64/conf/`. For the details of configurable parameters, you can refer to the [EN Configuration Guide](../../../nodes/references/configuration-files.md). To launch an EN of Baobab testnet, please update the `kend.conf` file accordingly as follows.
+The configuration file, `kend.conf`, is located under `ken-xxxxx-amd64/conf/`. For the details of configurable parameters, you can refer to the [EN Configuration Guide](../../../misc/operation/configuration.md). To launch an EN of Baobab testnet, please update the `kend.conf` file accordingly as follows.
```
# cypress, baobab is only available if you don't specify NETWORK_ID.
@@ -88,7 +88,7 @@ INFO[03/26,15:37:49 +09] [5] Imported new chain segment blocks=1
### Troubleshooting
-Please refer to the [Troubleshooting](../../../nodes/references/troubleshooting.md) if you have trouble in launching the Klaytn Endpoint Node.
+Please refer to the [Troubleshooting](../../../misc/operation/troubleshooting.md) if you have trouble in launching the Klaytn Endpoint Node.
## Top up your Account
diff --git a/docs/build/smart-contracts/deploy/thirdweb.md b/docs/build/smart-contracts/deploy/thirdweb.md
new file mode 100644
index 00000000000..262d2a81938
--- /dev/null
+++ b/docs/build/smart-contracts/deploy/thirdweb.md
@@ -0,0 +1,168 @@
+# Deploying Smart Contract Using Thirdweb
+
+![](/img/build/get-started/klaytnXthirdweb.png)
+
+## Introduction
+
+This section will guide you through deploying a Marketplace contract and a corresponding NFT collection contract to Klaytn Network using [ThirdWeb](https://portal.thirdweb.com/). Thirdweb is a complete web3 development framework that provides everything you need to connect your apps and games to decentralized networks.
+
+Marketplace contract allows users to list NFTs for direct sale or auction, thus enhancing the buying and selling of NFTs, just like it’s done on OpenSea.
+
+By the end of this guide, you will be able to:
+
+* create and customize contracts using thirdweb.
+* compile, deploy, and interact with your smart contract using thirdweb.
+
+## Getting Started
+
+In this article, we will explore the different means to create, customize, and deploy contracts using thirdweb, viz.
+* Using the thirdweb dashboard
+* Using the thirdweb CLI
+
+For this guide, we will be demonstrating how to deploy a MarketPlace contract using the thirdweb dashboard and also deploying a corresponding nft collection to be listed on the marketplace using the thirdweb CLI.
+
+> Note: We will not be explaining the mechanics of the marketplace contract as our focus is to explore thirdweb dashboard and CLI for creating, deploying, and interacting with smart contracts.
+
+## Creating and deploying marketplace contract using thirdweb dashboard
+
+In this section, we will create and deploy a marketplace contract using thirdweb dashboard. To do this, follow the steps below:
+
+1. Head over to [thirdweb dashboard](https://thirdweb.com/dashboard?ref=blog.thirdweb.com) and select the **MarketPlace** contract from the list of contracts.
+
+![](/img/build/get-started/marketplace-explore.png)
+
+2. Click **Deploy Now** in the contract overview dashboard.
+
+![](/img/build/get-started/marketplace-deploy.png)
+
+3. Configure the marketplace contract to include the following parameters: the **name** of the marketplace, its **description**, and **image**.
+
+![](/img/build/get-started/marketplace-contract-details.png)
+
+4. Click **Deploy Now** as seen in the image above and wait for the transaction to complete.
+
+![](/img/build/get-started/marketplace-deployed.png)
+
+Once the transaction has been successfully executed, you can verify your deployment by pasting the contract address in the search bar of [Klaytnscope](https://klaytnscope.com/).
+
+## Creating and deploying an NFT collection contract using thirdweb CLI
+
+In this section, we will create and deploy the NFT collection to be listed in our Marketplace using [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com). To do this, follow the steps below:
+
+### Creating the contract
+
+1. Run this command in your terminal to create your contract:
+
+```bash
+npx thirdweb create --contract
+```
+
+2. Enter your preferred values for the command-line prompts:
+
+ i. Give your project a name.
+
+ ii. Choose your preferred framework: **Hardhat** or **Foundry**.
+
+ iii. Name your smart contract.
+
+ iv. Choose the type of base contract: **Empty**, **ERC20**, **ERC721**, or **ERC1155**. Add any desired **extensions**. For this tutorial, we will select ERC721 and setting the extension to none.
+
+![](/img/build/get-started/thirdweb-cli-info.png)
+
+3. Once created, navigate to your project’s root directory and open your project in your preferred code editor.
+
+4. If you open the contracts folder, your contract should look like this:
+
+```js
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+import "@thirdweb-dev/contracts/base/ERC721Base.sol";
+contract nftcollection is ERC721Base {
+ constructor(
+ address _defaultAdmin,
+ string memory _name,
+ string memory _symbol,
+ address _royaltyRecipient,
+ uint128 _royaltyBps
+ )
+ ERC721Base(
+ _defaultAdmin,
+ _name,
+ _symbol,
+ _royaltyRecipient,
+ _royaltyBps
+ )
+ {}
+}
+```
+
+The contract above demonstrates basic [ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) functionality. It imports and inherits the **ERC721Base** contract, and it also implements the required methods, including the constructor and its dependent parameters.
+
+You can modify the contract to your desired custom logic, and once done, your contract is ready for deployment.
+
+### Deploying the contract
+
+1. Navigate to your project root folder and run the command in your terminal:
+
+```bash
+npx thirdweb deploy
+```
+
+Executing this command will trigger the following actions:
+ * detects the framework (hardhat, foundry)
+ * compiles all the contracts in the current directory.
+ * allows you to select which contract(s) you wish to deploy.
+ * upload your compiled smart contract code (in the form of an Application Binary Interface, or ABI) to IPFS.
+
+2. When deployment is complete, a dashboard interface will open to fill out the remaining parameters.
+ * **_name**: contract name
+ * **_symbol**: symbol or "ticker"
+ * **_royaltyRecipient**: wallet address to receive royalties from secondary sales
+ * **_royaltyBps**: basis points (bps) that will be given to the royalty recipient for each secondary sale, e.g., 500 = 5%
+
+3. Select `Klaytn Mainnet Cypress` as the network to deploy the contract to.
+
+![](/img/build/get-started/nft-collection-deploy.png)
+
+4. Once your smart contract is deployed, you can manage additional settings and functionalities through its dashboard. For example, you can upload NFTs, configure permissions and access control, and add new features.
+
+You can learn more about thirdweb deploy command in this [deploy guide](https://portal.thirdweb.com/deploy/getting-started).
+
+## Interacting with deployed contracts
+
+In this section, we will mint an NFT and also transferring it to another account using the **mint** and **transferfrom** function respectively. Let's go over it in the following steps:
+
+### Minting the NFT
+
+1. Navigate to the newly deployed contract (**puppyKlan-NC**) dashboard.
+2. Click on the **mint** function in the **NFTs** tab under the contract dashboard.
+
+![](/img/build/get-started/puppy-mint-btn.png)
+
+3. Fill in the parameters needed for minting the NFT: **name**, **media**, **description**, and **properties**.
+
+![](/img/build/get-started/puppy-mint-details.png)
+
+4. Verify your input and click the **Mint NFT** button.
+5. Confirm the transaction and wait for it to complete. Once done, you should see your NFT added to the dashboard, like below:
+
+![](/img/build/get-started/puppy-minted.png)
+
+### Transferring the NFT to a new owner
+
+1. Head to the Explorer tab in the contract (**puppyKlan-NC**) dashboard.
+2. Select the **transferFrom** function under the Write tab, as shown below.
+3. Fill in the necessary function arguments: from (address), to (address), and id (uint256).
+
+![](/img/build/get-started/puppy-transferfrom.png)
+
+4. Confirm the transaction and wait for it to complete.
+
+## Conclusion
+
+Congratulations! if you made it to the end of this guide. If you have any questions, visit the [Klaytn Forum](https://forum.klaytn.foundation/) or reach out to the [official thirdweb support](https://support.thirdweb.com/). However, below is a list of useful resources you might need while further building with Thirdweb on Klaytn.
+
+* [Thirdweb Docs](https://portal.thirdweb.com/)
+* [How to build a dApp using Thirdweb](https://blog.thirdweb.com/guides/how-to-build-a-dapp/)
+* [Create your own NFT marketplace with NextJS and TypeScript](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/)
+
diff --git a/docs/build/tools/wallets/wallet-libraries/particle.md b/docs/build/tools/wallets/wallet-libraries/particle.md
new file mode 100644
index 00000000000..7671832941e
--- /dev/null
+++ b/docs/build/tools/wallets/wallet-libraries/particle.md
@@ -0,0 +1,529 @@
+---
+sidebar_label: Particle Network
+---
+
+# Integrate Particle Network into a dApp
+
+![](/img/build/tools/particle.png)
+
+## Introduction
+
+[Particle Network](https://particle.network) is the intent-centric, modular access layer of Web3. With Particle's Smart Wallet-as-a-Service, developers can curate a seamless user experience through modular and customizable EOA/AA embedded wallet components. Using MPC-TSS for key management, Particle can streamline user onboarding via their Web2 accounts –such as Google accounts, email addresses, and phone numbers.
+
+Through APIs and SDKs available on both mobile and desktop platforms, developers can integrate Particle’s Wallet-as-a-Service across a variety of scenarios, with the capacity to be customized and implemented in a way that matches the specific needs of a given application.
+
+To leverage Particle Network on alternative platforms, such as Android, iOS, React Native, Flutter, & Unity, kindly refer to Particle’s [documentation](https://docs.particle.network).
+
+## Prerequisites
+
+* A working react project (by executing `npx create-react-app project-name`)
+* A project ID, client key, and app ID from the [Particle dashboard](https://dashboard.particle.network).
+* A WalletConnect project ID from the [WalletConnect dashboard](https://cloud.walletconnect.com/).
+
+## Installation
+
+To leverage Particle Network, specifically Particle Connect, within your dApp, you'll need to first install the required libraries. In addition to this, if you'd like to use a standard Web3 library, such as [ethers.js](https://docs.ethers.org/v6/) or [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html), then you'll need to install theme too. For this guide, we'll be using ethers.js.
+
+```bash
+npm install --save @particle-network/connectkit
+npm install --save @particle-network/chains
+npm install --save @particle-network/connectors
+npm install --save ethers
+```
+
+## Initializing Particle Connect
+
+After successfully installing the aforementioned libraries, you'll need to head into your `index.js` (or `.ts`) file to configure Particle Connect. This specifically entails wrapping your `App` component with `ModalProvider` (imported from `@particle-network/connectkit`) and passing in `options`, which contains the parameters detailed below.
+
+```js
+import { ModalProvider } from '@particle-network/connectkit';
+import { Klaytn } from '@particle-network/chains';
+import { evmWallets } from '@particle-network/connectors';
+
+const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
+root.render(
+
+
+
+
+
+);
+```
+
+## Connecting Wallet
+
+With your `index.js` file setup, you can move onto connecting your users through a central "Connect Wallet" button. To do this, you can import `ConnectButton` from `@particle-network/connectkit` alongside its corresponding css. Upon using `ConnectButton` within your `App` component, a standard "Connect Wallet" button will appear to facilitate connection.
+
+```js
+import '@particle-network/connectkit/dist/index.css';
+import { ConnectButton } from '@particle-network/connectkit';
+
+export const App = () => {
+ return ;
+};
+```
+
+
+## Getting Account and Balance
+
+With a wallet now successfully connected through `ConnectButton`, you can retrieve the users associated Klaytn address. Additionally, you can retrieve its current balance (in KLAY) through ethers.js, passing in the corresponding EIP-1193 provider object retrieved from `useParticleProvider` within `@particle-network/connectkit`.
+
+```js
+import { useParticleProvider } from '@particle-network/connectkit';
+
+const provider = useParticleProvider();
+
+const [address, setAddress] = useState("");
+const [balance, setBalance] = useState("");
+
+const connectWallet = async() => {
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(web3authProvider);
+ const ethersProvider = new ethers.BrowserProvider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Get user's Ethereum public address
+ const address = signer.address;
+
+ // Get user's balance in ether
+ const balance = ethers.formatEther(
+ await ethersProvider.getBalance(address) // balance is in wei
+ );
+
+ setAddress(address);
+ setBalance(balance);
+
+return (
+
+
Connect Wallet
+
Wallet Address: ${address} Balance: ${balance}
+
+ );
+}
+```
+
+## Disconnecting Wallet
+
+Once a user has logged in, you can programmatically force a logout through `disconnect` derived from `useParticleConnect`. This will disconnect the current active session from your dApp, returning the user to their initial state.
+
+```js
+import { useParticleConnect } from '@particle-network/connectkit';
+
+const { disconnect } = useParticleConnect();
+
+function App() {
+
+const disconnectUser = async () => {
+ await disconnect();
+ refreshState();
+}
+
+// refresh state
+const refreshState = () => {
+ setAddress();
+ setBalance();
+// make sure to add every other useState modifier function declared here.
+}
+
+return (
+
+ Disconnect
+
+ );
+}
+```
+
+## Getting User Info
+
+While traditional Web3 wallets are offered as connection mechanisms through Particle Connect, social logins through social accounts such as your email address, Google account, phone number, etc. are also available. If a user decides to log in with a Web2 account, you'll have the ability to call `getUserInfo` from `@particle-network/auth-core`, which will return an object containing key details such as their name, email, wallet addresses, etc.
+
+```js
+import { getUserInfo } from '@particle-network/auth-core';
+
+const [userData, setUserData] = useState({});
+
+const getUserInfo = async () => {
+ const user = getUserInfo();
+ setUserData(user);
+};
+
+return (
+
+
Get User Info
+
{ userData ? `User Email: ${userData.email}, User Name: ${userData.name}` : ""}
+
+ );
+```
+
+## Signing Messages
+
+With a provider initialized (through `useParticleProvider`) and passed into your ethers.js instance, message signing can be initiated as usual through `signer.signMessage`.This will directly display a signature popup for the user to confirm. Its specific nature will depend on which connection mechanism the user chose.
+
+```js
+ // add to the existing useState hook.
+const [signedMessage, setSignedMessage] = useState("");
+
+const signMessage = async(e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ const originalMessage = e.target.message.value;
+ const result = await signer.signMessage(originalMessage);
+ setSignedMessage(result)
+}
+
+
+return (
+
+
+
SignedMessage: ${signedMessage}
+
+ );
+
+```
+
+## Sending Native Transaction
+
+Similar to `signer.signMessage`, you can use the same provider mechanism to send a native transaction, with KLAY in this case. This can be done through `signer.sendTransaction`, passing in standard fields such as `to`, `value`, and so on.
+
+```js
+ // add to the existing useState hook.
+ const [txHash, setTxHash] = useState();
+
+ const sendKlay = async () => {
+
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+ const destination = "paste recipient address";
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Submit transaction to the blockchain and wait for it to be mined
+ const tx = await signer.sendTransaction({
+ to: destination,
+ value: ethers.parseEther("0.1"),
+ maxPriorityFeePerGas: "5000000000", // Max priority fee per gas
+ maxFeePerGas: "6000000000000", // Max fee per gas
+ })
+
+
+ const receipt = await tx.wait();
+ setTxHash(receipt.hash)
+}
+
+return (
+
+);
+
+```
+
+## Working with a Smart Contract
+
+1. **Deploying a Contract**
+
+More complex transactions, such as contract deployments, are also possible through Particle, whether you're using an external Web3 wallet or the included social login embedded wallet. An example of this is shown below.
+
+```js
+// add to the existing useState hook.
+const [contractAddress, setContractAddress] = useState(null);
+
+const deployContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+// this guide uses ethers version 6.3.0.
+const ethersProvider = new ethers.BrowserProvider(provider);
+// for ethers version below 6.3.0.
+// const provider = new ethers.providers.Web3Provider(provider);
+
+const signer = await ethersProvider.getSigner();
+
+// paste your contractABI
+const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract byte code
+ const contractBytecode = '608060405234801561001057600080fd5b506040516102063803806102068339818101604052810190610032919061007a565b80600081905550506100a7565b600080fd5b6000819050919050565b61005781610044565b811461006257600080fd5b50565b6000815190506100748161004e565b92915050565b6000602082840312156100905761008f61003f565b5b600061009e84828501610065565b91505092915050565b610150806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea26469706673582212200370e757ac1c15a024febfa9bf6999504ac6616672ad66bd654e87765f74813e64736f6c63430008120033'
+
+ const contractFactory = new ContractFactory(contractABI, contractBytecode, signer);
+
+ const contract = await contractFactory.deploy(400);
+
+ // get contract address
+ setContractAddress(contract.target)
+}
+
+
+return (
+
+
Deploy Contract
+
Contract Address: {contractAddress ? contractAddress : ''}
+
+ );
+```
+
+Similarly, you can send write transactions directly to an existing (deployed) contract using the same ethers.js instance leveraging the Particle Connect provider derived from `useParticleProvider`. On the frontend, this functionality will mimic that of a contract deployment, message signature, or transaction request.
+
+2. **Writing to a Contract**
+
+```js
+ // add to existing useState hook
+ const [contractTx, setContractTx] = useState();
+
+ const writeToContract = async (e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Paste your contractABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, signer);
+
+ const value = e.target.store_value.value;
+
+ // Send a transaction to smart contract to update the value
+ const tx = await contract.store(value);
+
+ // Wait for the transaction to finish
+ const receipt = await tx.wait();
+ const result = receipt.hash;
+
+ setContractTx(result)
+ }
+
+return (
+
+
+
Write-to-contract Tx Hash: ${contractTx}
+
+);
+```
+
+3. **Reading from a Contract**
+
+Without using the wallet itself, purely the provider, read-only methods can be called on contracts through a standard ethers.js instance. This mechanism won't deviate from the typical structure associated with such an action, the primary difference here is the usage of the integrated `provider` object.
+
+```js
+// add to existing useState hook
+ const [contractMessage, setContractMessage] = useState();
+
+ const readFromContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ // paste your contract ABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, ethersProvider)
+
+ // Reading a message from the smart contract
+ const contractMessage = await contract.retrieve();
+ setContractMessage(contractMessage.toString())
+ }
+
+
+ return (
+ Read From Contract
+ Read-from-contract Message: ${contractMessage}
+ )
+```
+
+## Next Steps
+
+For additional guides regarding Particle Network (Particle Connect, Particle Auth, and other SDKs), please refer to the [Particle Network docs](https://docs.particle.network) and the [Particle Network GitHub account](https://github.com/Particle-Network). Additionally, you may want to visit the [Particle Network blog](https://blog.particle.network) for additional information on Particle Network's services, upcoming releases, and tech stack. Also, you can find the full implementation of the code for this guide on [GitHub](https://github.com/klaytn/examples/tree/main/wallet-libraries/particle-sample).
diff --git a/docs/learn/kni.md b/docs/learn/kni.md
index a2fe39f905a..148bdbfebe4 100644
--- a/docs/learn/kni.md
+++ b/docs/learn/kni.md
@@ -34,4 +34,4 @@ kni://a979...163c@10.0.0.1:32323?subport=32324&discport=30301 # multi-channel
```
If you want to know how to generate a KNI of a node, please refer to [Node Key & Node URI Creation](../nodes/core-cell/install/before-you-install.md#node-key-node-uri-creation).
-The KNI scheme is used in node discovery protocol, [setting `static-nodes.json` file](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [addPeer API](../references/json-rpc/admin.md#admin_addpeer), [bootnodes option](../nodes/references/configuration-files.md#properties) and etc.
+The KNI scheme is used in node discovery protocol, [setting `static-nodes.json` file](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [addPeer API](../references/json-rpc/admin.md#admin_addpeer), [bootnodes option](../misc/operation/configuration.md#properties) and etc.
diff --git a/docs/learn/storage/live-pruning.md b/docs/learn/storage/live-pruning.md
index 4e83bc3bb55..562a8e34935 100644
--- a/docs/learn/storage/live-pruning.md
+++ b/docs/learn/storage/live-pruning.md
@@ -24,4 +24,4 @@ To use StateDB Live Pruning, the following environment should be set up:
1. Use a binary of klaytn v1.11.0 or higher.
2. Please download the pruned DB snapshot from this [link](https://packages.klaytn.net/cypress/pruning-chaindata/) if you don't want to synchronize all blocks from the genesis block.
3. (Optional) Add the flag `--state.live-pruning-retention ` for how long recent states are retained. Default value is 172800 (48 hours)
-4. Refer to the following link to set the DB location and restart the node with `--state.live-pruning` added [chaindata-change](../../nodes/node-migration.md#disk-management-1) section.
\ No newline at end of file
+4. Refer to the following link to set the DB location and restart the node with `--state.live-pruning` added [chaindata-change](../../misc/operation/chaindata-change.md) section.
\ No newline at end of file
diff --git a/docs/learn/storage/state-migration.md b/docs/learn/storage/state-migration.md
index 3fe48181618..ca2563ff45d 100644
--- a/docs/learn/storage/state-migration.md
+++ b/docs/learn/storage/state-migration.md
@@ -10,4 +10,4 @@ More details on the mechanism of State Migration can be found below:
[Klaytn v1.5.0 State Migration: Saving Node Storage](https://medium.com/klaytn/klaytn-v1-5-0-state-migration-saving-node-storage-1358d87e4a7a)
[Klaytn State Migration: An Efficient Way to Reduce Blockchain Data](https://medium.com/klaytn/klaytn-state-migration-an-efficient-way-to-reduce-blockchain-data-6615a3b36523)
-To use State Migration, please refer to [`Chaindata Migration`](../../nodes/node-migration.md#disk-management-2) page of Operation Guide.
\ No newline at end of file
+To use State Migration, please refer to [`Chaindata Migration`](../../misc/operation/chaindata-migration.md) page of Operation Guide.
\ No newline at end of file
diff --git a/docs/nodes/node-migration.md b/docs/misc/operation/chaindata-change.md
similarity index 68%
rename from docs/nodes/node-migration.md
rename to docs/misc/operation/chaindata-change.md
index 88c9b1c3557..2c598f0290d 100644
--- a/docs/nodes/node-migration.md
+++ b/docs/misc/operation/chaindata-change.md
@@ -1,15 +1,13 @@
-# Node Migration
-
-## Change Chaindata
+# Change Chaindata
💡 THIS GUIDE IS BASED ON Amazon Linux 2
-### CN Node Migration STEP
+## CN Node **Migration STEP**
-#### Create new disk
+### Create new disk
1. Preparing new disk (3,500GB disk) or creating new path on the current disk (It must have 3,500GB available.)
@@ -18,7 +16,7 @@
-##### Option 1 - New disk (more than 2500GB)
+#### Option 1 - New disk (more than 2500GB)
1. Attach the disk to EC2 and run the command below
@@ -43,7 +41,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-##### Option 2 - Current Disk (not recommended)
+#### Option 2 - Current Disk (not recommended)
1. Create New Folder
@@ -52,7 +50,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-#### Download the latest chaindata
+### Download the latest chaindata
Download Chain Data to the data of the new Klaytn Data DIR. (You can check the details on Chain Data in [https://packages.klaytn.net/cypress/chaindata/](https://packages.klaytn.net/cypress/chaindata/))
@@ -81,9 +79,11 @@ $ tar -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
$ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
```
-### Configure DATA_DIR & LOG_DIR
-#### Option 1 - Swap the old & new path
+
+## Configure DATA_DIR & LOG_DIR
+
+### Option 1 - Swap the old & new path
🚨 TBD
@@ -93,9 +93,8 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. Stop klaytn daemon process before swap
1. ***IMPORTANT*** Remove CN node in Klaytn council if the node type is CN
- 💡 You can get packages for EN in the [Startup the CN](core-cell/install/install-consensus-nodes.md).
-
-
+ 💡 You can get packages for EN in the [Startup the CN](../../nodes/core-cell/install/install-consensus-nodes.md#startup-the-cn).
+
2. Swap the old and new path
1. New Disk
@@ -115,7 +114,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
3. (Optional) Delete the old path if it is not required anymore
-#### Option 2 - Update DATA_DIR & LOG_DIR in klaytn config file
+### Option 2 - Update DATA_DIR & LOG_DIR in klaytn config file
1. Klaytn DIR Path Change
- Option 1 - New disk
@@ -123,7 +122,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
- Option 2 - Current disk
- change the DIR Path from `kcnd.conf`
-### Restart Process(or Reboot Instance)
+## Restart Process(or Reboot Instance)
💡 If reboot is required to add an additional disk, reboot the instance.
@@ -131,37 +130,4 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. ***IMPORTANT*** Remove CN node in Klaytn council if the node type is CN
-2. Restart process or reboot instance
-
-
-## Migrate Chaindata
-
-
-
-💡 Run migration only for PN and EN nodes (not CN)
-
-
-
-### Things to know before this job
-- It needs m6i.8xlarge spec (32 cores and 128GB memory) or higher
-- 7 days for full progress (Migration is divided in 2 parts)
- - Part 1 - Migrate DB to a new directory (The message “State migration is completed” appears)
- - Part 2 - New Block generation on new directory (old directory will be deleted after this)
-- 500GB free space should be available
-
-### Go to Klaytn Console
-
-```bash
-$ kpn attach klay.ipc
-
-#start chain data Migration
-> admin.startStateMigration()
-null
-
-# Check Status
-> admin.stateMigrationStatus
-
-#stop Migration
-> admin.stopStateMigration()
-
-```
+2. Restart process or reboot instance
\ No newline at end of file
diff --git a/docs/misc/operation/chaindata-migration.md b/docs/misc/operation/chaindata-migration.md
new file mode 100644
index 00000000000..e698a51952b
--- /dev/null
+++ b/docs/misc/operation/chaindata-migration.md
@@ -0,0 +1,30 @@
+# Migrate Chaindata
+
+
+💡 Run migration only for PN and EN nodes (not CN)
+
+
+
+## Things to know before this job
+- It needs m6i.8xlarge spec (32 cores and 128GB memory) or higher
+- 7 days for full progress (Migration is divided in 2 parts)
+ - Part 1 - Migrate DB to a new directory (The message “State migration is completed” appears)
+ - Part 2 - New Block generation on new directory (old directory will be deleted after this)
+- 500GB free space should be available
+
+## Go to Klaytn Console
+
+```bash
+$ kpn attach klay.ipc
+
+#start chain data Migration
+> admin.startStateMigration()
+null
+
+# Check Status
+> admin.stateMigrationStatus
+
+#stop Migration
+> admin.stopStateMigration()
+
+```
diff --git a/docs/nodes/references/configuration-files.md b/docs/misc/operation/configuration.md
similarity index 55%
rename from docs/nodes/references/configuration-files.md
rename to docs/misc/operation/configuration.md
index ea7a4b21bf7..d7fa6fe8a77 100644
--- a/docs/nodes/references/configuration-files.md
+++ b/docs/misc/operation/configuration.md
@@ -1,95 +1,7 @@
-# Configuration Files
+# Configuration
This document explains the configurable properties of the node. Klaytn node package ships with good defaults and requires very little configuration. If you changed any settings of a running node, you must restart the node to reflect the changes.
-## SCN Configuration File location
-
-* `kscnd.conf` for configuring the Service Chain Consensus Node
-
-The configuration file is located in the `conf` directory, whose default location depends on whether or not the installation is from an archive distribution \(`tar.gz`\) or a package distribution \(RPM\).
-
-* For the archive distribution, the config directory location defaults to `$INSTALL_PATH/kscn-linux-amd64/conf/`.
-* For the package distribution, the config directory defaults to `/etc/kscnd/conf/`.
-
-## Configuration File Format
-
-Below is a sample configuration file for the SCN that stores the blockchain data in the default location, which is `~/kscnd_home` with the archive distribution, `/var/kscnd/data` with the package distribution.
-
-```text
-# Configuration file for the kcnd
-
-NETWORK=
-# if you specify NETWORK_ID, a private network is created.
-NETWORK_ID=
-PORT=32323
-SERVER_TYPE="fasthttp"
-SYNCMODE="full"
-VERBOSITY=3
-MAXCONNECTIONS=100
-# LDBCACHESIZE=10240
-REWARDBASE="0x0"
-
-...
-
-DATA_DIR=
-LOG_DIR=$DATA_DIR/logs
-```
-
-The recommended txpool sizes for SCN are as follows.
-
-```text
-TXPOOL_EXEC_SLOTS_ALL=16384
-TXPOOL_NONEXEC_SLOTS_ALL=16384
-TXPOOL_EXEC_SLOTS_ACCOUNT=16384
-TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
-```
-
-## Properties
-
-The configuration file has the following configurable properties. SCN, SPN and SEN configuration files have the same properties.
-
-| Name | Description |
-| --- | --- |
-| NETWORK | Network name that this node will join. This value is used when NETWORK_ID is not defined. ("cypress", "baobab") |
-| NETWORK_ID | Klaytn network ID. If you create a local private network, you will define the network ID for your own. Following IDs are reserved for pre-configured networks. 8217 : Cypress (Main network) 1000 : Aspen test network 1001 : Baobab test network |
-| PORT | P2P port. (Default: "32323") |
-| SERVER_TYPE | JSON RPC server type. ("http", "fasthttp") |
-| SYNCMODE | Blockchain sync mode. ("fast", "full") |
-| VERBOSITY | Logging verbosity. (0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail) |
-| MAXCONNECTIONS | Maximum number of physical connections. All single-channel peers can have up to MAXCONNECTIONS peers. All multi-channel peers can have up to MAXCONNECTIONS/2 peers. Network connection is disabled if it is set to 0. (Default: 10) |
-| LDBCACHESIZE | Size of in-memory cache in LevelDB (MiB). (Default : 768) |
-| REWARDBASE | Account address that will receive block consensus rewards. This property only applies to CN. |
-| TXPOOL_EXEC_SLOTS_ALL | Maximum number of executable transaction slots for all accounts. (Default: 4096) |
-| TXPOOL_NONEXEC_SLOTS_ALL | Maximum number of non-executable transaction slots for all accounts. (Default: 1024) |
-| TXPOOL_EXEC_SLOTS_ACCOUNT | Number of executable transaction slots guaranteed per account. (Default: 16) |
-| TXPOOL_NONEXEC_SLOTS_ACCOUNT | Maximum number of non-executable transaction slots guaranteed per account. (Default: 64) |
-| TXPOOL_LIFE_TIME | Maximum amount of time non-executable transactions is queued. (Default : 30m for SEN, 5m for SCN/SPN) |
-| RPC_ENABLE | Enable the HTTP-RPC server if it is set to 1. |
-| RPC_API | Comma-separated list of APIs offered over the HTTP-RPC interface. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
-| RPC_PORT | HTTP-RPC server listening port. (Default: "8551") |
-| RPC_ADDR | HTTP-RPC server listening interface. (Default: "localhost") |
-| RPC_CORSDOMAIN | Comma-separated list of domains from which to accept cross-origin requests (browser enforced) |
-| RPC_VHOSTS | Comma-separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (Default: {"localhost"}) |
-| WS_ENABLE | Enable the WS-RPC server if it is set to 1. |
-| WS_API | APIs offered over the WS-RPC interface. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
-| WS_ADDR | WS-RPC server listening interface. |
-| WS_PORT | WS-RPC server listening port. (Default : "8552") |
-| WS_ORIGINS | Origins from which to accept websockets requests. (Default: "localhost") |
-| SC_MAIN_BRIDGE | Enable main bridge service if it is set to 1. Used for service chain configuration. |
-| SC_MAIN_BRIDGE_PORT | Main bridge listens on this port. (Default : "50505") |
-| SC_MAIN_BRIDGE_INDEXING | Enable storing transaction hash of child chain transactions for fast access to child chain data if it is set to 1. |
-| METRICS | Enable metrics collection and reporting if it is set to 1. |
-| PROMETHEUS | Enable prometheus exporter if it is set to 1. |
-| DB_NO_PARALLEL_WRITE | Disable parallel writes of block data to persistent database if it is set to 1. |
-| MULTICHANNEL | Create a dedicated channel for block propagation if it is set to 1. |
-| SUBPORT | Listening sub port number if multichannel option is enabled. (Default : "32324") |
-| NO_DISCOVER | Turn off the discovery option if it is set to 1. |
-| BOOTNODES | Comma-separated kni addresses of bootstrap nodes. |
-| ADDITIONAL | For additional command-line options. e.g) --txpool.nolocals |
-| DATA_DIR | Klaytn blockchain data folder path. |
-| LOG_DIR | Log folder path. |
-
-
## CN Configuration File location
* `kcnd.conf` for configuring the Consensus Node
@@ -179,7 +91,7 @@ The configuration file has the following configurable properties. CN and PN conf
| Name | Description |
| --- | --- |
| NETWORK | Network name that this node will join. This value is used when NETWORK_ID is not defined. ("cypress", "baobab") |
-| NETWORK_ID | Klaytn network ID. If you create a local private network, you will define the network ID for your own. Following IDs are reserved for pre-configured networks. 8217 : Cypress (Main network) 1000 : Aspen test network 1001 : Baobab test network |
+| NETWORK_ID | Klaytn network ID. If you create a local private network, you will define the network ID for your own. Following IDs are reserved for pre-configured networks. 8217 : Cypress (Main network) 1000 : Aspen test network 1001 : Baobab test network |
| PORT | P2P port. (Default: "32323") |
| SERVER_TYPE | JSON RPC server type. ("http", "fasthttp") |
| SYNCMODE | Blockchain sync mode. ("fast", "full") |
@@ -214,4 +126,3 @@ The configuration file has the following configurable properties. CN and PN conf
| ADDITIONAL | For additional command-line options. e.g) --txpool.nolocals |
| DATA_DIR | Klaytn blockchain data folder path. |
| LOG_DIR | Log folder path. |
-
diff --git a/docs/misc/operation/klaytn-command.md b/docs/misc/operation/klaytn-command.md
new file mode 100644
index 00000000000..d90e227049d
--- /dev/null
+++ b/docs/misc/operation/klaytn-command.md
@@ -0,0 +1,57 @@
+# Frequently Used Commands
+
+## How to find the Klaytn Directory (Normally “Klaytn DIR”)
+
+---
+You can check Klaytn directory at `kcn` or `kpn` config. Config file is located under `/etc/kcnd/conf` or `/etc/kpnd/conf`.
+
+```bash
+cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
+
+# Find DATA_DIR and LOG_DIR path as below example
+DATA_DIR=/var/kcnd/data/
+LOG_DIR=/var/kcnd/logs/
+```
+
+## How to connect to Klaytn Console
+
+---
+Connect to Klaytn API to check node and network status.
+
+```bash
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach klay.ipc
+>
+```
+
+## Useful APIs
+
+```bash
+# Check current block Number
+ > klay.blockNumber
+
+# Check my kni address
+ > admin.nodeInfo
+
+# Check my dode address
+ > governance.nodeAddress
+
+# Check other connected nodes
+ > admin.peers
+
+# Add or remove nodes
+ > admin.addPeer("kni")
+ > admin.removePeer("kni")
+```
+
+## How to get the API Result only
+
+```jsx
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach --exec klay.ipc
+
+e.g.
+# Check my dode address
+$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
+"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
+```
diff --git a/docs/misc/operation/log-management.md b/docs/misc/operation/log-management.md
new file mode 100644
index 00000000000..997280901e3
--- /dev/null
+++ b/docs/misc/operation/log-management.md
@@ -0,0 +1,61 @@
+# Log operation
+
+## Configure Log Rotation
+
+You can enable the log rotation by setting the `--log.rotate` flag, and configure the log rotation settings by the following flags.
+- `--log.rotate`: By setting this flag, it enables the log rotation and applies the other log rotation options
+- `--log.maxsize`: Specifies the file size in MB that triggers backup file creation
+- `--log.maxbackups`: Determines the maximum number of backup files that can be stored. Once this limit is reached, older logs will be deleted.
+- `--log.maxage`: Represents the maximum number of days to retain a log file. For example, if set to 30, a backup file will be deleted after 30 days.
+- `--log.compress`: By setting this flag, it compresses the backup logs in gz format.
+
+Example
+```
+./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
+```
+You can also enable and configure the log rotation by setting following options in configuration file (e.g., `kend.conf`).
+```
+# log rotation related options
+LOG_ROTATE=1 # setting 1 to enable the log rotation related options
+LOG_MAXSIZE=100 # the unit is MB
+LOG_MAXBACKUPS=10
+LOG_MAXAGE=30 # maximum number of days to retain a log file
+LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
+```
+It is recommended to download and use the package which version is v1.11.0 or higher. You can download it in Binaries section of the release note(e.g., [v1.11.0 release note](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). Make sure next three files are v1.11.0 or higher: configuration file, daemon, and binary. Otherwise, it won't work.
+
+## Normal Log Status
+
+| Type | Message | Description | |
+| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
+| Error | FastWebsocketHandler fail to upgrade message | Version issue of WebSocket connection | low |
+| Error | invalid index of the proposer | The error that occurs when EN receives transactions from CN | low |
+| WARN | ProtocolManager failed to read msg | | low |
+| WARN | Failed doConnTypeHandshake | | low |
+| ERRORErro | Protocol istanbul/64 failed | Peer disconnected | low |
+| Error | Fasthttp Err | Error when serving connection: read timeout with nothing read | low |
+| Error | Fasthttp Err | Error when serving connection: error when reading request headers: cannot find http request method in "\x16… | low |
+| Warn | hash=b1b26c…6b220a err="insufficient balance for transfer" | This log occurs when the transaction processed (usually mining) cannot be executed due to insufficient balance in the "from account”(Theoretically, it occurs when the balance was sufficient at the time when the transaction was created and entered the txpool, but there was no balance at the time of the actual execution.) | low |
+| ERROR | ERROR\[06/06,23:23:46 Z] \[7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | Any type of value may be included in the data field of Anchoring tx. However, an error log is the output to the node when an incorrect type of value is entered | |
+| Proposer : `Successfully wrote mined block` | | | |
+
+Non Proposer `Inserted a new block`
+
+## Log Level Change (0\~5)
+
+Go to Klaytn Console
+
+```
+#default Value
+> debug.verbosity(3)
+# hight detail logs Value
+> debug.verbosity(5)
+# No Logs Value
+> debug.verbosity(0)
+
+# Default Value for Blockchain log
+> debug.vmodule("blockchain=3")
+# High detail Value for Blockchain Log
+> debug.vmodule("blockchain=5")
+
+```
diff --git a/docs/nodes/references/node-logs.md b/docs/misc/operation/node-log.md
similarity index 56%
rename from docs/nodes/references/node-logs.md
rename to docs/misc/operation/node-log.md
index ed90ba7e2fd..ff0cf2fb379 100644
--- a/docs/nodes/references/node-logs.md
+++ b/docs/misc/operation/node-log.md
@@ -1,4 +1,4 @@
-# Node Logs
+# Node Log
This page details some important or frequently asked logs from Klaytn nodes.
If the Klaytn log is modified or newly added/deleted, please edit this page as well.
@@ -18,7 +18,6 @@ If you encounter any abnormal situation, please report it to the klaytn team via
| NodeCN | CN | **fail to SendNewBlock** peer=d35220eccdb0de7b err="shutting down" | same as `Protocol istanbul/64 failed` | same as `Protocol istanbul/64 failed` |
| NetworksRPC | EN (mostly) | **FastWebsocketHandler fail to upgrade message** error="websocket: version != 13" | Version issue of WebSocket connection | The header of the request should contain `Sec-Websocket-Version` field with the value set at 13. You may not have used klaytn rpc client. |
-
## Warn Logs
| Log Type | Node Type | Log Message | Description | Suggested Guide |
@@ -31,7 +30,6 @@ If you encounter any abnormal situation, please report it to the klaytn team via
| Work | CN | **Transaction aborted due to time limit** hash= | The block execution time when mining should not exceed 250ms, so the last transaction can be aborted due to this time limit. | Confirm that the transaction enters the block. |
| Work | CN | **Transaction failed, account skipped** hash=b1b26c...6b220a err="insufficient balance for transfer" Error(before v1.6.2) Warn(after v1.6.2) | When a transaction cannot be executed during mining due to an insufficient balance in the `from` account (Theoretically, it occurs when the balance was sufficient at the time when the transaction was created and entered the txpool, but not at the actual execution time.) | Check if the `from` account is really out of balance. |
-
## Info Logs
`Info` log contains the additional information for you to know more about the node status, so you don't need to handle `Info` level log.
@@ -50,65 +48,3 @@ If you encounter any abnormal situation, please report it to the klaytn team via
| Work | CN | **Successfully wrote mined block** num=14 hash=13cbfc…f007fc txs=0 elapsed=617.709µs | [Only Proposer] If the node is a proposer, and consensus is succeed, the proposer needs to store the block execution result in the db. This log means the storing was successful. |
| Work | CN | **Mining too far in the future** wait=1s | In order to maintain 1 second block creation period, the node sleeps for "1s - previous block generation/propagation/execution time". - wait: how much time the node sleeps|
| VM | CN/PN/EN | **Returning since the addr is not a program account** addr= | Somebody tries to call a non-existent contract. Tip. In Klaytn, program account is equivalent to contract account. |
-
-## Log operations
-
-### Configure Log Rotation
-
-You can enable the log rotation by setting the `--log.rotate` flag, and configure the log rotation settings by the following flags.
-- `--log.rotate`: By setting this flag, it enables the log rotation and applies the other log rotation options
-- `--log.maxsize`: Specifies the file size in MB that triggers backup file creation
-- `--log.maxbackups`: Determines the maximum number of backup files that can be stored. Once this limit is reached, older logs will be deleted.
-- `--log.maxage`: Represents the maximum number of days to retain a log file. For example, if set to 30, a backup file will be deleted after 30 days.
-- `--log.compress`: By setting this flag, it compresses the backup logs in gz format.
-
-Example
-```
-./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
-```
-You can also enable and configure the log rotation by setting following options in configuration file (e.g., `kend.conf`).
-```
-# log rotation related options
-LOG_ROTATE=1 # setting 1 to enable the log rotation related options
-LOG_MAXSIZE=100 # the unit is MB
-LOG_MAXBACKUPS=10
-LOG_MAXAGE=30 # maximum number of days to retain a log file
-LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
-```
-It is recommended to download and use the package which version is v1.11.0 or higher. You can download it in Binaries section of the release note(e.g., [v1.11.0 release note](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). Make sure next three files are v1.11.0 or higher: configuration file, daemon, and binary. Otherwise, it won't work.
-
-### Normal Log Status
-
-| Type | Message | Description | |
-| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
-| Error | FastWebsocketHandler fail to upgrade message | Version issue of WebSocket connection | low |
-| Error | invalid index of the proposer | The error that occurs when EN receives transactions from CN | low |
-| WARN | ProtocolManager failed to read msg | | low |
-| WARN | Failed doConnTypeHandshake | | low |
-| Error | Protocol istanbul/64 failed | Peer disconnected | low |
-| Error | Fasthttp Err | Error when serving connection: read timeout with nothing read | low |
-| Error | Fasthttp Err | Error when serving connection: error when reading request headers: cannot find http request method in "\x16… | low |
-| Warn | hash=b1b26c…6b220a err="insufficient balance for transfer" | This log occurs when the transaction processed (usually mining) cannot be executed due to insufficient balance in the "from account”(Theoretically, it occurs when the balance was sufficient at the time when the transaction was created and entered the txpool, but there was no balance at the time of the actual execution.) | low |
-| ERROR | ERROR\[06/06,23:23:46 Z] \[7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | Any type of value may be included in the data field of Anchoring tx. However, an error log is the output to the node when an incorrect type of value is entered | |
-| Proposer : `Successfully wrote mined block` | | | |
-
-Non Proposer `Inserted a new block`
-
-### Log Level Change (0~5)
-
-Go to Klaytn Console
-
-```
-#default Value
-> debug.verbosity(3)
-# hight detail logs Value
-> debug.verbosity(5)
-# No Logs Value
-> debug.verbosity(0)
-
-# Default Value for Blockchain log
-> debug.vmodule("blockchain=3")
-# High detail Value for Blockchain Log
-> debug.vmodule("blockchain=5")
-
-```
diff --git a/docs/misc/operation/operation.md b/docs/misc/operation/operation.md
new file mode 100644
index 00000000000..337793853f0
--- /dev/null
+++ b/docs/misc/operation/operation.md
@@ -0,0 +1,9 @@
+# Operation Guide
+
+This guide serves as a handy quick reference for Node operators to efficiently configure, monitor, and troubleshoot their Klaytn nodes. It covers common tasks like configuring nodes, understanding and analyzing logs, managing chaindata, and using essential commands. The guide aims to help Node operators smoothly run and maintain their blockchain nodes by equipping them with key information and best practices.
+
+```mdx-code-block
+import DocCardList from '@theme/DocCardList';
+
+
+```
\ No newline at end of file
diff --git a/docs/nodes/references/troubleshooting.md b/docs/misc/operation/troubleshooting.md
similarity index 99%
rename from docs/nodes/references/troubleshooting.md
rename to docs/misc/operation/troubleshooting.md
index 9091733d153..7b2c6875d25 100644
--- a/docs/nodes/references/troubleshooting.md
+++ b/docs/misc/operation/troubleshooting.md
@@ -1,4 +1,4 @@
-# Errors & Troubleshooting
+# Troubleshooting
## Where can I find a log file for the running Klaytn node using the Klaytn binary package?
@@ -109,5 +109,4 @@ Fatal: Error starting protocol stack: rewound to block number 0, but repair fail
```
**Answer**
-
Due to a compatibility issue, we strongly recommend to upgrade EN's binary to v0.9.6 if you have been running an EN with older versions (<= v0.8.2). If it is your first time upgrading the EN to v0.9.x and want to migrate the data from the older version, you must specify the option `ADDITIONAL="--db.num-statetrie-partitions 1"` in the configuration file when you install the newer version.
diff --git a/docs/nodes/core-cell/install/install-consensus-nodes.md b/docs/nodes/core-cell/install/install-consensus-nodes.md
index 0e29fee9b47..622fe777304 100644
--- a/docs/nodes/core-cell/install/install-consensus-nodes.md
+++ b/docs/nodes/core-cell/install/install-consensus-nodes.md
@@ -150,7 +150,7 @@ REWARDBASE="d13f7da0032b1204f77029dc1ecbf4dae2f04241"
...
```
-Keep in mind that the keystore and the password that you created is significantly important, so you must be careful to manage them. See more details about `kcnd.conf` on the [Configuration File](../../../nodes/references/configuration-files.md) section.
+Keep in mind that the keystore and the password that you created is significantly important, so you must be careful to manage them. See more details about `kcnd.conf` on the [Configuration File](../../../misc/operation/configuration.md) section.
### Fast Sync \(Optional\)
@@ -174,7 +174,7 @@ $ tar -C ~/kcnd_home -xvf klaytn-baobab-chaindata-latest.tar.gz
After the data is extracted, you may start the CN normally.
-You can refer to detailed information in the [Chaindata change](../../node-migration.md)
+You can refer to detailed information in the [Chaindata change](../../../misc/operation/chaindata-change.md)
## Startup the CN
@@ -219,6 +219,18 @@ reload the systemd manager configuration with the following command.
$ systemctl daemon-reload
```
+### Export BLS public key info
+
+If the network has activated or will activate the Randao hardfork, each CN maintainer must submit its BLS public key info to the [KIP-113 smart contract](https://kips.klaytn.foundation/KIPs/kip-113).
+
+The BLS public key info can be calculated from the nodekey. To extract it, first start the node. Then use the command:
+
+```
+$ kcn account bls-info --datadir /var/kcnd/data
+```
+
+As a result, `bls-publicinfo-NODEID.json` file will be created.
+
## Testing the Core Cell
It is time to check that Core Cell is successfully installed and it is working as expected after installation.
diff --git a/docs/nodes/core-cell/install/install-proxy-nodes.md b/docs/nodes/core-cell/install/install-proxy-nodes.md
index b33f8c6a6fd..c7a0f9520f3 100644
--- a/docs/nodes/core-cell/install/install-proxy-nodes.md
+++ b/docs/nodes/core-cell/install/install-proxy-nodes.md
@@ -160,7 +160,7 @@ $ tar -C /var/kpnd/data -xvf klaytn-baobab-chaindata-latest.tar.gz
After the data is extracted, you may start the PN normally.
-You can refer to detailed information in the [Chaindata change](../../node-migration.md)
+You can refer to detailed information in the [Chaindata change](../../../misc/operation/chaindata-change.md)
## Startup the PN
diff --git a/docs/nodes/downloads/downloads.md b/docs/nodes/downloads/downloads.md
index e4caec9a67b..582117f0e32 100644
--- a/docs/nodes/downloads/downloads.md
+++ b/docs/nodes/downloads/downloads.md
@@ -8,6 +8,7 @@ sidebar_label: Node Package Downloads
You can get the packages for CN, PN, EN, SCN, SPN and SEN.
+* [v1.12.0](./v1.12.0.md)
* [v1.11.1](./v1.11.1.md)
* [v1.11.0](./v1.11.0.md)
* [v1.10.2](./v1.10.2.md)
diff --git a/docs/nodes/downloads/v1.12.0.md b/docs/nodes/downloads/v1.12.0.md
new file mode 100644
index 00000000000..93bcd0081f8
--- /dev/null
+++ b/docs/nodes/downloads/v1.12.0.md
@@ -0,0 +1,145 @@
+# v1.12.0
+
+## Package Downloads
+
+### RPM
+
+Cypress Packages
+- [kcnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-v1.12.0-0.el7.x86_64.rpm)
+- [kend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-v1.12.0-0.el7.x86_64.rpm)
+
+Baobab Packages
+- [kcnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kend-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-baobab-v1.12.0-0.el7.x86_64.rpm)
+
+Common Packages
+- [kscnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kscnd-v1.12.0-0.el7.x86_64.rpm)
+- [kspnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kspnd-v1.12.0-0.el7.x86_64.rpm)
+- [ksend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/ksend-v1.12.0-0.el7.x86_64.rpm)
+- [kbnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kbnd-v1.12.0-0.el7.x86_64.rpm)
+- [kgen-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0.el7.x86_64.rpm)
+- [homi-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0.el7.x86_64.rpm)
+
+### Linux
+
+Cypress Packages
+- [kcn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-linux-amd64.tar.gz)
+
+Baobab Packages
+- [kcn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-linux-amd64.tar.gz)
+
+Common Packages
+- [kscn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-linux-amd64.tar.gz)
+- [kspn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-linux-amd64.tar.gz)
+- [ksen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-linux-amd64.tar.gz)
+- [kbn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-linux-amd64.tar.gz)
+- [kgen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-linux-amd64.tar.gz)
+- [homi-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-linux-amd64.tar.gz)
+
+### MacOS
+
+Cypress Packages
+- [kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ken-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-arm64.tar.gz)
+
+Baobab Packages
+- [kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+
+Common Packages
+- [kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [homi-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kscn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kspn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ksen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-arm64.tar.gz)
+- [kbn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kgen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-arm64.tar.gz)
+- [homi-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-arm64.tar.gz)
+
+### Windows
+
+- Not supported yet
+
+### Docker
+
+- [klaytn/klaytn:v1.12.0](https://hub.docker.com/r/klaytn/klaytn)
+
+
+## Release Notes
+
+Klaytn v1.12.0 contains a hardfork upgrade that results in backward-incompatible changes. All Baobab nodes must be upgraded to v1.12.0 or higher before the target block number. The hardfork block number for Cypress mainnet will be scheduled in the next version.
+
+This version includes two different hardforks. The first is the features equivalent to Ethereum Caucun hardfork, and the second is an optional hardfork implementing the Randao on-chain randomness.
+
+The hardfork schedule is as follows:
+
+**Baobab testnet**
+
+* Block number: 141367000 (estimated time: 19 Dec, 10:00 AM UTC+9)
+* Hardfork contents: Cancun hardfork, Randao hardfork
+
+### Cancun Hardfork features
+
+* Added the TLOAD, TSTORE opcodes to EVM according to [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) ([#1988](https://github.com/klaytn/klaytn/pull/1988))
+* Added the BLOBBASEFEE, BLOBHASH opcodes and the POINT_EVALUATION (0x0a) precompile to EVM according to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) and [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516) except Blob transaction type support ([#2032](https://github.com/klaytn/klaytn/pull/2032))
+* Added the MCOPY opcode to EVM according to [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) ([#1980](https://github.com/klaytn/klaytn/pull/1980))
+* Modified the behavior of the SELFDESTRUCT opcode according to [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) ([#1986](https://github.com/klaytn/klaytn/pull/1986))
+* Adjusted ComputationCost for the recommended hardware specification, and increased the ComputationCostLimit ([#2037](https://github.com/klaytn/klaytn/pull/2037))
+* Modified the behavior of the EXTCODEHASH opcode to return 0 when the account is empty according to [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) ([#2040](https://github.com/klaytn/klaytn/pull/2040))
+* Fully support AccessList transaction type according to [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) ([#1955](https://github.com/klaytn/klaytn/pull/1955))
+
+### Randao Hardfork features
+
+* Added the System Contract Registry according to [KIP-149](https://github.com/klaytn/kips/issues/149) ([#1968](https://github.com/klaytn/klaytn/pull/1968), [#1987](https://github.com/klaytn/klaytn/pull/1987), [#1999](https://github.com/klaytn/klaytn/pull/1999), [#2054](https://github.com/klaytn/klaytn/pull/2054), [#2059](https://github.com/klaytn/klaytn/pull/2059))
+* Added the BLS Public Key Registry according to [KIP-113](https://github.com/klaytn/kips/issues/113) ([#1951](https://github.com/klaytn/klaytn/pull/1951), [#1990](https://github.com/klaytn/klaytn/pull/1990), [#2017](https://github.com/klaytn/klaytn/pull/2017), [#2029](https://github.com/klaytn/klaytn/pull/2029), [#2052](https://github.com/klaytn/klaytn/pull/2052), [#2053](https://github.com/klaytn/klaytn/pull/2053))
+* Added the RANDAO fields to block headers according to [KIP-114](https://github.com/klaytn/kips/issues/114) ([#2009](https://github.com/klaytn/klaytn/pull/2009), [#2014](https://github.com/klaytn/klaytn/pull/2014), [#2028](https://github.com/klaytn/klaytn/pull/2028))
+* Modified block proposer selection to use unpredictable randomness according to [KIP-146](https://github.com/klaytn/kips/issues/146) ([#2030](https://github.com/klaytn/klaytn/pull/2030), [#2039](https://github.com/klaytn/klaytn/pull/2039))
+
+
+### Improvements
+
+* Added the Upstream EN feature. When an EN fails to find the block data during an API handling, it can query another EN specified by the `--rpc.upstream-en` flag. ([#2013](https://github.com/klaytn/klaytn/pull/2013))
+* Increased the block consensus quorum to harden network security. ([#2026](https://github.com/klaytn/klaytn/pull/2026))
+* The JavaScript runtime of the built-in console now supports [ECMAScript6](http://es6-features.org/) features ([#2001](https://github.com/klaytn/klaytn/pull/2001))
+* Optimized the data synchronization between RocksDB instances. ([#1947](https://github.com/klaytn/klaytn/pull/1947))
+* Added the node flag --vm.opdebug to measure opcode execution times. ([#2012](https://github.com/klaytn/klaytn/pull/2012))
+* Transaction-related APIs return more detailed error messages about bad signatures ([#1967](https://github.com/klaytn/klaytn/pull/1967))
+* Optimized the debug_startWarmUp API ([#2011](https://github.com/klaytn/klaytn/pull/2011))
+* Added the debug_traceCall AP to support ERC-4337 bundlers ([#1965](https://github.com/klaytn/klaytn/pull/1965), [#1979](https://github.com/klaytn/klaytn/pull/1979))
+* Added the admin_nodeConfig API ([#1996](https://github.com/klaytn/klaytn/pull/1996))
+* Added the eth_createAccessList API to help build AccessList type transactions ([#2027](https://github.com/klaytn/klaytn/pull/2027))
+* Added the eth_getBlockReceipts API, and modified the klay_getBlockReceipts API to accept block numbers. ([#2019](https://github.com/klaytn/klaytn/pull/2019))
+
+### Fixes
+
+* Fixed governance-related bugs ([#1942](https://github.com/klaytn/klaytn/pull/1942), [#1984](https://github.com/klaytn/klaytn/pull/1984))
+* Fixed the debug_setHead API to correctly rewind governance-related internal states. You can attempt recovery from governance-related block sync problems. ([#1966](https://github.com/klaytn/klaytn/pull/1966), [#2002](https://github.com/klaytn/klaytn/pull/2002))
+* Fixed some log levels. ([#1946](https://github.com/klaytn/klaytn/pull/1946), [#1978](https://github.com/klaytn/klaytn/pull/1978))
+* Fixed debug_traceTransaction API to correctly function with value transfer to EOAs. ([#1953](https://github.com/klaytn/klaytn/pull/1953))
+* Fixed klay_recoverFromTransaction API to correctly process Ethereum-typed transactions ([#1975](https://github.com/klaytn/klaytn/pull/1975))
+* Fixed the block and header fetching APIs to not fail with the “pending” block number. ([#1994](https://github.com/klaytn/klaytn/pull/1994))
+* Fixed the eth_maxPriorityFeePerGas API to return 0 since Magma hardfork. ([#2008](https://github.com/klaytn/klaytn/pull/2008))
+
+### Miscellaneous
+
+* Update the rlpx and abi packages ([#1954](https://github.com/klaytn/klaytn/pull/1954), [#2015](https://github.com/klaytn/klaytn/pull/2015))
+* Enable some packages to be built for WASM target ([#1983](https://github.com/klaytn/klaytn/pull/1983))
+* Minor maintenance ([#1941](https://github.com/klaytn/klaytn/pull/1941), [#1944](https://github.com/klaytn/klaytn/pull/1944), [#1948](https://github.com/klaytn/klaytn/pull/1948), [#1952](https://github.com/klaytn/klaytn/pull/1952), [#1956](https://github.com/klaytn/klaytn/pull/1956), [#1969](https://github.com/klaytn/klaytn/pull/1969), [#1971](https://github.com/klaytn/klaytn/pull/1971), [#1972](https://github.com/klaytn/klaytn/pull/1972), [#1973](https://github.com/klaytn/klaytn/pull/1973), [#1974](https://github.com/klaytn/klaytn/pull/1974), [#1977](https://github.com/klaytn/klaytn/pull/1977), [#1982](https://github.com/klaytn/klaytn/pull/1982), [#1985](https://github.com/klaytn/klaytn/pull/1985), [#1991](https://github.com/klaytn/klaytn/pull/1991), [#1992](https://github.com/klaytn/klaytn/pull/1992), [#1993](https://github.com/klaytn/klaytn/pull/1993), [#1995](https://github.com/klaytn/klaytn/pull/1995), [#1997](https://github.com/klaytn/klaytn/pull/1997), [#1998](https://github.com/klaytn/klaytn/pull/1998), [#2004](https://github.com/klaytn/klaytn/pull/2004), [#2007](https://github.com/klaytn/klaytn/pull/2007), [#2016](https://github.com/klaytn/klaytn/pull/2016), [#2020](https://github.com/klaytn/klaytn/pull/2020), [#2024](https://github.com/klaytn/klaytn/pull/2024), [#2031](https://github.com/klaytn/klaytn/pull/2031), [#2033](https://github.com/klaytn/klaytn/pull/2033), [#2034](https://github.com/klaytn/klaytn/pull/2034), [#2035](https://github.com/klaytn/klaytn/pull/2035), [#2036](https://github.com/klaytn/klaytn/pull/2036), [#2041](https://github.com/klaytn/klaytn/pull/2041), [#2050](https://github.com/klaytn/klaytn/pull/2050), [#2055](https://github.com/klaytn/klaytn/pull/2055), [#2056](https://github.com/klaytn/klaytn/pull/2056), [#2058](https://github.com/klaytn/klaytn/pull/2058), [#2061](https://github.com/klaytn/klaytn/pull/2061))
\ No newline at end of file
diff --git a/docs/nodes/endpoint-node/install-endpoint-nodes.md b/docs/nodes/endpoint-node/install-endpoint-nodes.md
index f86d3c1b16b..340b62931e1 100644
--- a/docs/nodes/endpoint-node/install-endpoint-nodes.md
+++ b/docs/nodes/endpoint-node/install-endpoint-nodes.md
@@ -129,7 +129,7 @@ $ tar -C ~/kend_home -xvf klaytn-baobab-chaindata-latest.tar.gz
After the data is extracted, you may start the EN normally.
-You can refer to detailed information in the [Chaindata change](../node-migration.md)
+You can refer to detailed information in the [Chaindata change](../../misc/operation/chaindata-change.md)
## Startup the EN
diff --git a/docs/nodes/endpoint-node/json-rpc-apis.md b/docs/nodes/endpoint-node/json-rpc-apis.md
new file mode 100644
index 00000000000..b7ff23df03d
--- /dev/null
+++ b/docs/nodes/endpoint-node/json-rpc-apis.md
@@ -0,0 +1,87 @@
+# JSON-RPC APIs
+
+Endpoint Node exposes JSON-RPC APIs. You can enable/disable APIs as follows. For the detailed API specification, please refer to the [JSON-RPC APIs](../../references/json-rpc/json-rpc.md).
+
+**NOTE**: Offering an API over the HTTP (`rpc`) or WebSocket (`ws`) interfaces will give everyone
+access to the APIs who can access this interface (DApps, browser tabs, etc). Be careful about which APIs
+you enable. By default, Klaytn enables all APIs over the IPC (`ipc`) interface but for `rpc` and `ws` required modules have to be explicitly enabled.
+
+## Enabling APIs
+
+### From Commandline
+
+To offer the APIs over the Klaytn RPC endpoints, please specify them with the `--${interface}api`
+command-line argument where `${interface}` can be `rpc` for the HTTP endpoint or `ws` for the WebSocket endpoint.
+
+`ipc` offers all APIs over the unix socket (Unix) or named pipe (Windows) endpoint without any flag.
+
+You can launch a Klaytn node with specific APIs you want to add like the example below. But keep in mind that you can't change APIs once you launch the node.
+
+Example) launching a Klaytn node with `klay` and `net` modules enabled:
+
+```shell
+$ ken --rpcapi klay,net --rpc --{other options}
+```
+
+The HTTP RPC interface must be explicitly enabled using the `--rpc` flag.
+
+### Using Configuration
+
+Please update the `RPC_ENABLE`, `RPC_API`, `WS_ENABLE` and `WS_API` properties in the [Configuration File](../../misc/operation/configuration.md).
+
+## Querying Enabled APIs
+
+To determine which APIs an interface provides, the `modules` JSON-RPC method can be invoked. For
+example over an `rpc` interface:
+
+**IPC**
+
+```javascript
+$ echo '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' | nc -U klay.ipc
+```
+
+**HTTP**
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' https://public-en-baobab.klaytn.net
+```
+
+will give all enabled modules including the version number:
+
+```
+{
+ "jsonrpc":"2.0",
+ "id":1,
+ "result":{
+ "admin":"1.0",
+ "debug":"1.0",
+ "klay":"1.0",
+ "miner":"1.0",
+ "net":"1.0",
+ "personal":"1.0",
+ "rpc":"1.0",
+ "txpool":"1.0",
+ "web3":"1.0"
+ }
+}
+```
+
+## Disabling unsafe debug APIs
+
+Some debug namespace APIs are unsafe/unappropriate to be opened to public.
+We recommend you to provide the debug namespace APIs to authorized users only.
+However, if you want to maintain a public EN and provide debug namespace APIs to the public,
+we strongly recommend you to set the `rpc.unsafe-debug.disable` flag which will disable APIs
+that are unsafe/unappropriate to be opened to the public and enable only a subset of the debug namespace APIs.
+
+The enabled APIs are as follows:
+
+- [VM Tracing](../../references/json-rpc/debug/tracing.md) APIs, however with limited functionality (only [pre-defined tracers](../../references/json-rpc/debug/tracing.md#tracing-options) are allowed)
+- debug_dumpBlock, debug_dumpStateTrie, debug_getBlockRlp, debug_getModifiedAccountsByHash, debug_getModifiedAccountsByNumber, debug_getBadBlocks, debug_getModifiedStorageNodesByNumber
+- debug_metrics
+
+To set the `rpc.unsafe-debug.disable` flag, append the following line in the `kend.conf` file.
+
+```
+ADDITIONAL="$ADDITIONAL --rpc.unsafe-debug.disable"
+```
diff --git a/docs/nodes/references/klaytn-command.md b/docs/nodes/endpoint-node/ken-cli-commands.md
similarity index 69%
rename from docs/nodes/references/klaytn-command.md
rename to docs/nodes/endpoint-node/ken-cli-commands.md
index 329ff342009..bdfbee74aee 100644
--- a/docs/nodes/references/klaytn-command.md
+++ b/docs/nodes/endpoint-node/ken-cli-commands.md
@@ -1,62 +1,4 @@
-# Klaytn Command
-
-## How to find the Klaytn Directory (Normally “Klaytn DIR”)
-
----
-You can check Klaytn directory at `kcn` or `kpn` config. Config file is located under `/etc/kcnd/conf` or `/etc/kpnd/conf`.
-
-```bash
-cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
-
-# Find DATA_DIR and LOG_DIR path as below example
-DATA_DIR=/var/kcnd/data/
-LOG_DIR=/var/kcnd/logs/
-```
-
-## How to connect to Klaytn Console
-
----
-Connect to Klaytn API to check node and network status.
-
-```bash
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach klay.ipc
->
-```
-
-## Useful APIs
-
-```bash
-# Check current block Number
- > klay.blockNumber
-
-# Check my kni address
- > admin.nodeInfo
-
-# Check my dode address
- > governance.nodeAddress
-
-# Check other connected nodes
- > admin.peers
-
-# Add or remove nodes
- > admin.addPeer("kni")
- > admin.removePeer("kni")
-```
-
-## How to get the API Result only
-
-```jsx
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach --exec klay.ipc
-
-e.g.
-# Check my dode address
-$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
-"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
-```
-
-## ken CLI commands
+# ken CLI Commands
`ken` is a command-line interface for Klaytn Endpoint Node.
@@ -65,7 +7,7 @@ USAGE:
ken [options] command [command options] [arguments...]
```
-### Commands
+## Commands
`ken` has the following commands.
@@ -115,7 +57,7 @@ participating.
...
```
-### JavaScript Console
+## JavaScript Console
Klaytn Endpoint Node comes with JavaScript console. From the console command line, you can initiate part of Klaytn API calls to your EN. To attach to the JavaScript console, execute the following command.
@@ -137,7 +79,7 @@ Welcome to the Klaytn JavaScript console
console Start an interactive JavaScript environment
```
-#### Module APIs
+### Module APIs
If you type the module name on the console prompt, you will see the available properties and functions of the module. For the details of functions, please see [Klaytn API](../../references/json-rpc/json-rpc.md).
diff --git a/docs/nodes/references/references.md b/docs/nodes/references/references.md
deleted file mode 100644
index a9ab67b2913..00000000000
--- a/docs/nodes/references/references.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Node References
-
-```mdx-code-block
-import DocCardList from '@theme/DocCardList';
-
-
-```
\ No newline at end of file
diff --git a/docs/nodes/service-chain/configure/configuration-files.md b/docs/nodes/service-chain/configure/configuration-files.md
new file mode 100644
index 00000000000..4ad431047af
--- /dev/null
+++ b/docs/nodes/service-chain/configure/configuration-files.md
@@ -0,0 +1,90 @@
+# Configuration Files
+
+This document explains the configurable properties of the node. Klaytn node package ships with good defaults and requires very little configuration. If you changed any settings of a running node, you must restart the node to reflect the changes.
+
+## SCN Configuration File location
+
+* `kscnd.conf` for configuring the Service Chain Consensus Node
+
+The configuration file is located in the `conf` directory, whose default location depends on whether or not the installation is from an archive distribution \(`tar.gz`\) or a package distribution \(RPM\).
+
+* For the archive distribution, the config directory location defaults to `$INSTALL_PATH/kscn-linux-amd64/conf/`.
+* For the package distribution, the config directory defaults to `/etc/kscnd/conf/`.
+
+## Configuration File Format
+
+Below is a sample configuration file for the SCN that stores the blockchain data in the default location, which is `~/kscnd_home` with the archive distribution, `/var/kscnd/data` with the package distribution.
+
+```text
+# Configuration file for the kcnd
+
+NETWORK=
+# if you specify NETWORK_ID, a private network is created.
+NETWORK_ID=
+PORT=32323
+SERVER_TYPE="fasthttp"
+SYNCMODE="full"
+VERBOSITY=3
+MAXCONNECTIONS=100
+# LDBCACHESIZE=10240
+REWARDBASE="0x0"
+
+...
+
+DATA_DIR=
+LOG_DIR=$DATA_DIR/logs
+```
+
+The recommended txpool sizes for SCN are as follows.
+
+```text
+TXPOOL_EXEC_SLOTS_ALL=16384
+TXPOOL_NONEXEC_SLOTS_ALL=16384
+TXPOOL_EXEC_SLOTS_ACCOUNT=16384
+TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
+```
+
+## Properties
+
+The configuration file has the following configurable properties. SCN, SPN and SEN configuration files have the same properties.
+
+| Name | Description |
+| --- | --- |
+| NETWORK | Network name that this node will join. This value is used when NETWORK_ID is not defined. ("cypress", "baobab") |
+| NETWORK_ID | Klaytn network ID. If you create a local private network, you will define the network ID for your own. Following IDs are reserved for pre-configured networks. 8217 : Cypress (Main network) 1000 : Aspen test network 1001 : Baobab test network |
+| PORT | P2P port. (Default: "32323") |
+| SERVER_TYPE | JSON RPC server type. ("http", "fasthttp") |
+| SYNCMODE | Blockchain sync mode. ("fast", "full") |
+| VERBOSITY | Logging verbosity. (0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail) |
+| MAXCONNECTIONS | Maximum number of physical connections. All single-channel peers can have up to MAXCONNECTIONS peers. All multi-channel peers can have up to MAXCONNECTIONS/2 peers. Network connection is disabled if it is set to 0. (Default: 10) |
+| LDBCACHESIZE | Size of in-memory cache in LevelDB (MiB). (Default : 768) |
+| REWARDBASE | Account address that will receive block consensus rewards. This property only applies to CN. |
+| TXPOOL_EXEC_SLOTS_ALL | Maximum number of executable transaction slots for all accounts. (Default: 4096) |
+| TXPOOL_NONEXEC_SLOTS_ALL | Maximum number of non-executable transaction slots for all accounts. (Default: 1024) |
+| TXPOOL_EXEC_SLOTS_ACCOUNT | Number of executable transaction slots guaranteed per account. (Default: 16) |
+| TXPOOL_NONEXEC_SLOTS_ACCOUNT | Maximum number of non-executable transaction slots guaranteed per account. (Default: 64) |
+| TXPOOL_LIFE_TIME | Maximum amount of time non-executable transactions is queued. (Default : 30m for SEN, 5m for SCN/SPN) |
+| RPC_ENABLE | Enable the HTTP-RPC server if it is set to 1. |
+| RPC_API | Comma-separated list of APIs offered over the HTTP-RPC interface. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
+| RPC_PORT | HTTP-RPC server listening port. (Default: "8551") |
+| RPC_ADDR | HTTP-RPC server listening interface. (Default: "localhost") |
+| RPC_CORSDOMAIN | Comma-separated list of domains from which to accept cross-origin requests (browser enforced) |
+| RPC_VHOSTS | Comma-separated list of virtual hostnames from which to accept requests (server enforced). Accepts '*' wildcard. (Default: {"localhost"}) |
+| WS_ENABLE | Enable the WS-RPC server if it is set to 1. |
+| WS_API | APIs offered over the WS-RPC interface. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
+| WS_ADDR | WS-RPC server listening interface. |
+| WS_PORT | WS-RPC server listening port. (Default : "8552") |
+| WS_ORIGINS | Origins from which to accept websockets requests. (Default: "localhost") |
+| SC_MAIN_BRIDGE | Enable main bridge service if it is set to 1. Used for service chain configuration. |
+| SC_MAIN_BRIDGE_PORT | Main bridge listens on this port. (Default : "50505") |
+| SC_MAIN_BRIDGE_INDEXING | Enable storing transaction hash of child chain transactions for fast access to child chain data if it is set to 1. |
+| METRICS | Enable metrics collection and reporting if it is set to 1. |
+| PROMETHEUS | Enable prometheus exporter if it is set to 1. |
+| DB_NO_PARALLEL_WRITE | Disable parallel writes of block data to persistent database if it is set to 1. |
+| MULTICHANNEL | Create a dedicated channel for block propagation if it is set to 1. |
+| SUBPORT | Listening sub port number if multichannel option is enabled. (Default : "32324") |
+| NO_DISCOVER | Turn off the discovery option if it is set to 1. |
+| BOOTNODES | Comma-separated kni addresses of bootstrap nodes. |
+| ADDITIONAL | For additional command-line options. e.g) --txpool.nolocals |
+| DATA_DIR | Klaytn blockchain data folder path. |
+| LOG_DIR | Log folder path. |
diff --git a/docs/nodes/references/genesis.md b/docs/nodes/service-chain/configure/genesis.md
similarity index 100%
rename from docs/nodes/references/genesis.md
rename to docs/nodes/service-chain/configure/genesis.md
diff --git a/docs/references/json-rpc/admin.md b/docs/references/json-rpc/admin.md
index ac5deda5251..baa8aee6059 100644
--- a/docs/references/json-rpc/admin.md
+++ b/docs/references/json-rpc/admin.md
@@ -10,7 +10,6 @@ The namespace `admin` gives you access to several non-standard RPC methods. They
fine-grained control over your Klaytn instance, including but not limited to network peer and RPC
endpoint management.
-
## admin_nodeInfo
The `nodeInfo` administrative property can be queried for all the information known about the running
@@ -78,6 +77,53 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"ad
"protocols":{"istanbul":{"network":1000,"difficulty":1,"genesis":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d","config":{"chainId":1000,"istanbul":{"epoch":30000,"policy":0,"sub":7},"isBFT":true,"unitPrice":25000000000,"deriveShaImpl":0},"head":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d"}}}}
```
+## admin_nodeConfig
+
+The `nodeConfig` administrative property can be queried for all the configuration set for the running Klaytn node.
+
+| Client | Method invocation |
+|:-------:|-------------------------------------------|
+| Console | `admin.nodeConfig` |
+| RPC | `{"method": "admin_nodeConfig"}` |
+
+**Parameters**
+
+None
+
+**Return Value**
+
+| Type | Description |
+| --- | --- |
+| JSON string | The node configuration. |
+
+**Example**
+
+Console
+```javascript
+> admin.nodeConfig
+{
+ AnchoringPeriod: 0,
+ AutoRestartFlag: false,
+ DBType: "LevelDB",
+ DaemonPathFlag: "/klaytn-docker-pkg/bin/kend",
+ DisableUnsafeDebug: false,
+
+ ...
+
+ TxResendCount: 1000,
+ TxResendInterval: 4,
+ TxResendUseLegacy: false,
+ WorkerDisable: false,
+ WsEndpoint: "0.0.0.0:8552"
+}
+```
+
+HTTP RPC
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"admin_nodeConfig","id":1}' https://public-en-baobab.klaytn.net
+{"jsonrpc":"2.0","id":1,"result":{"Genesis":null,"NetworkId":1001,"SyncMode":"full","NoPruning":false,"WorkerDisable":false,"DownloaderDisable":false,"FetcherDisable":false,"ParentOperatorAddr":null,"AnchoringPeriod":0,"SentChainTxsLimit":0,"OverwriteGenesis":false,"StartBlockNumber":0,"DBType":"LevelDB","SkipBcVersionCheck":false,"SingleDB":false,"NumStateTrieShards":4,"EnableDBPerfMetrics":true,"LevelDBCompression":0,"LevelDBBufferPool":true,"LevelDBCacheSize":768,"DynamoDBConfig":{"TableName":"","Region":"ap-northeast-2","Endpoint":"","S3Endpoint":"","IsProvisioned":false,"ReadCapacityUnits":10000,"WriteCapacityUnits":10000,"ReadOnly":false,"PerfCheck":false},"RocksDBConfig":{"Secondary":false,"DumpMallocStat":false,"DisableMetrics":false,"CacheSize":768,"CompressionType":"lz4","BottommostCompressionType":"zstd","FilterPolicy":"ribbon","MaxOpenFiles":1024,"CacheIndexAndFilter":false},"TrieCacheSize":512,"TrieTimeout":300000000000,"TrieBlockInterval":128,"TriesInMemory":128,"LivePruning":false,"LivePruningRetention":172800,"SenderTxHashIndexing":false,"ParallelDBWrite":true,"TrieNodeCacheConfig":{"CacheType":"LocalCache","NumFetcherPrefetchWorker":32,"UseSnapshotForPrefetch":false,"LocalCacheSizeMiB":1024,"FastCacheFileDir":"/home/ubuntu/klaytn/data/fastcache","FastCacheSavePeriod":0,"RedisEndpoints":null,"RedisClusterEnable":false,"RedisPublishBlockEnable":false,"RedisSubscribeBlockEnable":false},"SnapshotCacheSize":0,"SnapshotAsyncGen":false,"ServiceChainSigner":"0x0000000000000000000000000000000000000000","ExtraData":null,"GasPrice":25000000000,"Rewardbase":"0x0000000000000000000000000000000000000000","TxPool":{"NoLocals":false,"AllowLocalAnchorTx":false,"DenyRemoteTx":false,"Journal":"/home/ubuntu/klaytn/data/klay/transactions.rlp","JournalInterval":3600000000000,"PriceLimit":1,"PriceBump":10,"ExecSlotsAccount":4096,"ExecSlotsAll":4096,"NonExecSlotsAccount":4096,"NonExecSlotsAll":4096,"KeepLocals":false,"Lifetime":300000000000,"NoAccountCreation":false,"EnableSpamThrottlerAtRuntime":false},"GPO":{"Blocks":20,"Percentile":60,"MaxHeaderHistory":1024,"MaxBlockHistory":1024,"Default":null},"EnablePreimageRecording":false,"EnableInternalTxTracing":false,"EnableOpDebug":false,"Istanbul":{"Timeout":10000,"BlockPeriod":1,"ProposerPolicy":0,"Epoch":30000,"SubGroupSize":21},"DocRoot":"","WsEndpoint":"0.0.0.0:8652","TxResendInterval":4,"TxResendCount":1000,"TxResendUseLegacy":false,"NoAccountCreation":false,"IsPrivate":false,"AutoRestartFlag":false,"RestartTimeOutFlag":900000000000,"DaemonPathFlag":"/home/ubuntu/klaytn/bin/kend","RPCGasCap":null,"RPCEVMTimeout":5000000000,"RPCTxFeeCap":0,"DisableUnsafeDebug":false,"StateRegenerationTimeLimit":60000000000}}
+```
## admin_datadir
diff --git a/docs/references/json-rpc/debug/blockchain.md b/docs/references/json-rpc/debug/blockchain.md
index a7d4a2b6442..c9936599e9c 100644
--- a/docs/references/json-rpc/debug/blockchain.md
+++ b/docs/references/json-rpc/debug/blockchain.md
@@ -356,8 +356,6 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"de
## debug_setHead
-**`WARNING`**: This API is not yet implemented and always returns "not yet implemented API" error.
-
Sets the current head of the local chain by block number.
**NOTE**: This is a destructive action and may severely damage your chain.
@@ -373,7 +371,7 @@ Use with *extreme* caution.
| Name | Type | Description |
| --- | --- | --- |
-| number | string | The block number in hexadecimal string. |
+| number | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in the [default block parameter](../klay/block.md#the-default-block-parameter). |
**Return Value**
diff --git a/docs/references/json-rpc/eth/block.md b/docs/references/json-rpc/eth/block.md
index 53d96fa0341..7360a20d6f7 100644
--- a/docs/references/json-rpc/eth/block.md
+++ b/docs/references/json-rpc/eth/block.md
@@ -299,6 +299,50 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
}
```
+## eth_getBlockReceipts
+
+Returns receipts included in a block.
+
+**Parameters**
+| Type | Description |
+| --- | --- |
+| Number | 32-byte DATA | TAG | The block number or hash. Or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](#the-default-block-parameter). |
+
+**Return Value**
+
+Receipts included in a block. If the target block contains no transaction, an empty array `[]` is returned.
+
+**Example**
+
+```shell
+// Request
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"eth_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
+// Result
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
+}
+```
## eth_getUncleByBlockHashAndIndex
diff --git a/docs/references/json-rpc/eth/gas.md b/docs/references/json-rpc/eth/gas.md
index f64537d44ca..94db1e358ef 100644
--- a/docs/references/json-rpc/eth/gas.md
+++ b/docs/references/json-rpc/eth/gas.md
@@ -163,8 +163,9 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
Returns a suggestion for a gas tip cap for dynamic fee transaction in peb.
-**NOTE**: This API has different behavior from Ethereum's and
-returns a gas price of Klaytn instead of suggesting a gas price as in Ethereum.
+**NOTE**: This API has different behavior from Ethereum's.
+Before Magma hardfork, it returns a gas price of Klaytn instead of suggesting a gas price as in Ethereum.
+After Magma hardfork, it just returns 0.
**Parameters**
@@ -185,7 +186,7 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
// Result
{
"jsonrpc": "2.0",
- "id":1)
+ "id": 1,
"result": "0xAE9F7BCC00" // 250,000,000,000 peb = 250 ston (Gwei)
}
```
diff --git a/docs/references/json-rpc/eth/misc.md b/docs/references/json-rpc/eth/misc.md
index dfe72b9c65d..6b91fad36fa 100644
--- a/docs/references/json-rpc/eth/misc.md
+++ b/docs/references/json-rpc/eth/misc.md
@@ -162,4 +162,42 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
}
```
+## eth_createAccessList
+This method creates an `accessList` based on a given `Transaction`.
+The `accessList` contains all storage slots and addresses read and written by the transaction, except for the sender account and the precompiles.
+This method uses the same transaction call object and `blockNumberOrTag` object as [`eth_call`](./transaction.md#eth_call).
+An accessList can be used to unstuck contracts that became inaccessible due to gas cost increases.
+Adding an `accessList` to your transaction does not necessary result in lower gas usage compared to a transaction without an access list.
+
+**Parameters**
+
+| Name | Type | Description |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | The transaction call object. Refer to [`eth_call`](./transaction.md#eth_call) for the object's properties. |
+| blockNumberOrTag | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](./block.md#the-default-block-parameter). The block number is mandatory and defines the context (state) against which the specified transaction should be executed. |
+
+**Return Value**
+
+| Type | Description |
+|-----------|--------------------------------------------------------------------------|
+| Object | Returns list of addresses and storage keys used by the transaction, plus the gas consumed when the access list is added. |
+
+**Example**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
+```
diff --git a/docs/references/json-rpc/klay/block.md b/docs/references/json-rpc/klay/block.md
index 645e18515ad..7cc6a62f05b 100644
--- a/docs/references/json-rpc/klay/block.md
+++ b/docs/references/json-rpc/klay/block.md
@@ -287,12 +287,12 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
## klay_getBlockReceipts
-Returns receipts included in a block identified by block hash.
+Returns receipts included in a block.
**Parameters**
| Type | Description |
| --- | --- |
-| 32-byte DATA | Block hash |
+| Number | 32-byte DATA | TAG | The block number or hash. Or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](#the-default-block-parameter). |
**Return Value**
@@ -303,34 +303,32 @@ empty array `[]` is returned.
```shell
// Request
-curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30"],"id":73}' https://public-en-baobab.klaytn.net
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
// Result
{
- "jsonrpc":"2.0",
- "id":73,
- "result":[{
- "blockHash":"0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30",
- "blockNumber":"0x3ba38",
- "contractAddress":null,
- "effectiveGasPrice":"0x5d21dba00",
- "from":"0x16b11cf9c2186a117b0da38315b42b1eaa03bbe5",
- "gas":"0x30d40",
- "gasPrice":"0xba43b7400",
- "gasUsed":"0x1886c",
- "logs":[],
- "logsBloom":"0x00000000000000000000000000000000008000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000040000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "nonce":"0x58e",
- "senderTxHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "signatures":["0x7f6","0x50b2b0f95b8a6d7018369b1933d6cebb52ef119463d1840a6181d05bf8fc29d8","0x329630f88d9d06c5f1bd7644dbf6bd6b92e4ab0e3d47122972f8294c9289e7bb"],
- "status":"0x1",
- "to":"0xdbb98c72e9818ad2c93a09e35ad43ada0d4223f0",
- "transactionHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "transactionIndex":"0x0",
- "type":"TxTypeValueTransfer",
- "typeInt":8,
- "value":"0x21e19e0c9bab2400000"
- }
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
}
```
diff --git a/docs/references/json-rpc/klay/misc.md b/docs/references/json-rpc/klay/misc.md
index 546967afd7e..6baedc6c0dd 100644
--- a/docs/references/json-rpc/klay/misc.md
+++ b/docs/references/json-rpc/klay/misc.md
@@ -160,3 +160,44 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
}
}
```
+
+## klay_createAccessList
+
+This method creates an `accessList` based on a given `Transaction`.
+The `accessList` contains all storage slots and addresses read and written by the transaction, except for the sender account and the precompiles.
+This method uses the same transaction call object and `blockNumberOrTag` object as [`klay_call`](./transaction.md#klay_call).
+An accessList can be used to unstuck contracts that became inaccessible due to gas cost increases.
+Adding an `accessList` to your transaction does not necessary result in lower gas usage compared to a transaction without an access list.
+
+**Parameters**
+
+| Name | Type | Description |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | The transaction call object. Refer to [`klay_call`](./transaction.md#klay_call) for the object's properties. |
+| blockNumberOrTag | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](./block.md#the-default-block-parameter). The block number is mandatory and defines the context (state) against which the specified transaction should be executed. |
+
+**Return Value**
+
+| Type | Description |
+|-----------|--------------------------------------------------------------------------|
+| Object | Returns list of addresses and storage keys used by the transaction, plus the gas consumed when the access list is added. |
+
+**Example**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
+```
\ No newline at end of file
diff --git a/docs/references/sdk/caver-js-1.4.1/api/caver.klay/config.md b/docs/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
index 9b8df74504d..ecb10899429 100644
--- a/docs/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
+++ b/docs/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
@@ -191,8 +191,7 @@ true
caver.klay.rewardbase([callback])
```
-Returns the rewardbase of the current node. Rewardbase is the address of the account where the block reward goes to. Only the Klaytn Consensus Nodes (CN) have the rewardbase in their configuration. See [Configuration File](../../../../../nodes/references/configuration-files.md).
-
+Returns the rewardbase of the current node. Rewardbase is the address of the account where the block reward goes to. Only the Klaytn Consensus Nodes (CN) have the rewardbase in their configuration. See [Configuration File](../../../../../misc/operation/configuration.md).
**Parameters**
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 55d5caf326a..e5c61154250 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -151,6 +151,12 @@ const config = {
type: 'localeDropdown',
position: 'right',
},
+ {
+ href: 'https://github.com/klaytn',
+ position: 'right',
+ alt: 'GitHub repository',
+ className: 'header-github-link',
+ },
],
},
docs: {
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current.json b/i18n/ko/docusaurus-plugin-content-docs/current.json
index 41487ee5ffe..badc3082210 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current.json
+++ b/i18n/ko/docusaurus-plugin-content-docs/current.json
@@ -206,5 +206,25 @@
"sidebar.refSidebar.link.API References": {
"message": "API 레퍼런스",
"description": "The label for link API References in sidebar refSidebar, linking to https://javadoc.io/doc/com.klaytn.caver/core/"
+ },
+ "sidebar.learnSidebar.category.Operation Guide": {
+ "message": "운영 가이드",
+ "description": "The label for category Operation Guide in sidebar learnSidebar"
+ },
+ "sidebar.buildSidebar.category.Operation Guide": {
+ "message": "운영 가이드",
+ "description": "The label for category Operation Guide in sidebar buildSidebar"
+ },
+ "sidebar.nodeSidebar.category.Operation Guide": {
+ "message": "운영 가이드",
+ "description": "The label for category Operation Guide in sidebar nodeSidebar"
+ },
+ "sidebar.refSidebar.category.caver": {
+ "message": "caver",
+ "description": "The label for category caver in sidebar refSidebar"
+ },
+ "sidebar.refSidebar.category.Operation Guide": {
+ "message": "운영 가이드",
+ "description": "The label for category Operation Guide in sidebar refSidebar"
}
}
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
index ea3a500e5b3..f2cc715b42a 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
@@ -8,7 +8,7 @@
**엔드포인트 노드**
* 클레이튼 네트워크에 연결하고 API 호출을 하거나 트랜잭션을 전송하려면 [엔드포인트 노드](../../nodes/endpoint-node/endpoint-node.md)가 필요합니다.
-* `ken`은 클레이튼 엔드포인트 노드 바이너리입니다. `ken`은 두 가지 인터페이스, 즉 [명령줄 인터페이스](../../nodes/references/klaytn-command.md)와 [JSON-RPC API](../../references/json-rpc/json-rpc.md)를 노출합니다. `ken`은 Linux와 MacOS에서 실행됩니다.
+* `ken`은 클레이튼 엔드포인트 노드 바이너리입니다. `ken`은 두 가지 인터페이스, 즉 [명령줄 인터페이스](../../nodes/endpoint-node/ken-cli-commands.md)와 [JSON-RPC API](../../references/json-rpc/json-rpc.md)를 노출합니다. `ken`은 Linux와 MacOS에서 실행됩니다.
* `ken` CLI는 여러 유틸리티 및 노드 관리 기능과 함께 제공됩니다.
**스마트 컨트랙트 개발**
@@ -17,6 +17,7 @@
* [Truffle](https://github.com/trufflesuite/truffle) - Solidity에서 스마트 컨트랙트를 개발하기 위한 오픈소스 툴입니다.
* [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - 스마트 컨트랙트 및 dApp을 위한 개발 환경.
* [Foundry](https://book.getfoundry.sh/) - Foundry는 스마트 컨트랙트 개발 툴체인입니다.
+* [Thirdweb](https://portal.thirdweb.com/) - Thirdweb은 웹3 애플리케이션을 구축, 관리, 분석하는 서비스를 제공하는 완전한 웹3 개발 프레임워크입니다.
**클레이튼 SDK**
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md
index f21677ae436..d7cff21942d 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/foundry.md
@@ -1,4 +1,4 @@
-# Foundry를 사용하여 스마트 컨트랙트 배포
+# Foundry로 스마트 컨트랙트 배포하기
![](/img/build/get-started/klaytn-foundry.png)
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
index 1e2699dc5d8..b2d31105733 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
@@ -1,4 +1,4 @@
-# KEN을 사용하여 스마트 컨트랙트 배포
+# KEN으로 스마트 컨트랙트 배포하기
![](/img/build/get-started/klaytnXken.png)
@@ -44,7 +44,7 @@ $ mkdir -p ~/kend_home
### EN 구성하기
-구성 파일인 `kend.conf`는 `ken-xxxxx-amd64/conf/` 아래에 있습니다. 설정 가능한 파라미터에 대한 자세한 내용은 [EN 구성 가이드](../../../nodes/references/configuration-files.md)를 참고하시기 바랍니다. Baobab 테스트넷의 EN을 실행하려면 아래와 같이 `kend.conf` 파일을 업데이트합니다.
+구성 파일인 `kend.conf`는 `ken-xxxxx-amd64/conf/` 아래에 있습니다. 설정 가능한 파라미터에 대한 자세한 내용은 [EN 구성 가이드](../../../misc/operation/configuration.md)를 참고하시기 바랍니다. Baobab 테스트넷의 EN을 실행하려면 아래와 같이 `kend.conf` 파일을 업데이트합니다.
```
# cypress, baobab is only available if you don't specify NETWORK_ID.
@@ -88,7 +88,7 @@ INFO[03/26,15:37:49 +09] [5] Imported new chain segment blocks=1
### 문제 해결
-클레이튼 엔드포인트 노드 실행에 문제가 있는 경우 [문제 해결](../../../nodes/references/troubleshooting.md)을 참고하시기 바랍니다.
+클레이튼 엔드포인트 노드 실행에 문제가 있는 경우 [문제 해결](../../../misc/operation/troubleshooting.md)을 참고하시기 바랍니다.
## 계정 충전하기
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md
new file mode 100644
index 00000000000..c3ef628e5fe
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md
@@ -0,0 +1,169 @@
+# Thirdweb으로 스마트 컨트랙트 배포하기
+
+![](/img/build/get-started/klaytnXthirdweb.png)
+
+## 소개
+
+이 장에서는 [Thirdweb](https://portal.thirdweb.com/)을 사용하여 마켓플레이스 컨트랙트와 그에 해당하는 NFT 수집 컨트랙트를 Klaytn 네트워크에 배포하는 방법을 안내합니다. Thirdweb은 앱과 게임을 탈중앙화 네트워크에 연결하는 데 필요한 모든 것을 제공하는 완전한 웹 3.0 개발 프레임워크입니다.
+
+마켓플레이스 컨트랙트를 사용하면 사용자가 직접 판매 또는 경매를 위해 NFT를 등록할 수 있으며, 오픈시에서와 마찬가지로 NFT의 구매와 판매를 향상시킬 수 있습니다.
+
+이 가이드가 끝나면 다음을 수행할 수 있습니다:
+
+* Thirdweb을 사용해 컨트랙트를 생성하고 사용자 정의할 수 있습니다.
+* Thirdweb을 사용하여 스마트 컨트랙트를 컴파일, 배포, 상호작용할 수 있습니다.
+
+## 시작하기
+
+이 문서에서는 thirdweb을 사용하여 컨트랙트를 생성, 사용자 정의 및 배포하는 다양한 방법을 살펴보겠습니다.
+
+* thirdweb 대시보드 사용
+* thirdweb CLI 사용
+
+이 가이드에서는 셋째웹 대시보드를 사용하여 마켓플레이스 컨트랙트를 배포하는 방법과 셋째웹 CLI를 사용하여 마켓플레이스에 상장할 해당 NFT 컬렉션을 배포하는 방법을 보여드리겠습니다.
+
+> 참고: 스마트 컨트랙트 생성, 배포, 상호작용을 위한 thirdweb 대시보드와 CLI를 살펴보는 데 중점을 두었으므로 마켓플레이스 컨트랙트의 메커니즘은 설명하지 않겠습니다.
+
+## Thirdweb 대시보드를 사용하여 마켓플레이스 컨트랙트 만들기 및 배포하기
+
+이 섹션에서는 thirdweb 대시보드를 사용하여 마켓플레이스 컨트랙트를 만들고 배포하겠습니다. 이렇게 하려면 아래 단계를 따르세요:
+
+1. [thirdweb 대시보드](https://thirdweb.com/dashboard?ref=blog.thirdweb.com)로 이동하여 컨트랙트 목록에서 **MarketPlace** 컨트랙트를 선택합니다.
+
+![](/img/build/get-started/marketplace-explore.png)
+
+2. 컨트랙트 개요 대시보드에서 **Deploy Now**를 클릭합니다.
+
+![](/img/build/get-started/marketplace-deploy.png)
+
+3. 마켓플레이스의 **name**, **description**, **image** 등의 파라미터를 포함하도록 마켓플레이스 컨트랙트를 구성합니다.
+
+![](/img/build/get-started/marketplace-contract-details.png)
+
+4. 위 이미지와 같이 **Deploy Now**를 클릭하고 트랜잭션이 완료될 때까지 기다립니다.
+
+![](/img/build/get-started/marketplace-deployed.png)
+
+트랜잭션이 성공적으로 실행되면, 컨트랙트 주소를 [Klaytnscope](https://klaytnscope.com/)의 검색창에 붙여넣으면 배포를 확인할 수 있습니다.
+
+## Thirdweb CLI를 사용하여 NFT 수집 컨트랙트 생성 및 배포
+
+이 섹션에서는 [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com)를 사용하여 마켓플레이스에 상장할 NFT 컬렉션을 생성하고 배포하겠습니다. 이렇게 하려면 아래 단계를 따르세요:
+
+### 컨트랙트 만들기
+
+1. 터미널에서 다음 명령을 실행하여 컨트랙트를 생성합니다:
+
+```bash
+npx thirdweb create --contract
+```
+
+2. 명령줄 프롬프트에 원하는 값을 입력합니다:
+
+ i. 프로젝트 이름을 지정합니다.
+
+ ii. 선호하는 프레임워크를 선택합니다: **Hardhat** 또는 **Foundry**.
+
+ iii. 스마트 컨트랙트의 이름을 지정합니다.
+
+ iv. 기본 컨트랙트 유형을 선택합니다: **Empty**, **ERC20**, **ERC721**, 또는 **ERC1155**. 원하는 **extensions**을 추가합니다. 이 튜토리얼에서는 ERC721을 선택하고 확장을 없음으로 설정하겠습니다.
+
+![](/img/build/get-started/thirdweb-cli-info.png)
+
+3. 프로젝트가 생성되면 프로젝트의 루트 디렉토리로 이동하여 원하는 코드 편집기에서 프로젝트를 엽니다.
+
+4. 계약 폴더를 열면 계약이 다음과 같이 보일 것입니다:
+
+```js
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+import "@thirdweb-dev/contracts/base/ERC721Base.sol";
+contract nftcollection is ERC721Base {
+ constructor(
+ address _defaultAdmin,
+ string memory _name,
+ string memory _symbol,
+ address _royaltyRecipient,
+ uint128 _royaltyBps
+ )
+ ERC721Base(
+ _defaultAdmin,
+ _name,
+ _symbol,
+ _royaltyRecipient,
+ _royaltyBps
+ )
+ {}
+}
+```
+
+위의 컨트랙트는 기본적인 [ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) 기능을 보여줍니다. 이는 **ERC721Base** 컨트랙트를 가져와 상속하며, 생성자 및 종속 파라미터를 포함한 필수 메서드도 구현합니다.
+
+컨트랙트를 원하는 사용자 정의 로직으로 수정할 수 있으며, 수정이 완료되면 컨트랙트를 배포할 준비가 된 것입니다.
+
+### 컨트랙트 배포하기
+
+1. 프로젝트 루트 폴더로 이동하여 터미널에서 다음 명령을 실행합니다:
+
+```bash
+npx thirdweb deploy
+```
+
+이 명령을 실행하면 다음 작업이 트리거됩니다:
+ * 프레임워크(hardhat, foundry)를 감지합니다.
+ * 현재 디렉토리에 있는 모든 컨트랙트를 컴파일합니다.
+ * 배포할 컨트랙트를 선택할 수 있습니다.
+ * 컴파일된 스마트 컨트랙트 코드(애플리케이션 바이너리 인터페이스 또는 ABI 형태)를 IPFS에 업로드합니다.
+
+2. 배포가 완료되면 대시보드 인터페이스가 열리고 나머지 파라미터를 입력할 수 있습니다.
+ **_name**: 컨트랙트 이름
+ **_symbol**: 심볼 또는 "티커"
+ **_royaltyRecipient**: 2차 판매에서 로열티를 받을 지갑 주소
+ **_royaltyBps**: 각 2차 판매에 대해 로열티 수령자에게 지급할 베이시스 포인트(bps)(예: 500 = 5%)
+
+3. 컨트랙트를 배포할 네트워크로 `Klaytn Mainnet Cypress`를 선택합니다.
+
+![](/img/build/get-started/nft-collection-deploy.png)
+
+4. 스마트 컨트랙트가 배포되면 대시보드를 통해 추가 설정과 기능을 관리할 수 있습니다. 예를 들어, NFT를 업로드하고, 권한과 액세스 제어를 구성하고, 새로운 기능을 추가할 수 있습니다.
+
+Thirdweb 배포 명령에 대한 자세한 내용은 [배포 가이드](https://portal.thirdweb.com/deploy/getting-started)에서 확인할 수 있습니다.
+
+## 배포된 컨트랙트와 상호작용하기
+
+이 섹션에서는 각각 **mint**와 **transferfrom** 함수를 사용하여 NFT를 발행하고 다른 계정으로 전송하는 방법을 살펴보겠습니다. 다음 단계를 통해 살펴보겠습니다:
+
+### NFT 발행하기
+
+1. 새로 배포된 컨트랙트(**puppyKlan-NC**) 대시보드로 이동합니다.
+2. 컨트랙트 대시보드 아래의 **NFT** 탭에서 **mint** 기능을 클릭합니다.
+
+![](/img/build/get-started/puppy-mint-btn.png)
+
+3. NFT를 발행하는 데 필요한 파라미터를 입력합니다: **name**, **media**, **description**, **properties**를 입력합니다.
+
+![](/img/build/get-started/puppy-mint-details.png)
+
+4. 입력을 확인하고 **Mint NFT** 버튼을 클릭합니다.
+5. 트랜잭션을 확인하고 완료될 때까지 기다립니다. 완료되면 아래와 같이 대시보드에 NFT가 추가된 것을 확인할 수 있습니다:
+
+![](/img/build/get-started/puppy-minted.png)
+
+### NFT를 새 소유자에게 이전하기
+
+1. 컨트랙트(**puppyKlan-NC**) 대시보드의 탐색기 탭으로 이동합니다.
+2. 아래와 같이 쓰기 탭에서 **transferFrom** 기능을 선택합니다.
+3. 필요한 함수 인수를 입력합니다: from(address), to(address), id(uint256).
+
+![](/img/build/get-started/puppy-transferfrom.png)
+
+4. 트랜잭션을 확인하고 완료될 때까지 기다립니다.
+
+## 결론
+
+이 가이드를 끝까지 읽어보셨다면 축하드립니다. 궁금한 점이 있으시다면, [클레이튼 포럼](https://forum.klaytn.foundation/)을 방문하시거나 [공식 thirdweb 지원](https://support.thirdweb.com/)으로 문의해 주세요. 하지만 아래는 클레이튼에서 Thirdweb으로 빌드하는 동안 필요한 유용한 리소스 목록입니다.
+
+* [Thirdweb 문서](https://portal.thirdweb.com/)
+* [Thirdweb을 사용해 dApp을 구축하는 방법](https://blog.thirdweb.com/guides/how-to-build-a-dapp/)
+* [NextJS와 TypeScript로 나만의 NFT 마켓플레이스 만들기](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/)
+
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md b/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md
new file mode 100644
index 00000000000..fc77a4f5250
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md
@@ -0,0 +1,529 @@
+---
+sidebar_label: Particle Network
+---
+
+# Particle Network를 dApp에 통합하기
+
+![](/img/build/tools/particle.png)
+
+## 소개
+
+[Particle Network](https://particle.network)는 웹3.0의 인텐트 중심 모듈형 액세스 레이어입니다. 개발자는 Particle의 스마트 월렛 서비스(Smart Wallet-as-a-Service)를 통해 모듈형 커스터마이징이 가능한 EOA/AA 임베디드 월렛 구성요소를 통해 원활한 사용자 경험을 큐레이션할 수 있습니다. Particle은 키 관리에 MPC-TSS를 사용하여 Google 계정, 이메일 주소, 전화번호와 같은 웹2.0 계정을 통해 사용자 온보딩을 간소화할 수 있습니다.
+
+개발자는 모바일과 데스크톱 플랫폼 모두에서 사용할 수 있는 API와 SDK를 통해 다양한 시나리오에 걸쳐 Particle의 서비스형 월렛을 통합할 수 있으며, 특정 애플리케이션의 특정 요구 사항에 맞는 방식으로 맞춤화 및 구현할 수 있습니다.
+
+안드로이드, iOS, 리액트 네이티브, 플러터, 유니티 등 다른 플랫폼에서 Particle Network를 활용하려면 Particle의 [문서](https://docs.particle.network)를 참조하시기 바랍니다.
+
+## 전제 조건
+
+* 실행 중인 리액트 프로젝트(`npx create-react-app project-name`을 실행하여).
+* [Particle 대시보드](https://dashboard.particle.network)의 프로젝트 ID, 클라이언트 키, 앱 ID.
+* [WalletConnect 대시보드](https://cloud.walletconnect.com/)의 WalletConnect 프로젝트 ID.
+
+## 설치
+
+디앱에서 Particle Network, 특히 Particle 커넥트를 활용하려면 먼저 필요한 라이브러리를 설치해야 합니다. 이 외에도 [ethers.js](https://docs.ethers.org/v6/) 또는 [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html)와 같은 표준 Web3 라이브러리를 사용하려면 테마도 설치해야 합니다. 이 가이드에서는 ethers.js를 사용하겠습니다.
+
+```bash
+npm install --save @particle-network/connectkit
+npm install --save @particle-network/chains
+npm install --save @particle-network/connectors
+npm install --save ethers
+```
+
+## Particle 커넥트 초기화
+
+앞서 언급한 라이브러리를 성공적으로 설치했다면, `index.js`(또는 `.ts`) 파일로 이동하여 Particle 커넥트를 구성해야 합니다. 이를 위해서는 `App` 컴포넌트를 `ModalProvider`(`@particle-network/connectkit`에서 임포트)로 래핑하고 아래에 설명된 파라미터가 포함된 `옵션`을 전달해야 합니다.
+
+```js
+import { ModalProvider } from '@particle-network/connectkit';
+import { Klaytn } from '@particle-network/chains';
+import { evmWallets } from '@particle-network/connectors';
+
+const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
+root.render(
+
+
+
+
+
+);
+```
+
+## 월렛 연결하기
+
+`index.js` 파일 설정이 완료되면, 중앙의 "Connect Wallet" 버튼을 통해 사용자를 연결할 수 있습니다. 이렇게 하려면 `@particle-network/connectkit`에서 `ConnectButton`을 해당 CSS와 함께 가져오면 됩니다. `App` 컴포넌트 내에서 `ConnectButton`을 사용하면 연결을 용이하게 하는 표준 "Connect Wallet" 버튼이 나타납니다.
+
+```js
+import '@particle-network/connectkit/dist/index.css';
+import { ConnectButton } from '@particle-network/connectkit';
+
+export const App = () => {
+ return ;
+};
+```
+
+
+## 계정 및 잔액 가져오기
+
+이제 `ConnectButton`을 통해 지갑이 성공적으로 연결되었으므로 연결된 사용자의 클레이튼 주소를 조회할 수 있습니다. 또한, `@particle-network/connectkit` 내의 `useParticleProvider`에서 검색한 해당 EIP-1193 공급자 객체를 전달하여 ethers.js를 통해 현재 잔액(KLAY)을 검색할 수 있습니다.
+
+```js
+import { useParticleProvider } from '@particle-network/connectkit';
+
+const provider = useParticleProvider();
+
+const [address, setAddress] = useState("");
+const [balance, setBalance] = useState("");
+
+const connectWallet = async() => {
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(web3authProvider);
+ const ethersProvider = new ethers.BrowserProvider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Get user's Ethereum public address
+ const address = signer.address;
+
+ // Get user's balance in ether
+ const balance = ethers.formatEther(
+ await ethersProvider.getBalance(address) // balance is in wei
+ );
+
+ setAddress(address);
+ setBalance(balance);
+
+return (
+
+
Connect Wallet
+
Wallet Address: ${address} Balance: ${balance}
+
+ );
+}
+```
+
+## 지갑 연결 끊기
+
+사용자가 로그인하면 `useParticleConnect`에서 파생된 `disconnect`를 통해 프로그래밍 방식으로 로그아웃을 강제할 수 있습니다. 이렇게 하면 현재 활성 상태인 세션이 디앱에서 분리되어 사용자가 초기 상태로 돌아갑니다.
+
+```js
+import { useParticleConnect } from '@particle-network/connectkit';
+
+const { disconnect } = useParticleConnect();
+
+function App() {
+
+const disconnectUser = async () => {
+ await disconnect();
+ refreshState();
+}
+
+// refresh state
+const refreshState = () => {
+ setAddress();
+ setBalance();
+// make sure to add every other useState modifier function declared here.
+}
+
+return (
+
+ Disconnect
+
+ );
+}
+```
+
+## 사용자 정보 가져오기
+
+기존 웹3 지갑은 Particle 커넥트를 통한 연결 메커니즘으로 제공되지만, 이메일 주소, 구글 계정, 전화번호 등과 같은 소셜 계정을 통한 소셜 로그인도 가능합니다. 사용자가 Web2 계정으로 로그인하기로 결정한 경우, `@particle-network/auth-core`에서 `getUserInfo`를 호출하면 이름, 이메일, 지갑 주소 등 주요 세부 정보가 포함된 객체를 반환할 수 있습니다.
+
+```js
+import { getUserInfo } from '@particle-network/auth-core';
+
+const [userData, setUserData] = useState({});
+
+const getUserInfo = async () => {
+ const user = getUserInfo();
+ setUserData(user);
+};
+
+return (
+
+
Get User Info
+
{ userData ? `User Email: ${userData.email}, User Name: ${userData.name}` : ""}
+
+ );
+```
+
+## 메시지 서명
+
+공급자가 초기화되고(`useParticleProvider`를 통해) ethers.js 인스턴스에 전달되면 `signer.signMessage`를 통해 평소와 같이 메시지 서명을 시작할 수 있으며, 사용자가 확인할 수 있도록 서명 팝업이 직접 표시됩니다. 그 구체적인 성격은 사용자가 선택한 연결 메커니즘에 따라 달라집니다.
+
+```js
+ // add to the existing useState hook.
+const [signedMessage, setSignedMessage] = useState("");
+
+const signMessage = async(e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ const originalMessage = e.target.message.value;
+ const result = await signer.signMessage(originalMessage);
+ setSignedMessage(result)
+}
+
+
+return (
+
+
+
SignedMessage: ${signedMessage}
+
+ );
+
+```
+
+## 네이티브 트랜잭션 보내기
+
+`signer.signMessage`와 마찬가지로 동일한 공급자 메커니즘을 사용하여 네이티브 트랜잭션을 보낼 수 있으며, 이 경우 KLAY를 사용할 수 있습니다. 이는 `signer.sendTransaction`을 통해 `to`, `value` 등과 같은 표준 필드를 전달하여 수행할 수 있습니다.
+
+```js
+ // add to the existing useState hook.
+ const [txHash, setTxHash] = useState();
+
+ const sendKlay = async () => {
+
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+ const destination = "paste recipient address";
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Submit transaction to the blockchain and wait for it to be mined
+ const tx = await signer.sendTransaction({
+ to: destination,
+ value: ethers.parseEther("0.1"),
+ maxPriorityFeePerGas: "5000000000", // Max priority fee per gas
+ maxFeePerGas: "6000000000000", // Max fee per gas
+ })
+
+
+ const receipt = await tx.wait();
+ setTxHash(receipt.hash)
+}
+
+return (
+
+);
+
+```
+
+## 스마트 컨트랙트 작업하기
+
+1. **컨트랙트 배포하기**
+
+외부 Web3 지갑을 사용하든, 포함된 소셜 로그인 임베디드 지갑을 사용하든, Particle을 통해 컨트랙트 배포와 같은 더 복잡한 트랜잭션도 가능합니다. 이에 대한 예시는 아래와 같습니다.
+
+```js
+// add to the existing useState hook.
+const [contractAddress, setContractAddress] = useState(null);
+
+const deployContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+// this guide uses ethers version 6.3.0.
+const ethersProvider = new ethers.BrowserProvider(provider);
+// for ethers version below 6.3.0.
+// const provider = new ethers.providers.Web3Provider(provider);
+
+const signer = await ethersProvider.getSigner();
+
+// paste your contractABI
+const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract byte code
+ const contractBytecode = '608060405234801561001057600080fd5b506040516102063803806102068339818101604052810190610032919061007a565b80600081905550506100a7565b600080fd5b6000819050919050565b61005781610044565b811461006257600080fd5b50565b6000815190506100748161004e565b92915050565b6000602082840312156100905761008f61003f565b5b600061009e84828501610065565b91505092915050565b610150806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea26469706673582212200370e757ac1c15a024febfa9bf6999504ac6616672ad66bd654e87765f74813e64736f6c63430008120033'
+
+ const contractFactory = new ContractFactory(contractABI, contractBytecode, signer);
+
+ const contract = await contractFactory.deploy(400);
+
+ // get contract address
+ setContractAddress(contract.target)
+}
+
+
+return (
+
+
Deploy Contract
+
Contract Address: {contractAddress ? contractAddress : ''}
+
+ );
+```
+
+이와 유사하게, `useParticleProvider`에서 파생된 Particle 연결 공급자를 활용하여 동일한 ethers.js 인스턴스를 사용하여 기존(배포된) 컨트랙트에 직접 쓰기 트랜잭션을 보낼 수 있습니다. 프론트엔드에서 이 기능은 컨트랙트 배포, 메시지 서명 또는 트랜잭션 요청의 기능을 모방합니다.
+
+2. **컨트랙트에 쓰기**
+
+```js
+ // add to existing useState hook
+ const [contractTx, setContractTx] = useState();
+
+ const writeToContract = async (e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Paste your contractABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, signer);
+
+ const value = e.target.store_value.value;
+
+ // Send a transaction to smart contract to update the value
+ const tx = await contract.store(value);
+
+ // Wait for the transaction to finish
+ const receipt = await tx.wait();
+ const result = receipt.hash;
+
+ setContractTx(result)
+ }
+
+return (
+
+
+
Write-to-contract Tx Hash: ${contractTx}
+
+);
+```
+
+3. **컨트랙트에서 읽기**
+
+지갑 자체를 사용하지 않고 순수하게 공급자만 사용하면 표준 ethers.js 인스턴스를 통해 컨트랙트에서 읽기 전용 메서드를 호출할 수 있습니다. 이 메커니즘은 이러한 작업과 관련된 일반적인 구조에서 벗어나지 않으며, 여기서 가장 큰 차이점은 통합된 `provider` 객체를 사용한다는 것입니다.
+
+```js
+// add to existing useState hook
+ const [contractMessage, setContractMessage] = useState();
+
+ const readFromContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ // paste your contract ABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, ethersProvider)
+
+ // Reading a message from the smart contract
+ const contractMessage = await contract.retrieve();
+ setContractMessage(contractMessage.toString())
+ }
+
+
+ return (
+ Read From Contract
+ Read-from-contract Message: ${contractMessage}
+ )
+```
+
+## 다음 단계
+
+Particle Network(Particle 커넥트, Particle 인증 및 기타 SDK)에 관한 추가 가이드는 [Particle Network 문서](https://docs.particle.network) 및 [Particle Network 깃허브 계정](https://github.com/Particle-Network)을 참조하세요. 또한, Particle Network의 서비스, 향후 릴리스 및 기술 스택에 대한 자세한 내용은 [Particle Network 블로그](https://blog.particle.network)를 참조하시기 바랍니다. 또한, 이 가이드에 사용된 코드의 전체 구현은 [GitHub](https://github.com/klaytn/examples/tree/main/wallet-libraries/particle-sample)에서 확인할 수 있습니다.
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/learn/kni.md b/i18n/ko/docusaurus-plugin-content-docs/current/learn/kni.md
index b5a9471fc61..46fc22b0a4f 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/learn/kni.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/learn/kni.md
@@ -36,4 +36,4 @@ kni://a979...163c@10.0.0.1:32323?subport=32324&discport=30301 # multi-channel
```
노드의 KNI를 생성하는 방법은 [노드 키 및 노드 URI 생성](../nodes/core-cell/install/before-you-install.md#node-key-node-uri-creation)을 참고하시기 바랍니다.
-KNI 체계는 노드 검색 프로토콜, [`static-nodes.json` 파일 설정](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [addPeer API](../references/json-rpc/admin.md#admin_addpeer), [bootnodes 옵션](../nodes/references/configuration-files.md#properties) 등에 사용됩니다.
+KNI 체계는 노드 검색 프로토콜, [`static-nodes.json` 파일 설정](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [addPeer API](../references/json-rpc/admin.md#admin_addpeer), [bootnodes 옵션](../misc/operation/configuration.md#properties) 등에 사용됩니다.
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md b/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
index ba80f10f78b..793ae851727 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
@@ -24,4 +24,4 @@ StateDB 라이브 프루닝을 사용하려면 다음과 같은 환경이 설정
1. klaytn v1.11.0 이상의 바이너리를 사용합니다.
2. 제네시스 블록의 모든 블록을 동기화하지 않으려면 이 [링크](https://packages.klaytn.net/cypress/pruning-chaindata/)에서 정리된 DB 스냅샷을 다운로드하세요.
3. (선택 사항) 최근 상태가 유지되는 기간에 대한 플래그 `--state.live-pruning-retention `를 추가합니다. 기본값은 172800(48시간)입니다.
-4. [체인데이터 변경](../../nodes/node-migration.md#disk-management-1) 섹션을 참고하여 DB 위치를 설정하고 여기에 `--state.live-pruning`을 추가하여 노드를 재시작합니다.
\ No newline at end of file
+4. [체인데이터 변경](../../misc/operation/chaindata-change.md) 섹션을 참고하여 DB 위치를 설정하고 여기에 `--state.live-pruning`을 추가하여 노드를 재시작합니다.
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md b/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
index f47be9fd38f..9db5aa57db5 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
@@ -10,4 +10,4 @@
[클레이튼 v1.5.0 상태 마이그레이션: 노드 스토리지 절약](https://medium.com/klaytn/klaytn-v1-5-0-state-migration-saving-node-storage-1358d87e4a7a)
[클레이튼 상태 마이그레이션: 블록체인 데이터를 줄이는 효율적인 방법](https://medium.com/klaytn/klaytn-state-migration-an-efficient-way-to-reduce-blockchain-data-6615a3b36523)
-상태 마이그레이션을 사용하려면 운영 가이드의 [`체인데이터 마이그레이션`](../../nodes/node-migration.md#disk-management-2) 페이지를 참고하세요.
\ No newline at end of file
+상태 마이그레이션을 사용하려면 운영 가이드의 [`체인데이터 마이그레이션`](../../misc/operation/chaindata-migration.md) 페이지를 참고하세요.
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/node-migration.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
similarity index 69%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/node-migration.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
index 7cbf391b9f6..aa344896262 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/node-migration.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
@@ -1,15 +1,13 @@
-# 노드 마이그레이션
-
-## 체인 데이터 변경
+# 체인 데이터 변경
💡 이 가이드는 Amazon Linux 2를 기반으로 합니다.
-### CN 노드 마이그레이션 단계
+## CN 노드 마이그레이션 단계
-#### 새 디스크 만들기
+### 새 디스크 만들기
1. 새 디스크(3,500GB 디스크) 준비 또는 현재 디스크에 새 경로 만들기(사용 가능한 3,500GB가 있어야 함).
@@ -18,7 +16,7 @@
-##### 옵션 1 - 새 디스크(2500GB 이상)
+#### 옵션 1 - 새 디스크(2500GB 이상)
1. 디스크를 EC2에 연결하고 아래 명령을 실행합니다.
@@ -43,7 +41,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-##### 옵션 2 - 현재 디스크(권장하지 않음)
+#### 옵션 2 - 현재 디스크(권장하지 않음)
1. 새 폴더 만들기
@@ -52,7 +50,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-#### 최신 체인 데이터 다운로드
+### 최신 체인 데이터 다운로드
새로운 클레이튼 데이터 DIR의 데이터에 체인 데이터를 다운로드합니다. (체인 데이터에 대한 자세한 내용은 [https://packages.klaytn.net/cypress/chaindata/](https://packages.klaytn.net/cypress/chaindata/)에서 확인할 수 있습니다.)
@@ -81,9 +79,9 @@ $ tar -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
$ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
```
-### DATA_DIR & LOG_DIR 구성하기
+## DATA_DIR & LOG_DIR 구성하기
-#### 옵션 1 - 이전 경로와 새 경로 바꾸기
+### 옵션 1 - 이전 경로와 새 경로 바꾸기
🚨 미정
@@ -93,7 +91,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. 스왑 전 클레이튼 데몬 프로세스 중지
1. ***중요*** 노드 유형이 CN인 경우 Klaytn 카운슬에서 CN 노드를 제거합니다.
- EN용 패키지는 [CN 시작하기](core-cell/install/install-consensus-nodes.md)에서 받을 수 있습니다.
+ EN용 패키지는 [CN 시작하기](../../nodes/core-cell/install/install-consensus-nodes.md#startup-the-cn)에서 받을 수 있습니다.
2. 이전 경로와 새 경로 바꾸기
@@ -115,7 +113,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
3. (선택 사항) 더 이상 필요하지 않은 경우 이전 경로를 삭제합니다.
-#### 옵션 2 - klaytn 구성 파일에서 DATA_DIR 및 LOG_DIR 업데이트하기
+### 옵션 2 - klaytn 구성 파일에서 DATA_DIR 및 LOG_DIR 업데이트하기
1. 클레이튼 디렉터리 경로 변경
- 옵션 1 - 새 디스크
@@ -123,7 +121,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
- 옵션 2 - 현재 디스크
- `kcnd.conf`에서 DIR 경로를 변경합니다.
-### 프로세스 재시작(또는 인스턴스 재부팅)
+## 프로세스 재시작(또는 인스턴스 재부팅)
💡 디스크를 추가하기 위해 재부팅이 필요한 경우 인스턴스를 재부팅합니다.
@@ -133,35 +131,3 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. ***중요*** 노드 타입이 CN인 경우 클레이튼 카운슬에서 CN 노드를 제거합니다.
2. 프로세스 재시작 또는 인스턴스 재부팅
-
-## 체인데이터 마이그레이션
-
-
-
-💡 PN 및 EN 노드(CN 제외)에 대해서만 마이그레이션 실행
-
-
-
-### 이 작업 전에 알아두어야 할 사항
-- m6i.8xlarge 사양(32코어, 128GB 메모리) 이상 필요
-- 전체 진행에 7일 소요(마이그레이션은 2부로 나누어 진행)
- - 1부 - 새 디렉터리로 DB 마이그레이션 (상태 마이그레이션 완료 메시지 표시)
- - 2부 - 새 디렉터리에 신규 블록 생성 (이후 기존 디렉터리는 삭제됨)
-- 500GB의 여유 공간이 있어야 합니다.
-
-### 클레이튼 콘솔로 이동하기
-
-```bash
-$ kpn attach klay.ipc
-
-#start chain data Migration
-> admin.startStateMigration()
-null
-
-# Check Status
-> admin.stateMigrationStatus
-
-#stop Migration
-> admin.stopStateMigration()
-
-```
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md
new file mode 100644
index 00000000000..f9c26a330d2
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md
@@ -0,0 +1,30 @@
+# 체인데이터 마이그레이션
+
+
+💡 PN 및 EN 노드(CN 제외)에 대해서만 마이그레이션 실행
+
+
+
+## 이 작업 전에 알아두어야 할 사항
+- m6i.8xlarge 사양(32코어, 128GB 메모리) 이상 필요
+- 전체 진행에 7일 소요(마이그레이션은 2부로 나누어 진행)
+ - 1부 - 새 디렉터리로 DB 마이그레이션 (상태 마이그레이션 완료 메시지 표시)
+ - 2부 - 새 디렉터리에 신규 블록 생성 (이후 기존 디렉터리는 삭제됨)
+- 500GB의 여유 공간이 있어야 합니다.
+
+## 클레이튼 콘솔로 이동하기
+
+```bash
+$ kpn attach klay.ipc
+
+#start chain data Migration
+> admin.startStateMigration()
+null
+
+# Check Status
+> admin.stateMigrationStatus
+
+#stop Migration
+> admin.stopStateMigration()
+
+```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
similarity index 56%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
index 29c103eee0f..344d071e892 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
@@ -1,94 +1,7 @@
-# 구성 파일
+# 노드 구성
이 문서는 노드의 구성 가능한 속성에 대해 설명합니다. Klaytn 노드 패키지는 기본값이 잘 설정된 상태로 제공되며 구성이 거의 필요하지 않습니다. 실행 중인 노드의 설정을 변경한 경우 변경 사항을 반영하려면 노드를 재시작해야 합니다.
-## SCN 구성 파일 위치
-
-* 서비스 체인 컨센서스 노드 구성을 위한 `kscnd.conf`
-
-구성 파일은 `conf` 디렉터리에 있으며, 기본 위치는 아카이브 배포 \(`tar.gz`\) 또는 패키지 배포 \(RPM\)에서 설치했는지 여부에 따라 달라집니다.
-
-* 아카이브 배포의 경우, 설정 디렉터리 위치는 기본적으로 `$INSTALL_PATH/kscn-linux-amd64/conf/`입니다.
-* 패키지 배포의 경우, 설정 디렉터리의 기본 위치는 `/etc/kscnd/conf/`입니다.
-
-## 구성 파일 형식
-
-아래는 블록체인 데이터를 기본 위치에 저장하는 SCN의 샘플 구성 파일로, 아카이브 배포의 경우 `~/kscnd_home`, 패키지 배포의 경우 `/var/kscnd/data`에 저장합니다.
-
-```text
-# Configuration file for the kcnd
-
-NETWORK=
-# if you specify NETWORK_ID, a private network is created.
-NETWORK_ID=
-PORT=32323
-SERVER_TYPE="fasthttp"
-SYNCMODE="full"
-VERBOSITY=3
-MAXCONNECTIONS=100
-# LDBCACHESIZE=10240
-REWARDBASE="0x0"
-
-...
-
-DATA_DIR=
-LOG_DIR=$DATA_DIR/logs
-```
-
-SCN에 권장되는 txpool 크기는 다음과 같습니다.
-
-```text
-TXPOOL_EXEC_SLOTS_ALL=16384
-TXPOOL_NONEXEC_SLOTS_ALL=16384
-TXPOOL_EXEC_SLOTS_ACCOUNT=16384
-TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
-```
-
-## 속성
-
-구성 파일에는 다음과 같은 구성 가능한 속성이 있습니다. SCN, SPN 및 SEN 구성 파일은 동일한 속성을 가집니다.
-
-| 이름 | 설명 |
-| --- | --- |
-| NETWORK | 이 노드가 가입할 네트워크 이름입니다. 이 값은 NETWORK_ID가 정의되지 않은 경우에 사용됩니다. ("Cypress", "Baobab") |
-| NETWORK_ID | Klaytn 네트워크 ID. 로컬 사설 네트워크를 생성하는 경우 네트워크 ID를 직접 정의해야 합니다. 다음 ID는 미리 구성된 네트워크를 위해 예약되어 있습니다. 8217 : Cypress(메인 네트워크) 1000 : Aspen 테스트 네트워크 1001 : Baobab 테스트 네트워크 |.
-| PORT | P2P 포트. (기본값: "32323") | |
-| SERVER_TYPE | JSON RPC 서버 유형. ("http", "fastttp") | |
-| SYNCMODE | 블록체인 동기화 모드. ("fast", "full") | |
-| VERBOSITY | 로깅 상세도. (0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail) |
-| MAXCONNECTIONS | 최대 물리적 연결 수입니다. 모든 단일 채널 피어는 MAXCONNECTIONS만큼의 피어를 가질 수 있고, 모든 멀티 채널 피어에는 MAXCONNECTIONS/2만큼의 피어를 가질 수 있습니다. 0으로 설정하면 네트워크 연결이 비활성화됩니다. (기본값: 10) |
-| LDBCACHESIZE | LevelDB의 인메모리 캐시 크기(MiB). (기본값: 768) | |
-| REWARDBASE | 블록 합의 보상을 받을 계정 주소. 이 속성은 CN에만 적용됩니다. |
-| TXPOOL_EXEC_SLOTS_ALL | 모든 계정에 대한 최대 실행 트랜잭션 슬롯 수입니다. (기본값: 4096) |
-| TXPOOL_NONEXEC_SLOTS_ALL | 모든 계정에 대한 비실행 트랜잭션 슬롯의 최대 개수입니다. (기본값: 1024) | |
-| TXPOOL_EXEC_SLOTS_ACCOUNT | 계정당 보장되는 실행 가능한 트랜잭션 슬롯 수입니다. (기본값: 16) | |
-| TXPOOL_NONEXEC_SLOTS_ACCOUNT | 계정당 보장되는 비실행 트랜잭션 슬롯의 최대 개수입니다. (기본값: 64) |
-| TXPOOL_LIFE_TIME | 비실행 트랜잭션이 대기할 수 있는 최대 시간입니다. (기본값: SEN의 경우 30m, SCN/SPN의 경우 5m) | |
-| RPC_ENABLE | 1로 설정된 경우 HTTP-RPC 서버를 활성화합니다. |
-| RPC_API | 쉼표로 구분된 HTTP-RPC 인터페이스를 통해 제공되는 API 목록입니다. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
-| RPC_PORT | HTTP-RPC 서버 수신 포트. (기본값: "8551") | |
-| RPC_ADDR | HTTP-RPC 서버 수신 인터페이스. (기본값: "localhost") | |
-| RPC_CORSDOMAIN | 쉼표로 구분된 크로스오리진 요청을 수락할 도메인 목록(브라우저 강제 적용) |
-| RPC_VHOSTS | 쉼표로 구분된 요청을 수락할 가상 호스트 이름 목록(서버 적용). '*' 와일드카드를 허용합니다. (기본값: {"localhost"}) |
-| WS_ENABLE | 1로 설정된 경우 WS-RPC 서버를 활성화합니다. |
-| WS_API | WS-RPC 인터페이스를 통해 제공되는 API. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
-| WS_ADDR | WS-RPC 서버 수신 인터페이스. |
-| WS_PORT | WS-RPC 서버 수신 포트. (기본값: "8552") |
-| WS_ORIGINS | 웹 소켓 요청을 수락할 원본. (기본값: "localhost") | |
-| SC_MAIN_BRIDGE | 1로 설정된 경우 메인 브리지 서비스를 활성화합니다. 서비스 체인 구성에 사용됩니다. |
-| SC_MAIN_BRIDGE_PORT | 메인 브리지가 이 포트에서 수신 대기합니다. (기본값: "50505") |
-| SC_MAIN_BRIDGE_INDEXING | 1로 설정하면 차일드 체인 데이터에 빠르게 액세스할 수 있도록 차일드 체인 트랜잭션의 트랜잭션 해시 저장을 활성화합니다. |
-| METRICS | 1로 설정하면 메트릭 수집 및 보고를 활성화합니다. |
-| PROMETHEUS | 1로 설정하면 Prometheus 익스포터를 활성화합니다. |
-| DB_NO_PARALLEL_WRITE | 1로 설정된 경우 영구 데이터베이스에 대한 블록 데이터의 병렬 쓰기를 비활성화합니다. |
-| MULTICHANNEL | 1로 설정된 경우 블록 전파를 위한 전용 채널을 생성합니다. |
-| SUBPORT | 멀티채널 옵션이 활성화된 경우 수신 서브 포트 번호입니다. (기본값: "32324") |
-| NO_DISCOVER | 검색 옵션이 1로 설정된 경우 검색 옵션을 끕니다. |
-| BOOTNODES | 부트스트랩 노드의 쉼표로 구분된 니 주소. |
-| ADDITIONAL | 추가 명령줄 옵션 예) --txpool.nolocals |
-| DATA_DIR | 클레이튼 블록체인 데이터 폴더 경로. |
-| LOG_DIR | 로그 폴더 경로. |
-
## CN 구성 파일 위치
* 컨센서스 노드 구성을 위한 `kcnd.conf`
@@ -213,4 +126,3 @@ TXPOOL_NONEXEC_SLOTS_ACCOUNT=4096
| ADDITIONAL | 추가 명령줄 옵션 예) --txpool.nolocals |
| DATA_DIR | 클레이튼 블록체인 데이터 폴더 경로. |
| LOG_DIR | 로그 폴더 경로. |
-
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md
new file mode 100644
index 00000000000..87175793153
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md
@@ -0,0 +1,57 @@
+# 자주 쓰는 명령어
+
+## 클레이튼 디렉터리(일반적으로 "클레이튼 DIR") 찾는 방법
+
+---
+클레이튼 디렉터리는 `kcn` 또는 `kpn` 설정에서 확인할 수 있습니다. 설정 파일은 `/etc/kcnd/conf` 또는 `/etc/kpnd/conf` 아래에 있습니다.
+
+```bash
+cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
+
+# Find DATA_DIR and LOG_DIR path as below example
+DATA_DIR=/var/kcnd/data/
+LOG_DIR=/var/kcnd/logs/
+```
+
+## 클레이튼 콘솔에 접속하는 방법
+
+---
+클레이튼 API에 연결하여 노드 및 네트워크 상태를 확인합니다.
+
+```bash
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach klay.ipc
+>
+```
+
+## 유용한 API
+
+```bash
+# Check current block Number
+ > klay.blockNumber
+
+# Check my kni address
+ > admin.nodeInfo
+
+# Check my dode address
+ > governance.nodeAddress
+
+# Check other connected nodes
+ > admin.peers
+
+# Add or remove nodes
+ > admin.addPeer("kni")
+ > admin.removePeer("kni")
+```
+
+## API 결과만 가져오기
+
+```jsx
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach --exec klay.ipc
+
+e.g.
+# Check my dode address
+$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
+"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
+```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/log-management.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/log-management.md
new file mode 100644
index 00000000000..f5158cf48ce
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/log-management.md
@@ -0,0 +1,61 @@
+# 로그 작업
+
+## 로그 로테이션 구성
+
+`--log.rotate` 플래그를 설정하여 로그 로테이션을 활성화할 수 있으며, 다음 플래그를 통해 로그 로테이션 설정을 구성할 수 있습니다.
+- `--log.rotate`: 이 플래그를 설정하면 로그 로테이션을 사용하도록 설정하고 다른 로그 로테이션 옵션을 적용합니다.
+- `--log.maxsize`: 백업 파일 생성을 트리거하는 파일 크기(MB)를 지정합니다.
+- `--log.maxbackups`: 저장할 수 있는 최대 백업 파일 수를 결정합니다. 이 제한에 도달하면 이전 로그는 삭제됩니다.
+- `--log.maxage`: 로그 파일을 보관할 수 있는 최대 일수를 나타냅니다. 예를 들어 30일로 설정하면 백업 파일은 30일 후에 삭제됩니다.
+- `--log.compress`: 이 플래그를 설정하면 백업 로그를 gz 형식으로 압축합니다.
+
+예제
+```
+./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
+```
+구성 파일(예: `kend.conf`)에서 다음 옵션을 설정하여 로그 로테이션을 활성화하고 구성할 수도 있습니다.
+```
+# log rotation related options
+LOG_ROTATE=1 # setting 1 to enable the log rotation related options
+LOG_MAXSIZE=100 # the unit is MB
+LOG_MAXBACKUPS=10
+LOG_MAXAGE=30 # maximum number of days to retain a log file
+LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
+```
+버전이 v1.11.0 이상인 패키지를 다운로드하여 사용하는 것을 권장합니다. 릴리스 노트의 바이너리 섹션에서 다운로드할 수 있습니다(예: [v1.11.0 릴리스 노트](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). 다음 세 개의 파일이 v1.11.0 이상인지 확인하세요: 구성 파일, 데몬, 바이너리. 그렇지 않으면 작동하지 않습니다.
+
+## 정상 로그 상태
+
+| Type | message | 설명 | 중요도 |
+| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
+| Error | FastWebsocketHandler fail to upgrade message | 웹소켓 연결의 버전 문제 | 낮음 |
+| Error | invalid index of the proposer | EN이 CN으로부터 트랜잭션을 수신할 때 발생하는 오류 | 낮음 |
+| WARN | ProtocolManager failed to read msg | | 낮음 |
+| WARN | Failed doConnTypeHandshake | | 낮음 |
+| Error | Protocol istanbul/64 failed | 피어 연결 끊김 | 낮음 |
+| Error | Fasthttp Err | 연결 제공 시 오류: 읽은 내용이 없는 읽기 시간 초과 | 낮음 |
+| Error | Fasthttp Err | 연결 제공 중 오류: 요청 헤더를 읽을 때 오류: "\x16..."에서 http 요청 메서드를 찾을 수 없음 | 낮음 |
+| Warn | hash=b1b26c...6b220a err="insufficient balance for transfer" | 이 로그는 "from account"의 잔액이 부족하여 처리한 트랜잭션(보통 채굴)을 실행할 수 없을 때 발생합니다(이론적으로는 트랜잭션을 생성하여 txpool에 입력할 당시에는 잔액이 충분했지만 실제 실행 시점에 잔액이 없을 때 발생). | 낮음
+| Error | ERROR[06/06,23:23:46 Z] [7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | 앵커링 tx의 데이터 필드에는 어떤 유형의 값도 포함될 수 있습니다. 그러나 잘못된 유형의 값을 입력하면 오류 로그가 노드에 출력됩니다. | 낮음
+Proposer : `Successfully wrote mined block`
+
+제안자가 아닌 `새 블록 삽입`
+
+## 로그 레벨 변경 (0~5)
+
+클레이튼 콘솔로 이동
+
+```
+#default Value
+> debug.verbosity(3)
+# hight detail logs Value
+> debug.verbosity(5)
+# No Logs Value
+> debug.verbosity(0)
+
+# Default Value for Blockchain log
+> debug.vmodule("blockchain=3")
+# High detail Value for Blockchain Log
+> debug.vmodule("blockchain=5")
+
+```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
similarity index 73%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
index b3bc69b20b8..7de961694e2 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
@@ -50,65 +50,3 @@
| Work | CN | **Successfully wrote mined block** num=14 hash=13cbfc…f007fc txs=0 elapsed=617.709µs | [제안자만] 노드가 제안자이고 합의에 성공한 경우, 제안자는 블록 실행 결과를 DB에 저장해야 합니다. 이 로그는 저장에 성공했음을 의미합니다. |
| Work | CN | **Mining too far in the future** wait=1s | 1초의 블록 생성 기간을 유지하기 위해 노드는 "1초 - 이전 블록 생성/전파/실행 시간" 동안 슬립합니다. - wait: 노드가 잠자기하는 시간|
| VM | CN/PN/EN | **Returning since the addr is not a program account** addr= | 누군가 존재하지 않는 컨트랙트를 호출하려고 시도합니다. 팁. 클레이튼에서 프로그램 계정은 컨트랙트 계정과 동일합니다. |
-
-## 로그 작업
-
-## 로그 로테이션 구성
-
-`--log.rotate` 플래그를 설정하여 로그 로테이션을 활성화할 수 있으며, 다음 플래그를 통해 로그 로테이션 설정을 구성할 수 있습니다.
-- `--log.rotate`: 이 플래그를 설정하면 로그 로테이션을 사용하도록 설정하고 다른 로그 로테이션 옵션을 적용합니다.
-- `--log.maxsize`: 백업 파일 생성을 트리거하는 파일 크기(MB)를 지정합니다.
-- `--log.maxbackups`: 저장할 수 있는 최대 백업 파일 수를 결정합니다. 이 제한에 도달하면 이전 로그는 삭제됩니다.
-- `--log.maxage`: 로그 파일을 보관할 수 있는 최대 일수를 나타냅니다. 예를 들어 30일로 설정하면 백업 파일은 30일 후에 삭제됩니다.
-- `--log.compress`: 이 플래그를 설정하면 백업 로그를 gz 형식으로 압축합니다.
-
-예제
-```
-./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
-```
-구성 파일(예: `kend.conf`)에서 다음 옵션을 설정하여 로그 로테이션을 활성화하고 구성할 수도 있습니다.
-```
-# log rotation related options
-LOG_ROTATE=1 # setting 1 to enable the log rotation related options
-LOG_MAXSIZE=100 # the unit is MB
-LOG_MAXBACKUPS=10
-LOG_MAXAGE=30 # maximum number of days to retain a log file
-LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
-```
-버전이 v1.11.0 이상인 패키지를 다운로드하여 사용하는 것을 권장합니다. 릴리스 노트의 바이너리 섹션에서 다운로드할 수 있습니다(예: [v1.11.0 릴리스 노트](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). 다음 세 개의 파일이 v1.11.0 이상인지 확인하세요: 구성 파일, 데몬, 바이너리. 그렇지 않으면 작동하지 않습니다.
-
-### 정상 로그 상태
-
-| Type | message | 설명 | 중요도 |
-| ------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --- |
-| Error | FastWebsocketHandler fail to upgrade message | 웹소켓 연결의 버전 문제 | 낮음 |
-| Error | invalid index of the proposer | EN이 CN으로부터 트랜잭션을 수신할 때 발생하는 오류 | 낮음 |
-| WARN | ProtocolManager failed to read msg | | 낮음 |
-| WARN | Failed doConnTypeHandshake | | 낮음 |
-| Error | Protocol istanbul/64 failed | 피어 연결 끊김 | 낮음 |
-| Error | Fasthttp Err | 연결 제공 시 오류: 읽은 내용이 없는 읽기 시간 초과 | 낮음 |
-| Error | Fasthttp Err | 연결 제공 중 오류: 요청 헤더를 읽을 때 오류: "\x16..."에서 http 요청 메서드를 찾을 수 없음 | 낮음 |
-| Warn | hash=b1b26c...6b220a err="insufficient balance for transfer" | 이 로그는 "from account"의 잔액이 부족하여 처리한 트랜잭션(보통 채굴)을 실행할 수 없을 때 발생합니다(이론적으로는 트랜잭션을 생성하여 txpool에 입력할 당시에는 잔액이 충분했지만 실제 실행 시점에 잔액이 없을 때 발생). | 낮음
-| Error | ERROR[06/06,23:23:46 Z] [7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | 앵커링 tx의 데이터 필드에는 어떤 유형의 값도 포함될 수 있습니다. 그러나 잘못된 유형의 값을 입력하면 오류 로그가 노드에 출력됩니다. | 낮음
-Proposer : `Successfully wrote mined block`
-
-제안자가 아닌 `새 블록 삽입`
-
-### 로그 레벨 변경 (0~5)
-
-클레이튼 콘솔로 이동
-
-```
-#default Value
-> debug.verbosity(3)
-# hight detail logs Value
-> debug.verbosity(5)
-# No Logs Value
-> debug.verbosity(0)
-
-# Default Value for Blockchain log
-> debug.vmodule("blockchain=3")
-# High detail Value for Blockchain Log
-> debug.vmodule("blockchain=5")
-
-```
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/operation.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/operation.md
new file mode 100644
index 00000000000..1d2981225c6
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/operation.md
@@ -0,0 +1,9 @@
+# 운영 가이드
+
+이 가이드는 노드 운영자가 클레이튼 노드를 효율적으로 구성하고, 모니터링하고, 문제를 해결할 수 있도록 도와주는 편리한 퀵 레퍼런스 역할을 합니다. 이 가이드는 노드 구성, 로그 이해 및 분석, 체인 데이터 관리, 필수 명령어 사용과 같은 일반적인 작업을 다룹니다. 이 가이드는 노드 운영자에게 핵심 정보와 모범 사례를 제공하여 블록체인 노드를 원활하게 운영하고 유지 관리할 수 있도록 돕는 것을 목표로 합니다.
+
+```mdx-code-block
+import DocCardList from '@theme/DocCardList';
+
+
+```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
similarity index 99%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
index 16cd24c37f3..6f9cfff712b 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
@@ -1,4 +1,4 @@
-# 오류 및 문제 해결
+# 문제 해결
## 클레이튼 바이너리 패키지를 사용하여 실행 중인 클레이튼 노드의 로그 파일은 어디에서 찾을 수 있나요?
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
index f6ae4dd1953..cd53a6b93af 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
@@ -150,7 +150,7 @@ REWARDBASE="d13f7da0032b1204f77029dc1ecbf4dae2f04241"
...
```
-생성한 키스토어와 비밀번호는 매우 중요하므로 관리에 주의해야 합니다. [구성 파일](../../../nodes/references/configuration-files.md) 섹션에서 `kcnd.conf`에 대한 자세한 내용을 참조하세요.
+생성한 키스토어와 비밀번호는 매우 중요하므로 관리에 주의해야 합니다. [구성 파일](../../../misc/operation/configuration.md) 섹션에서 `kcnd.conf`에 대한 자세한 내용을 참조하세요.
### 빠른 동기화 \(선택 사항\)
@@ -174,7 +174,7 @@ $ tar -C ~/kcnd_home -xvf klaytn-baobab-chaindata-latest.tar.gz
데이터 추출이 완료되면 CN을 정상적으로 시작할 수 있습니다.
-자세한 정보는 [체인데이터 변경](../../node-migration.md)에서 확인할 수 있습니다.
+자세한 정보는 [체인데이터 변경](../../../misc/operation/chaindata-change.md)에서 확인할 수 있습니다.
## CN 시작하기
@@ -219,6 +219,18 @@ Failed to start kcnd.service: Unit not found.
$ systemctl daemon-reload
```
+### BLS 공개키 정보 내보내기
+
+네트워크가 Randao 하드포크를 활성화했거나 활성화할 예정이라면, 각 CN 관리자는 BLS 공개키 정보를 [KIP-113 스마트 컨트랙트](https://kips.klaytn.foundation/KIPs/kip-113)에 제출해야 합니다.
+
+BLS 공개키 정보는 노드키에서 계산할 수 있습니다. 이를 추출하려면 먼저 노드를 시작합니다. 그리고 다음 명령을 사용합니다:
+
+```
+kcn account bls-info --datadir /var/kcnd/data
+```
+
+결과적으로 `bls-publicinfo-NODEID.json` 파일이 생성됩니다.
+
## 코어 셀 테스트
이제 코어 셀이 성공적으로 설치되었는지, 설치 후 예상대로 작동하는지 확인해야 합니다.
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
index 5e010346567..ec1850de8f9 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
@@ -160,7 +160,7 @@ $ tar -C /var/kpnd/data -xvf klaytn-baobab-chaindata-latest.tar.gz
데이터 추출이 완료되면 PN을 정상적으로 시작할 수 있습니다.
-[체인데이터 변경](../../node-migration.md)에서 자세한 정보를 확인할 수 있습니다.
+[체인데이터 변경](../../../misc/operation/chaindata-change.md)에서 자세한 정보를 확인할 수 있습니다.
## PN 시작하기
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
index 6c69b87fe11..bb2cb2fb444 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
@@ -8,6 +8,7 @@ sidebar_label: 노드 패키지 다운로드
CN, PN, EN, SCN, SPN 및 SEN용 패키지를 받을 수 있습니다.
+* [v1.12.0](./v1.12.0.md)
* [v1.11.1](./v1.11.1.md)
* [v1.11.0](./v1.11.0.md)
* [v1.10.2](./v1.10.2.md)
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md
new file mode 100644
index 00000000000..ec8135c4f99
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md
@@ -0,0 +1,145 @@
+# v1.12.0
+
+## 패키지 다운로드
+
+### RPM
+
+Cypress 패키지
+- [kcnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-v1.12.0-0.el7.x86_64.rpm)
+- [kend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-v1.12.0-0.el7.x86_64.rpm)
+
+Baobab 패키지
+- [kcnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kend-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-baobab-v1.12.0-0.el7.x86_64.rpm)
+
+공통 패키지
+- [kscnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kscnd-v1.12.0-0.el7.x86_64.rpm)
+- [kspnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kspnd-v1.12.0-0.el7.x86_64.rpm)
+- [ksend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/ksend-v1.12.0-0.el7.x86_64.rpm)
+- [kbnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kbnd-v1.12.0-0.el7.x86_64.rpm)
+- [kgen-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0.el7.x86_64.rpm)
+- [homi-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0.el7.x86_64.rpm)
+
+### Linux
+
+Cypress 패키지
+- [kcn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-linux-amd64.tar.gz)
+
+Baobab 패키지
+- [kcn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-linux-amd64.tar.gz)
+
+공통 패키지
+- [kscn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-linux-amd64.tar.gz)
+- [kspn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-linux-amd64.tar.gz)
+- [ksen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-linux-amd64.tar.gz)
+- [kbn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-linux-amd64.tar.gz)
+- [kgen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-linux-amd64.tar.gz)
+- [homi-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-linux-amd64.tar.gz)
+
+### MacOS
+
+Cypress 패키지
+- [kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ken-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-arm64.tar.gz)
+
+Baobab 패키지
+- [kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+
+공통 패키지
+- [kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [homi-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kscn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kspn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ksen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-arm64.tar.gz)
+- [kbn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kgen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-arm64.tar.gz)
+- [homi-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-arm64.tar.gz)
+
+### Windows
+
+- 아직 지원되지 않음
+
+### Docker
+
+- [klaytn/klaytn:v1.12.0](https://hub.docker.com/r/klaytn/klaytn)
+
+
+## 릴리스 노트
+
+Klaytn v1.12.0에는 이전 버전과 호환되지 않는 변경을 일으키는 하드포크 업그레이드가 포함되어 있습니다. 모든 Baobab 노드는 대상 블록 번호 이전에 v1.12.0 이상으로 업그레이드해야 합니다. Cypress 메인넷의 하드포크 블록 번호는 다음 버전에서 예정될 예정입니다.
+
+이번 버전에는 두 가지 하드포크가 포함됩니다. 첫 번째는 이더리움 Caucun 하드포크에 해당하는 기능이며, 두 번째는 Randao 온체인 무작위성을 구현하는 선택적 하드포크입니다.
+
+하드포크 일정은 다음과 같습니다:
+
+**Baobab 테스트넷**
+
+* 블록 번호: 141367000 (예상 시간: 12월 19일 오전 10:00 UTC+9)
+* 하드포크 내용: Cancun 하드포크, Randao 하드포크
+
+### Cancun 하드포크 특징
+
+* [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) ([#1988](https://github.com/klaytn/klaytn/pull/1988))에 따라 EVM에 TLOAD, TSTORE 옵코드 추가.
+* 블롭 트랜잭션 유형 지원을 제외한 [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) 및 [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516)에 따라 EVM에 BLOBBASEFEE, BLOBHASH 옵코드 및 POINT_EVALUATION (0x0a) 프리컴파일 추가 ([#2032](https://github.com/klaytn/klaytn/pull/2032)).
+* [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656)에 따라 EVM에 MCOPY 옵코드 추가 ([#1980](https://github.com/klaytn/klaytn/pull/1980)).
+* [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) ([#1986](https://github.com/klaytn/klaytn/pull/1986))에 따라 SELFDESTRUCT 옵코드의 동작 수정
+* 권장 하드웨어 사양에 맞게 ComputationCost를 조정하고 ComputationCostLimit를 증가시킴 ([#2037](https://github.com/klaytn/klaytn/pull/2037)).
+* [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052)에 따라 계정이 비어있을 때 0을 반환하도록 EXTCODEHASH 연산 코드 동작 수정 ([#2040](https://github.com/klaytn/klaytn/pull/2040)).
+* [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) ([#1955](https://github.com/klaytn/klaytn/pull/1955)에 따라 AccessList 트랜잭션 유형에 대한 완전히 지원 추가
+
+### Randao 하드포크 특징
+
+* [KIP-149](https://github.com/klaytn/kips/issues/149)에 따른 시스템 컨트랙트 레지스트리 추가 ([#1968](https://github.com/klaytn/klaytn/pull/1968), [#1987](https://github.com/klaytn/klaytn/pull/1987), [#1999](https://github.com/klaytn/klaytn/pull/1999), [#2054](https://github.com/klaytn/klaytn/pull/2054), [#2059](https://github.com/klaytn/klaytn/pull/2059)).
+* [KIP-113](https://github.com/klaytn/kips/issues/113)에 따라 BLS 공개키 레지스트리 추가([#1951](https://github.com/klaytn/klaytn/pull/1951), [#1990](https://github.com/klaytn/klaytn/pull/1990), [#2017](https://github.com/klaytn/klaytn/pull/2017), [#2029](https://github.com/klaytn/klaytn/pull/2029), [#2052](https://github.com/klaytn/klaytn/pull/2052), [#2053](https://github.com/klaytn/klaytn/pull/2053)).
+* [KIP-114](https://github.com/klaytn/kips/issues/114) ([#2009](https://github.com/klaytn/klaytn/pull/2009), [#2014](https://github.com/klaytn/klaytn/pull/2014), [#2028](https://github.com/klaytn/klaytn/pull/2028))에 따라 블록 헤더에 RANDAO 필드 추가.
+* [KIP-146](https://github.com/klaytn/kips/issues/146) ([#2030](https://github.com/klaytn/klaytn/pull/2030), [#2039](https://github.com/klaytn/klaytn/pull/2039)에 따라 예측 불가능한 무작위성을 사용하도록 블록 제안자 선택 수정.
+
+
+### 개선 사항
+
+* 업스트림 EN 기능 추가. EN이 API 처리 중 블록 데이터를 찾지 못하면 `--rpc.upstream-en` 플래그로 지정된 다른 EN을 쿼리할 수 있습니다. ([#2013](https://github.com/klaytn/klaytn/pull/2013))
+* 네트워크 보안을 강화하기 위해 블록 합의 정족수를 증가. ([#2026](https://github.com/klaytn/klaytn/pull/2026))
+* 빌트인 콘솔의 자바스크립트 런타임이 이제 [ECMAScript6](http://es6-features.org/) 기능을 지원함 ([#2001](https://github.com/klaytn/klaytn/pull/2001)).
+* RocksDB 인스턴스 간의 데이터 동기화 최적화. ([#1947](https://github.com/klaytn/klaytn/pull/1947))
+* 옵코드 실행 시간을 측정하기 위한 노드 플래그 --vm.opdebug 추가. ([#2012](https://github.com/klaytn/klaytn/pull/2012))
+* 트랜잭션 관련 API가 잘못된 서명에 대해 더 자세한 오류 메시지를 반환. ([#1967](https://github.com/klaytn/klaytn/pull/1967)).
+* debug_startWarmUp API 최적화 ([#2011](https://github.com/klaytn/klaytn/pull/2011))
+* ERC-4337 번들러를 지원하기 위해 debug_traceCall AP 추가 ([#1965](https://github.com/klaytn/klaytn/pull/1965), [#1979](https://github.com/klaytn/klaytn/pull/1979)).
+* admin_nodeConfig API 추가([#1996](https://github.com/klaytn/klaytn/pull/1996))
+* AccessList 타입 트랜잭션 빌드에 도움이 되는 eth_createAccessList API 추가 ([#2027](https://github.com/klaytn/klaytn/pull/2027)).
+* 이더리움 블록 수신 API를 추가하고, 블록 번호를 받도록 klay_getBlockReceipts API 수정. ([#2019](https://github.com/klaytn/klaytn/pull/2019))
+
+### 수정
+
+* 거버넌스 관련 버그 수정 ([#1942](https://github.com/klaytn/klaytn/pull/1942), [#1984](https://github.com/klaytn/klaytn/pull/1984))
+* 거버넌스 관련 내부 상태를 올바르게 되돌리도록 debug_setHead API를 수정. 이제 거버넌스 관련 블록 동기화 문제에서 복구 시도 가능. ([#1966](https://github.com/klaytn/klaytn/pull/1966), [#2002](https://github.com/klaytn/klaytn/pull/2002))
+* 일부 로그 레벨 수정. ([#1946](https://github.com/klaytn/klaytn/pull/1946), [#1978](https://github.com/klaytn/klaytn/pull/1978))
+* debug_traceTransaction API가 EOA로의 값 전송과 함께 올바르게 작동하도록 수정. ([#1953](https://github.com/klaytn/klaytn/pull/1953))
+* 이더리움 타입 트랜잭션을 올바르게 처리하도록 klay_recoverFromTransaction API 수정. ([#1975](https://github.com/klaytn/klaytn/pull/1975)).
+* 블록 및 헤더 가져오기 API가 "보류 중" 블록 번호에서 실패하지 않도록 수정. ([#1994](https://github.com/klaytn/klaytn/pull/1994))
+* Magma 하드포크 이후 eth_maxPriorityFeePerGas API가 0을 반환하도록 수정. ([#2008](https://github.com/klaytn/klaytn/pull/2008)).
+
+### 기타
+
+* rlpx 및 abi 패키지 업데이트 ([#1954](https://github.com/klaytn/klaytn/pull/1954), [#2015](https://github.com/klaytn/klaytn/pull/2015))
+* 일부 패키지를 WASM 타깃용으로 빌드할 수 있게 함 ([#1983](https://github.com/klaytn/klaytn/pull/1983)).
+* 마이너 유지보수 ([#1941](https://github.com/klaytn/klaytn/pull/1941), [#1944](https://github.com/klaytn/klaytn/pull/1944), [#1948](https://github.com/klaytn/klaytn/pull/1948), [#1952](https://github.com/klaytn/klaytn/pull/1952), [#1956](https://github.com/klaytn/klaytn/pull/1956), [#1969](https://github.com/klaytn/klaytn/pull/1969), [#1971](https://github.com/klaytn/klaytn/pull/1971), [#1972](https://github.com/klaytn/klaytn/pull/1972), [#1973](https://github.com/klaytn/klaytn/pull/1973), [#1974](https://github.com/klaytn/klaytn/pull/1974), [#1977](https://github.com/klaytn/klaytn/pull/1977), [#1982](https://github.com/klaytn/klaytn/pull/1982), [#1985](https://github.com/klaytn/klaytn/pull/1985), [#1991](https://github.com/klaytn/klaytn/pull/1991), [#1992](https://github.com/klaytn/klaytn/pull/1992), [#1993](https://github.com/klaytn/klaytn/pull/1993), [#1995](https://github.com/klaytn/klaytn/pull/1995), [#1997](https://github.com/klaytn/klaytn/pull/1997), [#1998](https://github.com/klaytn/klaytn/pull/1998), [#2004](https://github.com/klaytn/klaytn/pull/2004), [#2007](https://github.com/klaytn/klaytn/pull/2007), [#2016](https://github.com/klaytn/klaytn/pull/2016), [#2020](https://github.com/klaytn/klaytn/pull/2020), [#2024](https://github.com/klaytn/klaytn/pull/2024), [#2031](https://github.com/klaytn/klaytn/pull/2031), [#2033](https://github.com/klaytn/klaytn/pull/2033), [#2034](https://github). com/klaytn/klaytn/pull/2034), [#2035](https://github.com/klaytn/klaytn/pull/2035), [#2036](https://github.com/klaytn/klaytn/pull/2036), [#2041](https://github.com/klaytn/klaytn/pull/2041), [#2050](https://github.com/klaytn/klaytn/pull/2050), [#2055](https://github.com/klaytn/klaytn/pull/2055), [#2056](https://github.com/klaytn/klaytn/pull/2056), [#2058](https://github.com/klaytn/klaytn/pull/2058), [#2061](https://github.com/klaytn/klaytn/pull/2061)))
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
index bf2d7c855ee..eaecad04070 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
@@ -129,7 +129,7 @@ $ tar -C ~/kend_home -xvf klaytn-baobab-chaindata-latest.tar.gz
데이터 추출이 완료되면 EN을 정상적으로 시작할 수 있습니다.
-자세한 정보는 [체인데이터 변경](../node-migration.md)에서 확인할 수 있습니다.
+자세한 정보는 [체인데이터 변경](../../misc/operation/chaindata-change.md)에서 확인할 수 있습니다.
## EN 시작하기
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md
new file mode 100644
index 00000000000..f5eb2fd898c
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md
@@ -0,0 +1,83 @@
+# JSON-RPC API
+
+엔드포인트 노드는 JSON-RPC API를 노출합니다. API는 다음과 같이 활성화/비활성화할 수 있습니다. 자세한 API 명세는 [JSON-RPC APIs](../../references/json-rpc/json-rpc.md)를 참고하세요.
+
+**참고**: HTTP(`rpc`) 또는 웹소켓(`ws`) 인터페이스를 통해 API를 제공하면 모든 사용자가 이 인터페이스에 액세스할 수 있는 API(디앱, 브라우저 탭 등)에 액세스할 수 있습니다. 어떤 API를 활성화할지 활성화할 때 주의하세요. 기본적으로 클레이튼은 `ipc` 인터페이스를 통해 모든 API를 활성화하지만, `rpc`와 `ws`의 경우 필수 모듈을 명시적으로 활성화해야 합니다.
+
+## API 활성화하기
+
+### 명령줄에서
+
+클레이튼 RPC 엔드포인트를 통해 API를 제공하려면 `--${interface}api`
+명령줄 인자로 지정하세요. 여기서 `${interface}`는 HTTP 엔드포인트의 경우 `rpc`, 웹소켓 엔드포인트의 경우 `ws`가 될 수 있습니다.
+
+`ipc`는 플래그 없이 유닉스 소켓(Unix) 또는 네임드 파이프(Windows) 엔드포인트를 통해 모든 API를 제공합니다.
+
+아래 예시와 같이 추가하려는 특정 API를 사용하여 Klaytn 노드를 시작할 수 있습니다. 단, 노드를 실행한 후에는 API를 변경할 수 없다는 점에 유의하세요.
+
+예) `klay`와 `net` 모듈을 활성화한 상태에서 클레이튼 노드 실행하기:
+
+```shell
+$ ken --rpcapi klay,net --rpc --{other options}
+```
+
+HTTP RPC 인터페이스는 `--rpc` 플래그를 사용하여 명시적으로 활성화해야 합니다.
+
+### 구성 파일 사용
+
+[구성 파일](../../misc/operation/configuration.md)에서 `RPC_ENABLE`, `RPC_API`, `WS_ENABLE` 및 `WS_API` 속성을 업데이트하세요.
+
+## 사용 가능한 API 쿼리하기
+
+인터페이스가 어떤 API를 제공하는지 확인하려면 `modules` JSON-RPC 메서드를 호출할 수 있습니다. `rpc` 인터페이스를 예로 들자면,
+
+**IPC**
+
+```javascript
+$ echo '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' | nc -U klay.ipc
+```
+
+**HTTP**
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' https://public-en-baobab.klaytn.net
+```
+
+이로써 버전 번호를 포함하여 활성화된 모든 모듈을 반환합니다:
+
+```
+{
+ "jsonrpc":"2.0",
+ "id":1,
+ "result":{
+ "admin":"1.0",
+ "debug":"1.0",
+ "klay":"1.0",
+ "miner":"1.0",
+ "net":"1.0",
+ "personal":"1.0",
+ "rpc":"1.0",
+ "txpool":"1.0",
+ "web3":"1.0"
+ }
+}
+```
+
+## 안전하지 않은 디버그 API 비활성화
+
+일부 디버그 네임스페이스 API는 안전하지 않거나 공개하기에 부적절합니다.
+디버그 네임스페이스 API는 권한이 있는 사용자에게만 제공하는 것이 좋습니다.
+그러나 공개 EN을 유지하면서 디버그 네임스페이스 API를 일반에 제공하려는 경우
+안전하지 않거나 부적절한 API를 비활성화하는 `rpc.unsafe-debug.disable` 플래그를 설정하고 디버그 네임스페이스 API의 하위 집합만 활성화하도록 설정하도록 강력히 권장합니다.
+
+활성화된 API는 다음과 같습니다:
+
+- [VM Tracing](../../references/json-rpc/debug/tracing.md) API(기능이 제한됨) (단, [사전 정의된 추적기](../../references/json-rpc/debug/tracing.md#tracing-options)만 허용됨)
+- debug_dumpBlock, debug_dumpStateTrie, debug_getBlockRlp, debug_getModifiedAccountsByHash, debug_getModifiedAccountsByNumber, debug_getBadBlocks, debug_getModifiedStorageNodesByNumber
+- debug_metrics
+
+`rpc.unsafe-debug.disable` 플래그를 설정하려면 `kend.conf` 파일에 다음 줄을 추가합니다.
+
+```
+ADDITIONAL="$ADDITIONAL --rpc.unsafe-debug.disable"
+```
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
similarity index 69%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
index 3e7f19ab387..32afbc360be 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
@@ -1,62 +1,4 @@
-# 클레이튼 명령어
-
-## 클레이튼 디렉터리(일반적으로 "클레이튼 DIR") 찾는 방법
-
----
-클레이튼 디렉터리는 `kcn` 또는 `kpn` 설정에서 확인할 수 있습니다. 설정 파일은 `/etc/kcnd/conf` 또는 `/etc/kpnd/conf` 아래에 있습니다.
-
-```bash
-cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
-
-# Find DATA_DIR and LOG_DIR path as below example
-DATA_DIR=/var/kcnd/data/
-LOG_DIR=/var/kcnd/logs/
-```
-
-## 클레이튼 콘솔에 접속하는 방법
-
----
-클레이튼 API에 연결하여 노드 및 네트워크 상태를 확인합니다.
-
-```bash
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach klay.ipc
->
-```
-
-## 유용한 API
-
-```bash
-# Check current block Number
- > klay.blockNumber
-
-# Check my kni address
- > admin.nodeInfo
-
-# Check my dode address
- > governance.nodeAddress
-
-# Check other connected nodes
- > admin.peers
-
-# Add or remove nodes
- > admin.addPeer("kni")
- > admin.removePeer("kni")
-```
-
-## API 결과만 가져오기
-
-```jsx
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach --exec klay.ipc
-
-e.g.
-# Check my dode address
-$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
-"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
-```
-
-## ken CLI 명령어
+# ken CLI 명령어
'켄'은 클레이튼 엔드포인트 노드를 위한 명령줄 인터페이스입니다.
@@ -65,7 +7,7 @@ USAGE:
ken [options] command [command options] [arguments...]
```
-### 명령어
+## 명령어
`ken`에는 다음과 같은 명령이 있습니다.
@@ -115,7 +57,7 @@ participating.
...
```
-### JavaScript 콘솔
+## JavaScript 콘솔
클레이튼 엔드포인트 노드는 JavaScript 콘솔과 함께 제공됩니다. 콘솔 명령줄에서 EN에 클레이튼 API 호출의 일부를 시작할 수 있습니다. JavaScript 콘솔에 접속하려면 다음 명령을 실행하세요.
@@ -137,7 +79,7 @@ Welcome to the Klaytn JavaScript console
console Start an interactive JavaScript environment
```
-#### 모듈 API
+### 모듈 API
콘솔 프롬프트에 모듈 이름을 입력하면 해당 모듈의 사용 가능한 프로퍼티와 함수를 확인할 수 있습니다. 함수에 대한 자세한 내용은 [Klaytn API](../../references/json-rpc/json-rpc.md)를 참고하세요.
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/references.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/references.md
deleted file mode 100644
index 53d89a3d937..00000000000
--- a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/references.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# 노드 레퍼런스
-
-```mdx-code-block
-import DocCardList from '@theme/DocCardList';
-
-
-```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md
new file mode 100644
index 00000000000..801e313a028
--- /dev/null
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md
@@ -0,0 +1,91 @@
+# 구성 파일
+
+이 문서는 노드의 구성 가능한 속성에 대해 설명합니다. Klaytn 노드 패키지는 기본값이 잘 설정된 상태로 제공되며 구성이 거의 필요하지 않습니다. 실행 중인 노드의 설정을 변경한 경우 변경 사항을 반영하려면 노드를 재시작해야 합니다.
+
+## SCN 구성 파일 위치
+
+* 서비스 체인 컨센서스 노드 구성을 위한 `kscnd.conf`
+
+구성 파일은 `conf` 디렉터리에 있으며, 기본 위치는 아카이브 배포 \(`tar.gz`\) 또는 패키지 배포 \(RPM\)에서 설치했는지 여부에 따라 달라집니다.
+
+* 아카이브 배포의 경우, 설정 디렉터리 위치는 기본적으로 `$INSTALL_PATH/kscn-linux-amd64/conf/`입니다.
+* 패키지 배포의 경우, 설정 디렉터리의 기본 위치는 `/etc/kscnd/conf/`입니다.
+
+## 구성 파일 형식
+
+아래는 블록체인 데이터를 기본 위치에 저장하는 SCN의 샘플 구성 파일로, 아카이브 배포의 경우 `~/kscnd_home`, 패키지 배포의 경우 `/var/kscnd/data`에 저장합니다.
+
+```text
+# Configuration file for the kcnd
+
+NETWORK=
+# if you specify NETWORK_ID, a private network is created.
+NETWORK_ID=
+PORT=32323
+SERVER_TYPE="fasthttp"
+SYNCMODE="full"
+VERBOSITY=3
+MAXCONNECTIONS=100
+# LDBCACHESIZE=10240
+REWARDBASE="0x0"
+
+...
+
+DATA_DIR=
+LOG_DIR=$DATA_DIR/logs
+```
+
+SCN에 권장되는 txpool 크기는 다음과 같습니다.
+
+```text
+TXPOOL_EXEC_SLOTS_ALL=16384
+TXPOOL_NONEXEC_SLOTS_ALL=16384
+TXPOOL_EXEC_SLOTS_ACCOUNT=16384
+TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
+```
+
+## 속성
+
+구성 파일에는 다음과 같은 구성 가능한 속성이 있습니다. SCN, SPN 및 SEN 구성 파일은 동일한 속성을 가집니다.
+
+| 이름 | 설명 |
+| --- | --- |
+| NETWORK | 이 노드가 가입할 네트워크 이름입니다. 이 값은 NETWORK_ID가 정의되지 않은 경우에 사용됩니다. ("Cypress", "Baobab") |
+| NETWORK_ID | Klaytn 네트워크 ID. 로컬 사설 네트워크를 생성하는 경우 네트워크 ID를 직접 정의해야 합니다. 다음 ID는 미리 구성된 네트워크를 위해 예약되어 있습니다. 8217 : Cypress(메인 네트워크) 1000 : Aspen 테스트 네트워크 1001 : Baobab 테스트 네트워크 |.
+| PORT | P2P 포트. (기본값: "32323") | |
+| SERVER_TYPE | JSON RPC 서버 유형. ("http", "fastttp") | |
+| SYNCMODE | 블록체인 동기화 모드. ("fast", "full") | |
+| VERBOSITY | 로깅 상세도. (0=silent, 1=error, 2=warn, 3=info, 4=debug, 5=detail) |
+| MAXCONNECTIONS | 최대 물리적 연결 수입니다. 모든 단일 채널 피어는 MAXCONNECTIONS만큼의 피어를 가질 수 있고, 모든 멀티 채널 피어에는 MAXCONNECTIONS/2만큼의 피어를 가질 수 있습니다. 0으로 설정하면 네트워크 연결이 비활성화됩니다. (기본값: 10) |
+| LDBCACHESIZE | LevelDB의 인메모리 캐시 크기(MiB). (기본값: 768) | |
+| REWARDBASE | 블록 합의 보상을 받을 계정 주소. 이 속성은 CN에만 적용됩니다. |
+| TXPOOL_EXEC_SLOTS_ALL | 모든 계정에 대한 최대 실행 트랜잭션 슬롯 수입니다. (기본값: 4096) |
+| TXPOOL_NONEXEC_SLOTS_ALL | 모든 계정에 대한 비실행 트랜잭션 슬롯의 최대 개수입니다. (기본값: 1024) | |
+| TXPOOL_EXEC_SLOTS_ACCOUNT | 계정당 보장되는 실행 가능한 트랜잭션 슬롯 수입니다. (기본값: 16) | |
+| TXPOOL_NONEXEC_SLOTS_ACCOUNT | 계정당 보장되는 비실행 트랜잭션 슬롯의 최대 개수입니다. (기본값: 64) |
+| TXPOOL_LIFE_TIME | 비실행 트랜잭션이 대기할 수 있는 최대 시간입니다. (기본값: SEN의 경우 30m, SCN/SPN의 경우 5m) | |
+| RPC_ENABLE | 1로 설정된 경우 HTTP-RPC 서버를 활성화합니다. |
+| RPC_API | 쉼표로 구분된 HTTP-RPC 인터페이스를 통해 제공되는 API 목록입니다. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
+| RPC_PORT | HTTP-RPC 서버 수신 포트. (기본값: "8551") | |
+| RPC_ADDR | HTTP-RPC 서버 수신 인터페이스. (기본값: "localhost") | |
+| RPC_CORSDOMAIN | 쉼표로 구분된 크로스오리진 요청을 수락할 도메인 목록(브라우저 강제 적용) |
+| RPC_VHOSTS | 쉼표로 구분된 요청을 수락할 가상 호스트 이름 목록(서버 적용). '*' 와일드카드를 허용합니다. (기본값: {"localhost"}) |
+| WS_ENABLE | 1로 설정된 경우 WS-RPC 서버를 활성화합니다. |
+| WS_API | WS-RPC 인터페이스를 통해 제공되는 API. (admin, debug, klay, miner, net, personal, rpc, txpool, web3) |
+| WS_ADDR | WS-RPC 서버 수신 인터페이스. |
+| WS_PORT | WS-RPC 서버 수신 포트. (기본값: "8552") |
+| WS_ORIGINS | 웹 소켓 요청을 수락할 원본. (기본값: "localhost") | |
+| SC_MAIN_BRIDGE | 1로 설정된 경우 메인 브리지 서비스를 활성화합니다. 서비스 체인 구성에 사용됩니다. |
+| SC_MAIN_BRIDGE_PORT | 메인 브리지가 이 포트에서 수신 대기합니다. (기본값: "50505") |
+| SC_MAIN_BRIDGE_INDEXING | 1로 설정하면 차일드 체인 데이터에 빠르게 액세스할 수 있도록 차일드 체인 트랜잭션의 트랜잭션 해시 저장을 활성화합니다. |
+| METRICS | 1로 설정하면 메트릭 수집 및 보고를 활성화합니다. |
+| PROMETHEUS | 1로 설정하면 Prometheus 익스포터를 활성화합니다. |
+| DB_NO_PARALLEL_WRITE | 1로 설정된 경우 영구 데이터베이스에 대한 블록 데이터의 병렬 쓰기를 비활성화합니다. |
+| MULTICHANNEL | 1로 설정된 경우 블록 전파를 위한 전용 채널을 생성합니다. |
+| SUBPORT | 멀티채널 옵션이 활성화된 경우 수신 서브 포트 번호입니다. (기본값: "32324") |
+| NO_DISCOVER | 검색 옵션이 1로 설정된 경우 검색 옵션을 끕니다. |
+| BOOTNODES | 부트스트랩 노드의 쉼표로 구분된 니 주소. |
+| ADDITIONAL | 추가 명령줄 옵션 예) --txpool.nolocals |
+| DATA_DIR | 클레이튼 블록체인 데이터 폴더 경로. |
+| LOG_DIR | 로그 폴더 경로. |
+
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/genesis.md b/i18n/ko/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/genesis.md
similarity index 100%
rename from i18n/ko/docusaurus-plugin-content-docs/current/nodes/references/genesis.md
rename to i18n/ko/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/genesis.md
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
index 07462a7a715..3a46330c461 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
@@ -78,6 +78,53 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"ad
"protocols":{"istanbul":{"network":1000,"difficulty":1,"genesis":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d","config":{"chainId":1000,"istanbul":{"epoch":30000,"policy":0,"sub":7},"isBFT":true,"unitPrice":25000000000,"deriveShaImpl":0},"head":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d"}}}}
```
+## admin_nodeConfig
+
+`nodeConfig` 관리 속성은 실행 중인 Klaytn 노드의 모든 설정에 대해 쿼리할 수 있습니다.
+
+| 클라이언트 | 메서드 호출 |
+|:-------:|-------------------------------------------|
+| 콘솔 | `admin.nodeConfig` |
+| RPC | `{"method": "admin_nodeConfig"}` |
+
+**매개 변수**
+
+None
+
+**리턴 값**
+
+| 유형 | 설명 |
+| --- | --- |
+| JSON string | 노드 구성입니다. |
+
+**예제**
+
+콘솔
+```javascript
+> admin.nodeConfig
+{
+ AnchoringPeriod: 0,
+ AutoRestartFlag: false,
+ DBType: "LevelDB",
+ DaemonPathFlag: "/klaytn-docker-pkg/bin/kend",
+ DisableUnsafeDebug: false,
+
+ ...
+
+ TxResendCount: 1000,
+ TxResendInterval: 4,
+ TxResendUseLegacy: false,
+ WorkerDisable: false,
+ WsEndpoint: "0.0.0.0:8552"
+}
+```
+
+HTTP RPC
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"admin_nodeConfig","id":1}' https://public-en-baobab.klaytn.net
+{"jsonrpc":"2.0","id":1,"result":{"Genesis":null,"NetworkId":1001,"SyncMode":"full","NoPruning":false,"WorkerDisable":false,"DownloaderDisable":false,"FetcherDisable":false,"ParentOperatorAddr":null,"AnchoringPeriod":0,"SentChainTxsLimit":0,"OverwriteGenesis":false,"StartBlockNumber":0,"DBType":"LevelDB","SkipBcVersionCheck":false,"SingleDB":false,"NumStateTrieShards":4,"EnableDBPerfMetrics":true,"LevelDBCompression":0,"LevelDBBufferPool":true,"LevelDBCacheSize":768,"DynamoDBConfig":{"TableName":"","Region":"ap-northeast-2","Endpoint":"","S3Endpoint":"","IsProvisioned":false,"ReadCapacityUnits":10000,"WriteCapacityUnits":10000,"ReadOnly":false,"PerfCheck":false},"RocksDBConfig":{"Secondary":false,"DumpMallocStat":false,"DisableMetrics":false,"CacheSize":768,"CompressionType":"lz4","BottommostCompressionType":"zstd","FilterPolicy":"ribbon","MaxOpenFiles":1024,"CacheIndexAndFilter":false},"TrieCacheSize":512,"TrieTimeout":300000000000,"TrieBlockInterval":128,"TriesInMemory":128,"LivePruning":false,"LivePruningRetention":172800,"SenderTxHashIndexing":false,"ParallelDBWrite":true,"TrieNodeCacheConfig":{"CacheType":"LocalCache","NumFetcherPrefetchWorker":32,"UseSnapshotForPrefetch":false,"LocalCacheSizeMiB":1024,"FastCacheFileDir":"/home/ubuntu/klaytn/data/fastcache","FastCacheSavePeriod":0,"RedisEndpoints":null,"RedisClusterEnable":false,"RedisPublishBlockEnable":false,"RedisSubscribeBlockEnable":false},"SnapshotCacheSize":0,"SnapshotAsyncGen":false,"ServiceChainSigner":"0x0000000000000000000000000000000000000000","ExtraData":null,"GasPrice":25000000000,"Rewardbase":"0x0000000000000000000000000000000000000000","TxPool":{"NoLocals":false,"AllowLocalAnchorTx":false,"DenyRemoteTx":false,"Journal":"/home/ubuntu/klaytn/data/klay/transactions.rlp","JournalInterval":3600000000000,"PriceLimit":1,"PriceBump":10,"ExecSlotsAccount":4096,"ExecSlotsAll":4096,"NonExecSlotsAccount":4096,"NonExecSlotsAll":4096,"KeepLocals":false,"Lifetime":300000000000,"NoAccountCreation":false,"EnableSpamThrottlerAtRuntime":false},"GPO":{"Blocks":20,"Percentile":60,"MaxHeaderHistory":1024,"MaxBlockHistory":1024,"Default":null},"EnablePreimageRecording":false,"EnableInternalTxTracing":false,"EnableOpDebug":false,"Istanbul":{"Timeout":10000,"BlockPeriod":1,"ProposerPolicy":0,"Epoch":30000,"SubGroupSize":21},"DocRoot":"","WsEndpoint":"0.0.0.0:8652","TxResendInterval":4,"TxResendCount":1000,"TxResendUseLegacy":false,"NoAccountCreation":false,"IsPrivate":false,"AutoRestartFlag":false,"RestartTimeOutFlag":900000000000,"DaemonPathFlag":"/home/ubuntu/klaytn/bin/kend","RPCGasCap":null,"RPCEVMTimeout":5000000000,"RPCTxFeeCap":0,"DisableUnsafeDebug":false,"StateRegenerationTimeLimit":60000000000}}
+```
## admin_datadir
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
index b1c60cdb9f7..cd75add1b32 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
@@ -355,8 +355,6 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"de
## debug_setHead
-**`경고`**: 이 API는 아직 구현되지 않았으며 항상 "not yet implemented API" 오류를 반환합니다.
-
블록 번호별로 로컬 체인의 현재 헤드를 설정합니다.
**참고**: 이는 파괴적인 행동이며 체인이 심각하게 손상될 수 있습니다.
@@ -372,7 +370,7 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"de
| 이름 | 유형 | 설명 |
| --- | --- | --- |
-| number | String | 16진수 문자열의 블록 번호입니다. |
+| number | QUANTITY | TAG | 정수 또는 16진수 블록 번호, 또는 [기본 블록 매개변수](../klay/block.md#the-default-block-parameter)에서와 같이 `"earliest"`, `"latest"` 또는 `"pending"` 문자열입니다. |
**리턴 값**
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
index 5c562666942..93b4173d9a8 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
@@ -328,6 +328,50 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
}
```
+## eth_getBlockReceipts
+
+블록에 포함된 영수증을 반환합니다.
+
+**파라미터**
+| 유형 | 설명 |
+| --- | --- |
+| Number | 32-byte DATA | TAG | 블록 번호 또는 해시입니다. 또는 [기본 블록 매개변수](#the-default-block-parameter)에서와 같이 `"earliest"`, `"latest"` 또는 `"pending"` 문자열입니다. |
+
+**반환 값**
+
+블록에 포함된 영수증. 대상 블록에 트랜잭션이 없는 경우 빈 배열 `[]`가 반환됩니다.
+
+**예시**
+
+```shell
+// Request
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"eth_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
+// Result
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
+}
+```
## eth_getUncleByBlockNumberAndIndex
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
index 342eda0184f..4d52d544fb1 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
@@ -163,8 +163,8 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
동적 수수료 트랜잭션의 가스 팁 상한에 대한 제안을 peb 단위로 반환합니다.
-**참고**: 이 API는 이더리움과 동작 방식이 다르며
-은 이더리움처럼 가스 가격을 제안하는 대신 클레이튼의 가스 가격을 반환합니다.
+**참고**: 이 API는 이더리움과는 다른 동작을 합니다.
+Magma 하드포크 이전에는 이더리움처럼 가스 가격을 제시하는 대신 Klaytn의 가스 가격을 반환합니다. Magma 하드포크 이후에는 그냥 0을 반환합니다.
**매개변수**
@@ -185,7 +185,7 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
// Result
{
"jsonrpc": "2.0",
- "id":1)
+ "id": 1,
"result": "0xAE9F7BCC00" // 250,000,000,000 peb = 250 ston (Gwei)
}
```
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
index 1785ed1f506..364b6061948 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
@@ -160,4 +160,44 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
"id":1,
"result": false
}
+```
+
+## eth_createAccessList
+
+이 메서드는 주어진 '트랜잭션'을 기반으로 'accessList'를 생성합니다.
+`accessList`에는 발신자 계정과 사전 컴파일을 제외한 트랜잭션이 읽고 쓴 모든 스토리지 슬롯과 주소가 포함됩니다.
+이 메서드는 [`eth_call`](./transaction.md#eth_call)과 동일한 트랜잭션 호출 객체 및 `blockNumberOrTag` 객체를 사용합니다.
+accessList는 가스비 증가로 인해 접근이 불가능해진 컨트랙트를 해제하는 데 사용할 수 있습니다.
+트랜잭션에 `accessList`를 추가한다고 해서 액세스 목록이 없는 트랜잭션에 비해 가스 사용량이 감소하는 것은 아닙니다.
+
+**Parameters**
+
+| 이름 | 유형 | 설명 |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | 트랜잭션 호출 객체입니다. 객체의 속성은 [`eth_call`](./transaction.md#eth_call)을 참조하세요. |
+| blockNumberOrTag | QUANTITY | TAG | 정수 또는 16진수 블록 번호, 또는 [기본 블록 매개변수](./block.md#the-default-block-parameter)의 `"earliest"`, `"latest"` 또는 `"pending"` 문자열입니다. 블록 번호는 필수이며 지정된 트랜잭션이 실행되어야 하는 컨텍스트(상태)를 정의합니다. |
+
+**리턴 값**
+
+| 유형 | 설명 |
+|-----------|--------------------------------------------------------------------------|
+| Object | 트랜잭션에 사용된 주소 및 저장 키 목록과 액세스 목록이 추가될 때 소비된 가스를 반환합니다. |
+
+**예시**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
index fe8f70c8693..8429b3043c5 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
@@ -287,12 +287,12 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
## klay_getBlockReceipts
-블록 해시로 식별된 블록에 포함된 영수증을 반환합니다.
+블록에 포함된 영수증을 반환합니다.
**매개변수**
| 유형 | 설명
| --- | --- |
-| 32-byte DATA | blockHash |
+| Number | 32-byte DATA | TAG | 블록 번호 또는 해시입니다. 또는 [기본 블록 매개변수](#the-default-block-parameter)에서와 같이 `"earliest"`, `"latest"` 또는 `"pending"` 문자열입니다. |
**리턴 값**
@@ -303,34 +303,32 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
```shell
// Request
-curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30"],"id":73}' https://public-en-baobab.klaytn.net
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
// Result
{
- "jsonrpc":"2.0",
- "id":73,
- "result":[{
- "blockHash":"0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30",
- "blockNumber":"0x3ba38",
- "contractAddress":null,
- "effectiveGasPrice":"0x5d21dba00",
- "from":"0x16b11cf9c2186a117b0da38315b42b1eaa03bbe5",
- "gas":"0x30d40",
- "gasPrice":"0xba43b7400",
- "gasUsed":"0x1886c",
- "logs":[],
- "logsBloom":"0x00000000000000000000000000000000008000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000040000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "nonce":"0x58e",
- "senderTxHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "signatures":["0x7f6","0x50b2b0f95b8a6d7018369b1933d6cebb52ef119463d1840a6181d05bf8fc29d8","0x329630f88d9d06c5f1bd7644dbf6bd6b92e4ab0e3d47122972f8294c9289e7bb"],
- "status":"0x1",
- "to":"0xdbb98c72e9818ad2c93a09e35ad43ada0d4223f0",
- "transactionHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "transactionIndex":"0x0",
- "type":"TxTypeValueTransfer",
- "typeInt":8,
- "value":"0x21e19e0c9bab2400000"
- }
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
}
```
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
index b87d88a3e63..0fd3d9c2cf9 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
@@ -160,3 +160,43 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
}
```
+## klay_createAccessList
+
+이 메서드는 주어진 `Transaction`을 기반으로 `accessList`를 생성합니다.
+`accessList`에는 발신자 계정과 사전 컴파일을 제외한 트랜잭션이 읽고 쓴 모든 스토리지 슬롯과 주소가 포함됩니다.
+이 메서드는 [`klay_call`](./transaction.md#klay_call)과 동일한 트랜잭션 호출 객체 및 `blockNumberOrTag` 객체를 사용합니다.
+accessList는 가스비 증가로 인해 접근이 불가능해진 컨트랙트를 해제하는 데 사용할 수 있습니다.
+트랜잭션에 `accessList`를 추가해도 액세스 목록이 없는 트랜잭션에 비해 가스 사용량이 줄어들지는 않습니다.
+
+**파라미터**
+
+| 이름 | 유형 | 설명 |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | 트랜잭션 호출 오브젝트. 개체의 속성은 [`klay_call`](./transaction.md#klay_call)을 참조하세요. |
+| blockNumberOrTag | QUANTITY | TAG | 정수 또는 16진수 블록 번호 또는 [기본 블록 매개변수](./block.md#the-default-block-parameter)에서와 같이 문자열 `"earliest"`, `"latest"` 또는 `"pending"`입니다. 블록 번호는 필수이며 지정된 트랜잭션이 실행되어야 하는 컨텍스트(상태)를 정의합니다. |
+
+**리턴 값**
+
+| 유형 | 설명 |
+|-----------|--------------------------------------------------------------------------|
+| Object | 트랜잭션에 사용된 주소 및 저장 키 목록과 액세스 목록이 추가될 때 소비된 가스를 반환합니다. |
+
+**예시**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
+```
\ No newline at end of file
diff --git a/i18n/ko/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md b/i18n/ko/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
index 880ef5e5f23..047b359c8be 100644
--- a/i18n/ko/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
+++ b/i18n/ko/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
@@ -191,7 +191,7 @@ true
caver.klay.rewardbase([callback])
```
-현재 노드의 보상베이스를 반환합니다. Rewardbase는 블록 보상이 전달되는 계정의 주소입니다. 클레이튼 컨센서스 노드(CN)만이 리워드베이스를 구성에 가지고 있습니다. [구성 파일](../../../../../nodes/references/configuration-files.md)을 참조하세요.
+현재 노드의 보상베이스를 반환합니다. Rewardbase는 블록 보상이 전달되는 계정의 주소입니다. 클레이튼 컨센서스 노드(CN)만이 리워드베이스를 구성에 가지고 있습니다. [구성 파일](../../../../../misc/operation/configuration.md)을 참조하세요.
**매개변수**
diff --git a/i18n/vi/code.json b/i18n/vi/code.json
index 66625866d63..f86f2c3b4a5 100644
--- a/i18n/vi/code.json
+++ b/i18n/vi/code.json
@@ -6,40 +6,40 @@
"message": "{tagline}"
},
"Klaytn Overview": {
- "message": "Klaytn Overview"
+ "message": "Klaytn Tổng quan"
},
"Want to know about Klaytn?": {
- "message": "Want to know about Klaytn?"
+ "message": "Anh có muốn biết về Klaytn không?"
},
"Getting Started": {
- "message": "Getting Started"
+ "message": "Bắt đầu"
},
"Want to start building on Klaytn?": {
- "message": "Want to start building on Klaytn?"
+ "message": "Anh có muốn bắt đầu xây dựng ở Klaytn không?"
},
"Node Operators": {
- "message": "Node Operators"
+ "message": "Các nút điều hành"
},
"Instructions on running Klaytn's nodes": {
- "message": "Instructions on running Klaytn's nodes"
+ "message": "Hướng dẫn chạy các nút Klaytn"
},
"API references": {
- "message": "API references"
+ "message": "Tham chiếu API"
},
"APIs and libraries": {
- "message": "APIs and libraries"
+ "message": "API và Thư viện"
},
"Klaytn Developer Hub": {
- "message": "Klaytn Developer Hub"
+ "message": "Trung tâm phát triển Klaytn"
},
"Klaytn's Developer portal": {
- "message": "Klaytn's Developer portal"
+ "message": "Cổng thông tin nhà phát triển Klaytn"
},
"Klaytn Developer Forum": {
- "message": "Klaytn Developer Forum"
+ "message": "Diễn đàn Lập trình Klaytn"
},
"Got a question? Visit our forum!": {
- "message": "Got a question? Visit our forum!"
+ "message": "Bạn có câu hỏi? Ghé thăm diễn đàn của chúng tôi!"
},
"theme.ErrorPageContent.title": {
"message": "Trang này đã bị lỗi.",
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current.json b/i18n/vi/docusaurus-plugin-content-docs/current.json
index 1dc255ea939..45aecb02df4 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current.json
+++ b/i18n/vi/docusaurus-plugin-content-docs/current.json
@@ -1,14 +1,14 @@
{
"version.label": {
- "message": "Next",
+ "message": "Mới nhất",
"description": "The label for version current"
},
"sidebar.learnSidebar.category.Transactions": {
- "message": "Transactions",
+ "message": "Giao dịch",
"description": "The label for category Transactions in sidebar learnSidebar"
},
"sidebar.learnSidebar.category.Computation": {
- "message": "Computation",
+ "message": "Tính toán",
"description": "The label for category Computation in sidebar learnSidebar"
},
"sidebar.learnSidebar.category.Storage Layer": {
@@ -20,51 +20,51 @@
"description": "The label for category Klaytn 2.0 in sidebar learnSidebar"
},
"sidebar.buildSidebar.category.Get Started": {
- "message": "Get Started",
+ "message": "Tổng quan",
"description": "The label for category Get Started in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Account Basics": {
- "message": "Account Basics",
+ "message": "Quản lý tài khoản",
"description": "The label for category Account Basics in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Smart Contracts": {
- "message": "Smart Contracts",
+ "message": "Hợp đồng thông minh",
"description": "The label for category Smart Contracts in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.IDE and Tools": {
- "message": "IDE and Tools",
+ "message": "IDE và công cụ",
"description": "The label for category IDE and Tools in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Deploy Smart Contracts": {
- "message": "Deploy Smart Contracts",
+ "message": "Hướng dẫn triển khai",
"description": "The label for category Deploy Smart Contracts in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Sample Contracts": {
- "message": "Sample Contracts",
+ "message": "Hợp đồng mẫu",
"description": "The label for category Sample Contracts in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Tutorials": {
- "message": "Tutorials",
+ "message": "Hướng dẫn",
"description": "The label for category Tutorials in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Build Count DApp": {
- "message": "Build Count DApp",
+ "message": "Count DApp",
"description": "The label for category Build Count DApp in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Frontend Code Overview": {
- "message": "Frontend Code Overview",
+ "message": "Tổng quan về mã Frontend",
"description": "The label for category Frontend Code Overview in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Build Klaystagram": {
- "message": "Build Klaystagram",
+ "message": "Klaystagram",
"description": "The label for category Build Klaystagram in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Tools": {
- "message": "Tools",
+ "message": "Dụng Cụ",
"description": "The label for category Tools in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Wallets": {
- "message": "Wallets",
+ "message": "Ví",
"description": "The label for category Wallets in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Klaytn Safe": {
@@ -88,11 +88,11 @@
"description": "The label for category Cross-chain in sidebar buildSidebar"
},
"sidebar.buildSidebar.category.Block Explorers": {
- "message": "Block Explorers",
+ "message": "Trình duyệt khối",
"description": "The label for category Block Explorers in sidebar buildSidebar"
},
"sidebar.nodeSidebar.category.Endpoint Node": {
- "message": "Endpoint Node",
+ "message": "Nút điểm cuối",
"description": "The label for category Endpoint Node in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Core Cell": {
@@ -100,23 +100,23 @@
"description": "The label for category Core Cell in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Install Core Cell": {
- "message": "Install Core Cell",
+ "message": "Hướng dẫn cài đặt",
"description": "The label for category Install Core Cell in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Service Chain": {
- "message": "Service Chain",
+ "message": "Chuỗi dịch vụ",
"description": "The label for category Service Chain in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Quick Start": {
- "message": "Quick Start",
+ "message": "Bắt đầu nhanh",
"description": "The label for category Quick Start in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Configure Service Chain": {
- "message": "Configure Service Chain",
+ "message": "Cấu hình Chuỗi Dịch vụ",
"description": "The label for category Configure Service Chain in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Node Package Downloads": {
- "message": "Node Package Downloads",
+ "message": "Tải xuống",
"description": "The label for category Node Package Downloads in sidebar nodeSidebar"
},
"sidebar.nodeSidebar.category.Node References": {
@@ -124,7 +124,7 @@
"description": "The label for category Node References in sidebar nodeSidebar"
},
"sidebar.refSidebar.category.RPC API Reference": {
- "message": "RPC API Reference",
+ "message": "Tham chiếu API RPC",
"description": "The label for category RPC API Reference in sidebar refSidebar"
},
"sidebar.refSidebar.category.eth": {
@@ -140,23 +140,23 @@
"description": "The label for category debug in sidebar refSidebar"
},
"sidebar.refSidebar.category.Service Chain API Reference": {
- "message": "Service Chain API Reference",
+ "message": "Tham khảo API chuỗi dịch vụ",
"description": "The label for category Service Chain API Reference in sidebar refSidebar"
},
"sidebar.refSidebar.category.RPC Service Providers": {
- "message": "RPC Service Providers",
+ "message": "Dịch vụ RPC",
"description": "The label for category RPC Service Providers in sidebar refSidebar"
},
"sidebar.refSidebar.category.SDKs and Libraries": {
- "message": "SDKs and Libraries",
+ "message": "SDK và Thư viện",
"description": "The label for category SDKs and Libraries in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver-js (1.5.0 or later)": {
- "message": "caver-js (1.5.0 or later)",
+ "message": "caver-js (1.5.0 trở lên)",
"description": "The label for category caver-js (1.5.0 or later) in sidebar refSidebar"
},
"sidebar.refSidebar.category.API References": {
- "message": "API References",
+ "message": "Tham khảo API",
"description": "The label for category API References in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver.wallet": {
@@ -176,7 +176,7 @@
"description": "The label for category caver.kct in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver-js (1.4.1 or earlier)": {
- "message": "caver-js (1.4.1 or earlier)",
+ "message": "caver-js (1.4.1 hoặc sớm hơn)",
"description": "The label for category caver-js (1.4.1 or earlier) in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver.klay": {
@@ -188,11 +188,11 @@
"description": "The label for category Transaction in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver-java (1.5.0 or later)": {
- "message": "caver-java (1.5.0 or later)",
+ "message": "caver-java (1.5.0 trở lên)",
"description": "The label for category caver-java (1.5.0 or later) in sidebar refSidebar"
},
"sidebar.refSidebar.category.caver-java (1.4.0 or earlier)": {
- "message": "caver-java (1.4.0 or earlier)",
+ "message": "caver-java (1.4.0 hoặc sớm hơn)",
"description": "The label for category caver-java (1.4.0 or earlier) in sidebar refSidebar"
},
"sidebar.buildSidebar.link.Klaytnfinder": {
@@ -204,7 +204,27 @@
"description": "The label for the doc item Verify Contracts in sidebar buildSidebar, linking to the doc build/tutorials/verifying-contracts"
},
"sidebar.refSidebar.link.API References": {
- "message": "API References",
+ "message": "Tham khảo API",
"description": "The label for link API References in sidebar refSidebar, linking to https://javadoc.io/doc/com.klaytn.caver/core/"
+ },
+ "sidebar.learnSidebar.category.Operation Guide": {
+ "message": "Hướng dẫn vận hành",
+ "description": "The label for category Operation Guide in sidebar learnSidebar"
+ },
+ "sidebar.buildSidebar.category.Operation Guide": {
+ "message": "Hướng dẫn vận hành",
+ "description": "The label for category Operation Guide in sidebar buildSidebar"
+ },
+ "sidebar.nodeSidebar.category.Operation Guide": {
+ "message": "Hướng dẫn vận hành",
+ "description": "The label for category Operation Guide in sidebar nodeSidebar"
+ },
+ "sidebar.refSidebar.category.caver": {
+ "message": "caver",
+ "description": "The label for category caver in sidebar refSidebar"
+ },
+ "sidebar.refSidebar.category.Operation Guide": {
+ "message": "Hướng dẫn vận hành",
+ "description": "The label for category Operation Guide in sidebar refSidebar"
}
}
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
index 0baed8b4858..189aa23c846 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/get-started/before-you-start.md
@@ -8,7 +8,7 @@
**Nút điểm cuối**
* Bạn cần có [Nút điểm cuối](../../nodes/endpoint-node/endpoint-node.md) để kết nối với mạng lưới Klaytn và để thực hiện cuộc gọi qua API hoặc gửi một giao dịch.
-* `ken` là một nhị phân Nút điểm cuối của Klaytn. `ken` hiển thị hai giao diện, [giao diện dòng lệnh](../../nodes/references/klaytn-command.md) và [JSON-RPC API](../../references/json-rpc/json-rpc.md). `ken` chạy trên Linux và MacOS.
+* `ken` là một nhị phân Nút điểm cuối của Klaytn. `ken` hiển thị hai giao diện, [giao diện dòng lệnh](../../nodes/endpoint-node/ken-cli-commands.md) và [JSON-RPC API](../../references/json-rpc/json-rpc.md). `ken` chạy trên Linux và MacOS.
* `ken` CLI đi kèm với một số chức năng quản lý nút và tiện ích.
**Phát triển hợp đồng thông minh**
@@ -17,6 +17,7 @@
* [Truffle](https://github.com/trufflesuite/truffle) - Một công cụ mã nguồn mở dùng để phát triển các hợp đồng thông minh bằng Solidity.
* [Hardhat](https://hardhat.org/hardhat-runner/docs/getting-started) - Môi trường phát triển cho hợp đồng thông minh và dApps.
* [Foundry](https://book.getfoundry.sh/) - Foundry là một chuỗi công cụ phát triển hợp đồng thông minh.
+* [Thirdweb](https://portal.thirdweb.com/) - Thirdweb là một khung phát triển web3 hoàn chỉnh cung cấp các dịch vụ để xây dựng, quản lý và phân tích các ứng dụng web3.
**Klaytn SDK**
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
index 3f4a0e00885..a46bedecee1 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/ken.md
@@ -43,7 +43,7 @@ $ mkdir -p ~/kend_home
### Cấu hình EN
-Tập tin cấu hình, `kend.conf`, trong `ken-xxxxx-amd64/conf/`. Để biết thêm thông tin về các tham số có thể định cấu hình, bạn có thể xem phần [Hướng dẫn cấu hình EN](../../../nodes/references/configuration-files.md). Để khởi chạy một EN của mạng thử nghiệm Baobab, hãy cập nhật tập tin `kend.conf` phù hợp như sau.
+Tập tin cấu hình, `kend.conf`, trong `ken-xxxxx-amd64/conf/`. Để biết thêm thông tin về các tham số có thể định cấu hình, bạn có thể xem phần [Hướng dẫn cấu hình EN](../../../misc/operation/configuration.md). Để khởi chạy một EN của mạng thử nghiệm Baobab, hãy cập nhật tập tin `kend.conf` phù hợp như sau.
```
# cypress, baobab is only available if you don't specify NETWORK_ID.
@@ -87,7 +87,7 @@ INFO[03/26,15:37:49 +09] [5] Imported new chain segment blocks=1
### Khắc phục sự cố
-Xem phần mục [Khắc phục sự cố](../../../nodes/references/troubleshooting.md) nếu bạn gặp vấn đề trong việc khởi chạy Nút điểm cuối Klaytn.
+Xem phần mục [Khắc phục sự cố](../../../misc/operation/troubleshooting.md) nếu bạn gặp vấn đề trong việc khởi chạy Nút điểm cuối Klaytn.
## Nạp tiền vào tài khoản
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md
new file mode 100644
index 00000000000..a52766bf64d
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/smart-contracts/deploy/thirdweb.md
@@ -0,0 +1,164 @@
+# Deploying Smart Contract Using Thirdweb
+
+![](/img/build/get-started/klaytnXthirdweb.png)
+
+## Introduction
+
+This section will guide you through deploying a Marketplace contract and a corresponding NFT collection contract to Klaytn Network using [ThirdWeb](https://portal.thirdweb.com/). Thirdweb is a complete web3 development framework that provides everything you need to connect your apps and games to decentralized networks.
+
+Marketplace contract allows users to list NFTs for direct sale or auction, thus enhancing the buying and selling of NFTs, just like it’s done on OpenSea.
+
+By the end of this guide, you will be able to:
+* create and customize contracts using thirdweb.
+* compile, deploy, and interact with your smart contract using thirdweb.
+
+## Getting Started
+
+In this article, we will explore the different means to create, customize, and deploy contracts using thirdweb, viz.
+* Using the thirdweb dashboard
+* Using the thirdweb CLI
+
+For this guide, we will be demonstrating how to deploy a MarketPlace contract using the thirdweb dashboard and also deploying a corresponding nft collection to be listed on the marketplace using the thirdweb CLI.
+
+> Note: We will not be explaining the mechanics of the marketplace contract as our focus is to explore thirdweb dashboard and CLI for creating, deploying, and interacting with smart contracts.
+
+## Creating and deploying marketplace contract using thirdweb dashboard
+
+In this section, we will create and deploy a marketplace contract using thirdweb dashboard. To do this, follow the steps below:
+
+1. Head over to [thirdweb dashboard](https://thirdweb.com/dashboard?ref=blog.thirdweb.com) and select the **MarketPlace** contract from the list of contracts.
+
+![](/img/build/get-started/marketplace-explore.png)
+
+2. Click **Deploy Now** in the contract overview dashboard.
+
+![](/img/build/get-started/marketplace-deploy.png)
+
+3. Configure the marketplace contract to include the following parameters: the **name** of the marketplace, its **description**, and **image**.
+
+![](/img/build/get-started/marketplace-contract-details.png)
+
+4. Click **Deploy Now** as seen in the image above and wait for the transaction to complete.
+
+![](/img/build/get-started/marketplace-deployed.png)
+
+Once the transaction has been successfully executed, you can verify your deployment by pasting the contract address in the search bar of [Klaytnscope](https://klaytnscope.com/).
+
+## Creating and deploying an NFT collection contract using thirdweb CLI
+
+In this section, we will create and deploy the NFT collection to be listed in our Marketplace using [thirdweb CLI](https://portal.thirdweb.com/cli?ref=blog.thirdweb.com). To do this, follow the steps below:
+
+### Creating the contract
+
+1. Run this command in your terminal to create your contract:
+```bash
+npx thirdweb create --contract
+```
+
+2. Enter your preferred values for the command-line prompts:
+
+ i. Give your project a name.
+
+ ii. Choose your preferred framework: **Hardhat** or **Foundry**.
+
+ iii. Name your smart contract.
+
+ iv. Choose the type of base contract: **Empty**, **ERC20**, **ERC721**, or **ERC1155**. Add any desired **extensions**. For this tutorial, we will select ERC721 and setting the extension to none.
+
+![](/img/build/get-started/thirdweb-cli-info.png)
+
+3. Once created, navigate to your project’s root directory and open your project in your preferred code editor.
+4. If you open the contracts folder, your contract should look like this:
+
+```js
+// SPDX-License-Identifier: MIT
+pragma solidity ^0.8.0;
+import "@thirdweb-dev/contracts/base/ERC721Base.sol";
+contract nftcollection is ERC721Base {
+ constructor(
+ address _defaultAdmin,
+ string memory _name,
+ string memory _symbol,
+ address _royaltyRecipient,
+ uint128 _royaltyBps
+ )
+ ERC721Base(
+ _defaultAdmin,
+ _name,
+ _symbol,
+ _royaltyRecipient,
+ _royaltyBps
+ )
+ {}
+}
+```
+
+The contract above demonstrates basic [ERC721Base](https://github.com/thirdweb-dev/contracts/blob/main/contracts/base/ERC721Base.sol) functionality. It imports and inherits the **ERC721Base** contract, and it also implements the required methods, including the constructor and its dependent parameters.
+
+You can modify the contract to your desired custom logic, and once done, your contract is ready for deployment.
+
+### Deploying the contract
+
+1. Navigate to your project root folder and run the command in your terminal:
+
+```bash
+npx thirdweb deploy
+```
+Executing this command will trigger the following actions:
+ * detects the framework (hardhat, foundry)
+ * compiles all the contracts in the current directory.
+ * allows you to select which contract(s) you wish to deploy.
+ * upload your compiled smart contract code (in the form of an Application Binary Interface, or ABI) to IPFS.
+
+2. When deployment is complete, a dashboard interface will open to fill out the remaining parameters.
+ * **_name**: contract name
+ * **_symbol**: symbol or "ticker"
+ * **_royaltyRecipient**: wallet address to receive royalties from secondary sales
+ * **_royaltyBps**: basis points (bps) that will be given to the royalty recipient for each secondary sale, e.g., 500 = 5%
+
+3. Select `Klaytn Mainnet Cypress` as the network to deploy the contract to.
+
+![](/img/build/get-started/nft-collection-deploy.png)
+
+4. Once your smart contract is deployed, you can manage additional settings and functionalities through its dashboard. For example, you can upload NFTs, configure permissions and access control, and add new features.
+
+You can learn more about thirdweb deploy command in this [deploy guide](https://portal.thirdweb.com/deploy/getting-started).
+
+## Interacting with deployed contracts
+
+In this section, we will mint an NFT and also transferring it to another account using the **mint** and **transferfrom** function respectively. Let's go over it in the following steps:
+
+### Minting the NFT
+
+1. Navigate to the newly deployed contract (**puppyKlan-NC**) dashboard.
+2. Click on the **mint** function in the **NFTs** tab under the contract dashboard.
+
+![](/img/build/get-started/puppy-mint-btn.png)
+
+3. Fill in the parameters needed for minting the NFT: **name**, **media**, **description**, and **properties**.
+
+![](/img/build/get-started/puppy-mint-details.png)
+
+4. Verify your input and click the **Mint NFT** button.
+5. Confirm the transaction and wait for it to complete. Once done, you should see your NFT added to the dashboard, like below:
+
+![](/img/build/get-started/puppy-minted.png)
+
+### Transferring the NFT to a new owner
+
+1. Head to the Explorer tab in the contract (**puppyKlan-NC**) dashboard.
+2. Select the **transferFrom** function under the Write tab, as shown below.
+3. Fill in the necessary function arguments: from (address), to (address), and id (uint256).
+
+![](/img/build/get-started/puppy-transferfrom.png)
+
+4. Confirm the transaction and wait for it to complete.
+
+## Conclusion
+
+Congratulations! if you made it to the end of this guide. If you have any questions, visit the [Klaytn Forum](https://forum.klaytn.foundation/) or reach out to the [official thirdweb support](https://support.thirdweb.com/). However, below is a list of useful resources you might need while further building with Thirdweb on Klaytn.
+
+* [Thirdweb Docs](https://portal.thirdweb.com/)
+* [How to build a dApp using Thirdweb](https://blog.thirdweb.com/guides/how-to-build-a-dapp/)
+* [Create your own NFT marketplace with NextJS and TypeScript](https://blog.thirdweb.com/guides/nft-marketplace-with-typescript-next/)
+
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/tools.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/tools.md
index 9ad0951b71a..d9ca66a1c15 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/tools.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/tools.md
@@ -1,4 +1,4 @@
-# Tools
+# Dụng Cụ
Trang này bao gồm danh sách những công cụ phát triển giúp bạn xây dựng các ứng dụng phi tập trung trên Klaytn.
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md
new file mode 100644
index 00000000000..173f704f151
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/build/tools/wallets/wallet-libraries/particle.md
@@ -0,0 +1,529 @@
+---
+sidebar_label: Particle Network
+---
+
+# Integrate Particle Network into a dApp
+
+![](/img/build/tools/particle.png)
+
+## Introduction
+
+[Particle Network](https://particle.network) is the intent-centric, modular access layer of Web3. With Particle's Smart Wallet-as-a-Service, developers can curate a seamless user experience through modular and customizable EOA/AA embedded wallet components. Using MPC-TSS for key management, Particle can streamline user onboarding via their Web2 accounts –such as Google accounts, email addresses, and phone numbers.
+
+Through APIs and SDKs available on both mobile and desktop platforms, developers can integrate Particle’s Wallet-as-a-Service across a variety of scenarios, with the capacity to be customized and implemented in a way that matches the specific needs of a given application.
+
+To leverage Particle Network on alternative platforms, such as Android, iOS, React Native, Flutter, & Unity, kindly refer to Particle’s [documentation](https://docs.particle.network).
+
+## Prerequisites
+
+* A working react project (by executing `npx create-react-app project-name`)
+* A project ID, client key, and app ID from the [Particle dashboard](https://dashboard.particle.network).
+* A WalletConnect project ID from the [WalletConnect dashboard](https://cloud.walletconnect.com/).
+
+## Installation
+
+To leverage Particle Network, specifically Particle Connect, within your dApp, you'll need to first install the required libraries. In addition to this, if you'd like to use a standard Web3 library, such as [ethers.js](https://docs.ethers.org/v6/) or [web3.js](https://web3js.readthedocs.io/en/v1.2.8/getting-started.html), then you'll need to install theme too. For this guide, we'll be using ethers.js.
+
+```bash
+npm install --save @particle-network/connectkit
+npm install --save @particle-network/chains
+npm install --save @particle-network/connectors
+npm install --save ethers
+```
+
+## Initializing Particle Connect
+
+After successfully installing the aforementioned libraries, you'll need to head into your `index.js` (or `.ts`) file to configure Particle Connect. This specifically entails wrapping your `App` component with `ModalProvider` (imported from `@particle-network/connectkit`) and passing in `options`, which contains the parameters detailed below.
+
+```js
+import { ModalProvider } from '@particle-network/connectkit';
+import { Klaytn } from '@particle-network/chains';
+import { evmWallets } from '@particle-network/connectors';
+
+const root = ReactDOM.createRoot(document.getElementById('root') as HTMLElement);
+root.render(
+
+
+
+
+
+);
+```
+
+## Connecting Wallet
+
+With your `index.js` file setup, you can move onto connecting your users through a central "Connect Wallet" button. To do this, you can import `ConnectButton` from `@particle-network/connectkit` alongside its corresponding css. Upon using `ConnectButton` within your `App` component, a standard "Connect Wallet" button will appear to facilitate connection.
+
+```js
+import '@particle-network/connectkit/dist/index.css';
+import { ConnectButton } from '@particle-network/connectkit';
+
+export const App = () => {
+ return ;
+};
+```
+
+
+## Getting Account and Balance
+
+With a wallet now successfully connected through `ConnectButton`, you can retrieve the users associated Klaytn address. Additionally, you can retrieve its current balance (in KLAY) through ethers.js, passing in the corresponding EIP-1193 provider object retrieved from `useParticleProvider` within `@particle-network/connectkit`.
+
+```js
+import { useParticleProvider } from '@particle-network/connectkit';
+
+const provider = useParticleProvider();
+
+const [address, setAddress] = useState("");
+const [balance, setBalance] = useState("");
+
+const connectWallet = async() => {
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(web3authProvider);
+ const ethersProvider = new ethers.BrowserProvider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Get user's Ethereum public address
+ const address = signer.address;
+
+ // Get user's balance in ether
+ const balance = ethers.formatEther(
+ await ethersProvider.getBalance(address) // balance is in wei
+ );
+
+ setAddress(address);
+ setBalance(balance);
+
+return (
+
+
Connect Wallet
+
Wallet Address: ${address} Balance: ${balance}
+
+ );
+}
+```
+
+## Disconnecting Wallet
+
+Once a user has logged in, you can programmatically force a logout through `disconnect` derived from `useParticleConnect`. This will disconnect the current active session from your dApp, returning the user to their initial state.
+
+```js
+import { useParticleConnect } from '@particle-network/connectkit';
+
+const { disconnect } = useParticleConnect();
+
+function App() {
+
+const disconnectUser = async () => {
+ await disconnect();
+ refreshState();
+}
+
+// refresh state
+const refreshState = () => {
+ setAddress();
+ setBalance();
+// make sure to add every other useState modifier function declared here.
+}
+
+return (
+
+ Disconnect
+
+ );
+}
+```
+
+## Getting User Info
+
+While traditional Web3 wallets are offered as connection mechanisms through Particle Connect, social logins through social accounts such as your email address, Google account, phone number, etc. are also available. If a user decides to log in with a Web2 account, you'll have the ability to call `getUserInfo` from `@particle-network/auth-core`, which will return an object containing key details such as their name, email, wallet addresses, etc.
+
+```js
+import { getUserInfo } from '@particle-network/auth-core';
+
+const [userData, setUserData] = useState({});
+
+const getUserInfo = async () => {
+ const user = getUserInfo();
+ setUserData(user);
+};
+
+return (
+
+
Get User Info
+
{ userData ? `User Email: ${userData.email}, User Name: ${userData.name}` : ""}
+
+ );
+```
+
+## Signing Messages
+
+With a provider initialized (through `useParticleProvider`) and passed into your ethers.js instance, message signing can be initiated as usual through `signer.signMessage`.This will directly display a signature popup for the user to confirm. Its specific nature will depend on which connection mechanism the user chose.
+
+```js
+ // add to the existing useState hook.
+const [signedMessage, setSignedMessage] = useState("");
+
+const signMessage = async(e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ const originalMessage = e.target.message.value;
+ const result = await signer.signMessage(originalMessage);
+ setSignedMessage(result)
+}
+
+
+return (
+
+
+
SignedMessage: ${signedMessage}
+
+ );
+
+```
+
+## Sending Native Transaction
+
+Similar to `signer.signMessage`, you can use the same provider mechanism to send a native transaction, with KLAY in this case. This can be done through `signer.sendTransaction`, passing in standard fields such as `to`, `value`, and so on.
+
+```js
+ // add to the existing useState hook.
+ const [txHash, setTxHash] = useState();
+
+ const sendKlay = async () => {
+
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+ const destination = "paste recipient address";
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Submit transaction to the blockchain and wait for it to be mined
+ const tx = await signer.sendTransaction({
+ to: destination,
+ value: ethers.parseEther("0.1"),
+ maxPriorityFeePerGas: "5000000000", // Max priority fee per gas
+ maxFeePerGas: "6000000000000", // Max fee per gas
+ })
+
+
+ const receipt = await tx.wait();
+ setTxHash(receipt.hash)
+}
+
+return (
+
+);
+
+```
+
+## Working with a Smart Contract
+
+1. **Deploying a Contract**
+
+More complex transactions, such as contract deployments, are also possible through Particle, whether you're using an external Web3 wallet or the included social login embedded wallet. An example of this is shown below.
+
+```js
+// add to the existing useState hook.
+const [contractAddress, setContractAddress] = useState(null);
+
+const deployContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+// this guide uses ethers version 6.3.0.
+const ethersProvider = new ethers.BrowserProvider(provider);
+// for ethers version below 6.3.0.
+// const provider = new ethers.providers.Web3Provider(provider);
+
+const signer = await ethersProvider.getSigner();
+
+// paste your contractABI
+const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract byte code
+ const contractBytecode = '608060405234801561001057600080fd5b506040516102063803806102068339818101604052810190610032919061007a565b80600081905550506100a7565b600080fd5b6000819050919050565b61005781610044565b811461006257600080fd5b50565b6000815190506100748161004e565b92915050565b6000602082840312156100905761008f61003f565b5b600061009e84828501610065565b91505092915050565b610150806100b66000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632e64cec11461003b5780636057361d14610059575b600080fd5b610043610075565b60405161005091906100a1565b60405180910390f35b610073600480360381019061006e91906100ed565b61007e565b005b60008054905090565b8060008190555050565b6000819050919050565b61009b81610088565b82525050565b60006020820190506100b66000830184610092565b92915050565b600080fd5b6100ca81610088565b81146100d557600080fd5b50565b6000813590506100e7816100c1565b92915050565b600060208284031215610103576101026100bc565b5b6000610111848285016100d8565b9150509291505056fea26469706673582212200370e757ac1c15a024febfa9bf6999504ac6616672ad66bd654e87765f74813e64736f6c63430008120033'
+
+ const contractFactory = new ContractFactory(contractABI, contractBytecode, signer);
+
+ const contract = await contractFactory.deploy(400);
+
+ // get contract address
+ setContractAddress(contract.target)
+}
+
+
+return (
+
+
Deploy Contract
+
Contract Address: {contractAddress ? contractAddress : ''}
+
+ );
+```
+
+Similarly, you can send write transactions directly to an existing (deployed) contract using the same ethers.js instance leveraging the Particle Connect provider derived from `useParticleProvider`. On the frontend, this functionality will mimic that of a contract deployment, message signature, or transaction request.
+
+2. **Writing to a Contract**
+
+```js
+ // add to existing useState hook
+ const [contractTx, setContractTx] = useState();
+
+ const writeToContract = async (e) => {
+ e.preventDefault();
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ const signer = await ethersProvider.getSigner();
+
+ // Paste your contractABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // Paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, signer);
+
+ const value = e.target.store_value.value;
+
+ // Send a transaction to smart contract to update the value
+ const tx = await contract.store(value);
+
+ // Wait for the transaction to finish
+ const receipt = await tx.wait();
+ const result = receipt.hash;
+
+ setContractTx(result)
+ }
+
+return (
+
+
+
Write-to-contract Tx Hash: ${contractTx}
+
+);
+```
+
+3. **Reading from a Contract**
+
+Without using the wallet itself, purely the provider, read-only methods can be called on contracts through a standard ethers.js instance. This mechanism won't deviate from the typical structure associated with such an action, the primary difference here is the usage of the integrated `provider` object.
+
+```js
+// add to existing useState hook
+ const [contractMessage, setContractMessage] = useState();
+
+ const readFromContract = async () => {
+ if (!provider) {
+ console.log("provider not initialized yet");
+ return;
+ }
+
+
+ // this guide uses ethers version 6.3.0.
+ const ethersProvider = new ethers.BrowserProvider(provider);
+ // for ethers version below 6.3.0.
+ // const provider = new ethers.providers.Web3Provider(provider);
+
+ // paste your contract ABI
+ const contractABI = [
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "_initNum",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "nonpayable",
+ "type": "constructor"
+ },
+ {
+ "inputs": [],
+ "name": "retrieve",
+ "outputs": [
+ {
+ "internalType": "uint256",
+ "name": "",
+ "type": "uint256"
+ }
+ ],
+ "stateMutability": "view",
+ "type": "function"
+ },
+ {
+ "inputs": [
+ {
+ "internalType": "uint256",
+ "name": "num",
+ "type": "uint256"
+ }
+ ],
+ "name": "store",
+ "outputs": [],
+ "stateMutability": "nonpayable",
+ "type": "function"
+ }
+ ]
+
+ // paste your contract address
+ const contractAddress = "0x3b01E4025B428fFad9481a500BAc36396719092C";
+
+ const contract = new ethers.Contract(contractAddress, contractABI, ethersProvider)
+
+ // Reading a message from the smart contract
+ const contractMessage = await contract.retrieve();
+ setContractMessage(contractMessage.toString())
+ }
+
+
+ return (
+ Read From Contract
+ Read-from-contract Message: ${contractMessage}
+ )
+```
+
+
+## Next Steps
+For additional guides regarding Particle Network (Particle Connect, Particle Auth, and other SDKs), please refer to the [Particle Network docs](https://docs.particle.network) and the [Particle Network GitHub account](https://github.com/Particle-Network). Additionally, you may want to visit the [Particle Network blog](https://blog.particle.network) for additional information on Particle Network's services, upcoming releases, and tech stack. Also, you can find the full implementation of the code for this guide on [GitHub](https://github.com/klaytn/examples/tree/main/wallet-libraries/particle-sample).
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/learn/kni.md b/i18n/vi/docusaurus-plugin-content-docs/current/learn/kni.md
index 9f4e9189630..2cbaada4a53 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/learn/kni.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/learn/kni.md
@@ -30,4 +30,4 @@ kni://a979...163c@10.0.0.1:32323?discport=30301 # either single-
kni://a979...163c@10.0.0.1:32323?subport=32324&discport=30301 # multi-channel peer
```
-Nếu bạn muốn biết cách tạo KNI của một nút, vui lòng tham khảo phần [Tạo khóa nút & nút URI](../nodes/core-cell/install/before-you-install.md#node-key-node-uri-creation). Lược đồ KNI được dùng trong giao thức khám phá nút, [thiết lập `static-nodes.json`](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [API addPeer](../references/json-rpc/admin.md#admin_addpeer), [tùy chọn nút ban đầu](../nodes/references/configuration-files.md#properties), v.v.
+Nếu bạn muốn biết cách tạo KNI của một nút, vui lòng tham khảo phần [Tạo khóa nút & nút URI](../nodes/core-cell/install/before-you-install.md#node-key-node-uri-creation). Lược đồ KNI được dùng trong giao thức khám phá nút, [thiết lập `static-nodes.json`](../nodes/core-cell/install/install-proxy-nodes.md#install-static-nodes-json), [API addPeer](../references/json-rpc/admin.md#admin_addpeer), [tùy chọn nút ban đầu](../misc/operation/configuration.md#properties), v.v.
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md b/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
index 4e83bc3bb55..562a8e34935 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/live-pruning.md
@@ -24,4 +24,4 @@ To use StateDB Live Pruning, the following environment should be set up:
1. Use a binary of klaytn v1.11.0 or higher.
2. Please download the pruned DB snapshot from this [link](https://packages.klaytn.net/cypress/pruning-chaindata/) if you don't want to synchronize all blocks from the genesis block.
3. (Optional) Add the flag `--state.live-pruning-retention ` for how long recent states are retained. Default value is 172800 (48 hours)
-4. Refer to the following link to set the DB location and restart the node with `--state.live-pruning` added [chaindata-change](../../nodes/node-migration.md#disk-management-1) section.
\ No newline at end of file
+4. Refer to the following link to set the DB location and restart the node with `--state.live-pruning` added [chaindata-change](../../misc/operation/chaindata-change.md) section.
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md b/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
index 3fe48181618..ca2563ff45d 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/learn/storage/state-migration.md
@@ -10,4 +10,4 @@ More details on the mechanism of State Migration can be found below:
[Klaytn v1.5.0 State Migration: Saving Node Storage](https://medium.com/klaytn/klaytn-v1-5-0-state-migration-saving-node-storage-1358d87e4a7a)
[Klaytn State Migration: An Efficient Way to Reduce Blockchain Data](https://medium.com/klaytn/klaytn-state-migration-an-efficient-way-to-reduce-blockchain-data-6615a3b36523)
-To use State Migration, please refer to [`Chaindata Migration`](../../nodes/node-migration.md#disk-management-2) page of Operation Guide.
\ No newline at end of file
+To use State Migration, please refer to [`Chaindata Migration`](../../misc/operation/chaindata-migration.md) page of Operation Guide.
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/node-migration.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
similarity index 67%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/node-migration.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
index f8371150fbb..bf7a30c041c 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/node-migration.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-change.md
@@ -1,15 +1,13 @@
-# Di chuyển nút
-
-## Thay đổi dữ liệu chuỗi
+# Thay đổi dữ liệu chuỗi
💡 HƯỚNG DẪN NÀY DỰA TRÊN Amazon Linux 2
-### **BƯỚC di chuyển** nút CN
+## **BƯỚC di chuyển** nút CN
-#### Tạo ổ đĩa mới
+### Tạo ổ đĩa mới
1. Chuẩn bị ổ đĩa mới (dung lượng 3.500GB) hoặc tạo đường dẫn mới trên ổ đĩa hiện tại (Dung lượng khả dụng của ổ đĩa phải bằng 3.500GB.)
@@ -18,7 +16,7 @@
-##### Phương án 1 - Ổ đĩa mới (dung lượng trên 2500GB)
+#### Phương án 1 - Ổ đĩa mới (dung lượng trên 2500GB)
1. Đính kèm ổ đĩa vào EC2 và chạy lệnh dưới đây
@@ -43,7 +41,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-##### Phương án 2 - Ổ đĩa hiện tại (không khuyến nghị)
+#### Phương án 2 - Ổ đĩa hiện tại (không khuyến nghị)
1. Tạo thư mục mới
@@ -52,7 +50,7 @@ $ sudo mkdir /var/kcnd2/data
$ sudo mkdir /var/kcnd2/log
```
-#### Tải xuống dữ liệu chuỗi mới nhất
+### Tải xuống dữ liệu chuỗi mới nhất
Tải xuống dữ liệu chuỗi vào dữ liệu của thư mục Klaytn Data DIR mới. (Bạn có thể kiểm tra chi tiết trên dữ liệu chuỗi tại [https://packages.klaytn.net/cypress/chaindata/](https://packages.klaytn.net/cypress/chaindata/))
@@ -83,9 +81,9 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
-### Cấu hình DATA_DIR & LOG_DIR
+## Cấu hình DATA_DIR & LOG_DIR
-#### Phương án 1 - Hoán đổi đường dẫn cũ & mới
+### Phương án 1 - Hoán đổi đường dẫn cũ & mới
🚨 TBD
@@ -95,7 +93,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. Dừng quá trình daemon klaytn trước khi hoán đổi
1. ***LƯU Ý*** Nếu loại nút là CN, bạn có thể xóa nút CN khỏi Hội đồng Klaytn
- 💡 Bạn có thể nhận gói cho nút EN trong phần [Khởi động CN](core-cell/install/install-consensus-nodes.md).
+ 💡 Bạn có thể nhận gói cho nút EN trong phần [Khởi động CN](../../nodes/core-cell/install/install-consensus-nodes.md#startup-the-cn).
2. Hoán đổi đường dẫn cũ và mới
@@ -117,7 +115,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
3. (Tùy chọn) Xóa đường dẫn cũ nếu không còn cần thiết
-#### Phương án 2 - Cập nhật DATA_DIR & LOG_DIR trong tập tin cấu hình Klaytn
+### Phương án 2 - Cập nhật DATA_DIR & LOG_DIR trong tập tin cấu hình Klaytn
1. Thay đổi đường dẫn Klaytn DIR
- Phương án 1 - Ổ đĩa mới
@@ -125,7 +123,7 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
- Phương án 2 - Ổ đĩa hiện tại
- thay đổi đường dẫn DIR từ `kcnd.conf`
-### Khởi động lại quy trình (hoặc khởi động lại đối tượng)
+## Khởi động lại quy trình (hoặc khởi động lại đối tượng)
💡 Nếu cần khởi động lại để thêm ổ đĩa khác, hãy khởi động lại đối tượng.
@@ -133,35 +131,4 @@ $ tar -I pigz -xvf klaytn-cypress-chaindata-2021???????????.tar.gz
1. ***LƯU Ý*** Nếu loại nút là CN, bạn có thể xóa nút CN khỏi Hội đồng Klaytn
-2. Khởi động lại quy trình hoặc khởi động lại đối tượng
-
-## Di chuyển dữ liệu chuỗi
-
-
-💡 Chỉ chạy lệnh di chuyển cho các nút PN và EN (không áp dụng với nút CN)
-
-
-
-### Lưu ý trước khi bắt đầu
-- Thông số kỹ thuật yêu cầu là m6i.8xlarge (32 lõi với dung lượng bộ nhớ 128GB) hoặc cao hơn
-- 7 ngày để chạy toàn bộ quy trình (Quá trình di chuyển được chia làm 2 phần)
- - Phần 1 - Di chuyển DB sang thư mục mới (Xuất hiện thông báo “Quá trình di chuyển trạng thái đã hoàn tất”)
- - Phần 2 - Tạo khối mới trên thư mục mới (thư mục cũ sẽ bị xóa sau bước này)
-- Cần có 500GB dung lượng trống
-
-### Chuyển đến Bảng điều khiển Klaytn
-
-```bash
-$ kpn attach klay.ipc
-
-#bắt đầu di chuyển dữ liệu chuỗi
-> admin.startStateMigration()
-null
-
-# Kiểm tra trạng thái
-> admin.stateMigrationStatus
-
-#ngừng di chuyển
-> admin.stopStateMigration()
-
-```
\ No newline at end of file
+2. Khởi động lại quy trình hoặc khởi động lại đối tượng
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md
new file mode 100644
index 00000000000..62213da21ac
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/chaindata-migration.md
@@ -0,0 +1,30 @@
+# Di chuyển dữ liệu chuỗi
+
+
+💡 Chỉ chạy lệnh di chuyển cho các nút PN và EN (không áp dụng với nút CN)
+
+
+
+## Lưu ý trước khi bắt đầu
+- Thông số kỹ thuật yêu cầu là m6i.8xlarge (32 lõi với dung lượng bộ nhớ 128GB) hoặc cao hơn
+- 7 ngày để chạy toàn bộ quy trình (Quá trình di chuyển được chia làm 2 phần)
+ - Phần 1 - Di chuyển DB sang thư mục mới (Xuất hiện thông báo “Quá trình di chuyển trạng thái đã hoàn tất”)
+ - Phần 2 - Tạo khối mới trên thư mục mới (thư mục cũ sẽ bị xóa sau bước này)
+- Cần có 500GB dung lượng trống
+
+## Chuyển đến Bảng điều khiển Klaytn
+
+```bash
+$ kpn attach klay.ipc
+
+#bắt đầu di chuyển dữ liệu chuỗi
+> admin.startStateMigration()
+null
+
+# Kiểm tra trạng thái
+> admin.stateMigrationStatus
+
+#ngừng di chuyển
+> admin.stopStateMigration()
+
+```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
similarity index 51%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
index ecf59f5e922..b9f3411194f 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/configuration-files.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/configuration.md
@@ -1,94 +1,7 @@
-# Tập tin cấu hình
+# Cấu hình
Tài liệu này giải thích các thuộc tính có thể định cấu hình của nút. Gói nút Klaytn có các thuộc tính mặc định tốt và yêu cầu định cấu hình rất ít. Nếu thay đổi bất kỳ cài đặt nào của nút đang chạy, bạn phải khởi động lại nút để phản ánh các thay đổi đó.
-## Vị trí tập tin cấu hình SCN
-
-* `kscnd.conf` để định cấu hình Nút đồng thuận chuỗi dịch vụ
-
-Tập tin cấu hình nằm trong thư mục `conf`, có vị trí mặc định phụ thuộc vào việc cài đặt là từ phân bổ lưu trữ \(`tar.gz`\) hay từ phân bổ gói \(RPM\).
-
-* Nếu phân bổ lưu trữ, vị trí thư mục cấu hình mặc định là `$INSTALL_PATH/kscn-linux-amd64/conf/`.
-* Nếu phân bổ gói, vị trí thư mục cấu hình mặc định là `/etc/kscnd/conf/`.
-
-## Định dạng tập tin cấu hình
-
-Dưới đây là tập tin cấu hình mẫu cho SCN lưu trữ dữ liệu blockchain ở vị trí mặc định, `~/kscnd_home` với phân bổ lưu trữ, `/var/kscnd/data` với phân bổ gói.
-
-```text
-# Tập tin cấu hình kcnd
-
-NETWORK=
-# nếu bạn chỉ định NETWORK_ID, một mạng lưới riêng sẽ được tạo.
-NETWORK_ID=
-PORT=32323
-SERVER_TYPE="fasthttp"
-SYNCMODE="full"
-VERBOSITY=3
-MAXCONNECTIONS=100
-# LDBCACHESIZE=10240
-REWARDBASE="0x0"
-
-...
-
-DATA_DIR=
-LOG_DIR=$DATA_DIR/nhật ký
-```
-
-Các quy mô bể giao dịch được đề xuất cho SCN như sau.
-
-```text
-TXPOOL_EXEC_SLOTS_ALL=16384
-TXPOOL_NONEXEC_SLOTS_ALL=16384
-TXPOOL_EXEC_SLOTS_ACCOUNT=16384
-TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
-```
-
-## Thuộc tính
-
-Tập tin cấu hình có các thuộc tính có thể định cấu hình như bên dưới. Các tập tin cấu hình SCN, SPN và SEN có cùng thuộc tính.
-
-| Tên | Mô tả |
-| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
-| NETWORK | Tên mạng lưới mà nút này sẽ tham gia vào. Giá trị này được sử dụng khi NETWORK_ID không được xác định. ("cypress", "baobab") |
-| NETWORK_ID | ID mạng lưới Klaytn. Nếu bạn tạo một mạng lưới riêng cục bộ, bạn sẽ chỉ định ID mạng lưới cho mạng lưới riêng của mình. Các ID sau được dành riêng cho các mạng lưới được định cấu hình trước. 8217 : Cypress (Mạng chính) 1000 : Mạng thử nghiệm Aspen 1001 : Mạng thử nghiệm Baobab |
-| CỔNG | Cổng P2P. (Mặc định: "32323") |
-| SERVER_TYPE | Loại máy chủ JSON RPC. ("http", "fasthttp") |
-| SYNCMODE | Chế độ đồng bộ blockchain. ("nhanh", "đầy đủ") |
-| VERBOSITY | Độ chi tiết ghi bản ghi. (Cấp độ: 0=im lặng, 1=lỗi, 2=cảnh báo, 3=thông tin, 4=gỡ lỗi, 5=chi tiết) |
-| MAXCONNECTIONS | Số lượng tối đa các kết nối thực. Tất cả các máy ngang hàng đơn kênh có thể có tối đa MAXCONNECTIONS máy ngang hàng. Tất cả các máy ngang hàng đa kênh có thể có tối đa MAXCONNECTIONS/2 máy ngang hàng. Kết nối mạng lưới sẽ bị tắt nếu nó được đặt thành 0. (Mặc định: 10) |
-| LDBCACHESIZE | Kích thước của bộ nhớ đệm trong bộ nhớ trong LevelDB (MiB). (Mặc định: 768) |
-| REWARDBASE | Địa chỉ tài khoản sẽ nhận phần thưởng đồng thuận khối. Thuộc tính này chỉ áp dụng cho CN. |
-| TXPOOL_EXEC_SLOTS_ALL | Số lượng ô giao dịch có thể thực thi tối đa cho tất cả các tài khoản. (Mặc định: 4096) |
-| TXPOOL_NONEXEC_SLOTS_ALL | Số lượng ô giao dịch không thể thực thi tối đa cho tất cả các tài khoản. (Mặc định: 1024) |
-| TXPOOL_EXEC_SLOTS_ACCOUNT | Số lượng ô giao dịch có thể thực thi được đảm bảo cho mỗi tài khoản. (Mặc định: 16) |
-| TXPOOL_NONEXEC_SLOTS_ACCOUNT | Số lượng ô giao dịch không thể thực thi tối đa được đảm bảo cho mỗi tài khoản. (Mặc định: 64) |
-| TXPOOL_LIFE_TIME | Khoảng thời gian tối đa các giao dịch không thể thực thi xếp hàng chờ. (Mặc định: 30p cho SEN, 5p cho SCN/SPN) |
-| RPC_ENABLE | Kích hoạt máy chủ HTTP-RPC nếu nó được đặt thành 1. |
-| RPC_API | Danh sách API phân tách bằng dấu phẩy cung cấp qua giao diện HTTP-RPC. (quản trị, gỡ lỗi, klay, thợ đào, mạng, cá nhân, rpc, txpool, web3) |
-| RPC_PORT | Cổng nghe máy chủ HTTP-RPC. (Mặc định: "8551") |
-| RPC_ADDR | Giao diện nghe máy chủ HTTP-RPC. (Mặc định: "localhost") |
-| RPC_CORSDOMAIN | Danh sách miền được phân tách bằng dấu phẩy để chấp nhận các yêu cầu từ nhiều nguồn (đã thực thi với trình duyệt) |
-| RPC_VHOSTS | Danh sách tên máy chủ ảo phân tách bằng dấu phẩy để chấp nhận yêu cầu (đã thực thi với máy chủ). Chấp nhận ký tự đại diện '*'. (Mặc định: {"localhost"}) |
-| WS_ENABLE | Kích hoạt máy chủ WS-RPC nếu nó được đặt thành 1. |
-| WS_API | API được cung cấp trên giao diện WS-RPC. (quản trị, gỡ lỗi, klay, thợ đào, mạng, cá nhân, rpc, txpool, web3) |
-| WS_ADDR | Giao diện nghe máy chủ WS-RPC. |
-| WS_PORT | Cổng nghe máy chủ WS-RPC. (Mặc định: "8552") |
-| WS_ORIGINS | Nguồn gốc để chấp nhận yêu cầu Websocket. (Mặc định: "localhost") |
-| SC_MAIN_BRIDGE | Kích hoạt cầu nối chính nếu nó được đặt thành 1. Sử dụng cho cấu hình chuỗi dịch vụ. |
-| SC_MAIN_BRIDGE_PORT | Cầu nối chính nghe trên cổng này. (Mặc định : "50505") |
-| SC_MAIN_BRIDGE_INDEXING | Kích hoạt lưu trữ hàm băm giao dịch của các giao dịch chuỗi con để truy cập nhanh vào dữ liệu chuỗi con nếu đặt thành 1. |
-| METRICS | Kích hoạt bộ sưu tập số liệu và báo cáo nếu đặt thành 1. |
-| PROMETHEUS | Kích hoạt prometheus exporter nếu đặt thành 1. |
-| DB_NO_PARALLEL_WRITE | Hủy kích hoạt việc ghi song song dữ liệu khối vào cơ sở dữ liệu liên tục nếu đặt thành 1. |
-| MULTICHANNEL | Tạo một kênh chuyên dụng để lan truyền khối nếu đặt thành 1. |
-| SUBPORT | Lắng nghe số cổng phụ nếu kích hoạt tùy chọn đa kênh. (Mặc định : "32324") |
-| NO_DISCOVER | Tắt tùy chọn Khám phá nếu đặt thành 1. |
-| BOOTNODE | Địa chỉ kni của các nút bootstrap phân tách bằng dấu phẩy. |
-| ADDITIONAL | Cho các tùy chọn dòng lệnh bổ sung. e.g) --txpool.nolocals |
-| DATA_DIR | Đường dẫn thư mục dữ liệu blockchain Klaytn. |
-| LOG_DIR | Đường dẫn thư mục bản ghi. |
-
## Vị trí tập tin cấu hình CN
* `kcnd.conf` để định cấu hình Consensus Node
@@ -213,4 +126,3 @@ Tập tin cấu hình có các thuộc tính có thể định cấu hình như
| ADDITIONAL | Cho các tùy chọn dòng lệnh bổ sung. e.g) --txpool.nolocals |
| DATA_DIR | Đường dẫn thư mục dữ liệu blockchain Klaytn. |
| LOG_DIR | Đường dẫn thư mục bản ghi. |
-
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md
new file mode 100644
index 00000000000..3b7ac051656
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/klaytn-command.md
@@ -0,0 +1,57 @@
+# Lệnh Klaytn thường dùng
+
+## Cách tìm Thư mục Klaytn (Thường gọi là “Klaytn DIR”)
+
+---
+Bạn có thể kiểm tra thư mục Klaytn tại cấu hình `kcn` hoặc `kpn`. Tập tin cấu hình nằm tại `/etc/kcnd/conf` hoặc `/etc/kpnd/conf`.
+
+```bash
+cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
+
+# Find DATA_DIR and LOG_DIR path as below example
+DATA_DIR=/var/kcnd/data/
+LOG_DIR=/var/kcnd/nhật ký/
+```
+
+## Cách kết nối đến Bảng điều khiển Klaytn
+
+---
+Kết nối đến API Klaytn để kiểm tra trạng thái nút và mạng.
+
+```bash
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach klay.ipc
+>
+```
+
+## Các API hữu ích
+
+```bash
+# Check current block Number
+ > klay.blockNumber
+
+# Check my kni address
+ > admin.nodeInfo
+
+# Check my dode address
+ > governance.nodeAddress
+
+# Check other connected nodes
+ > admin.peers
+
+# Add or remove nodes
+ > admin.addPeer("kni")
+ > admin.removePeer("kni")
+```
+
+## Cách để chỉ lấy Kết quả API
+
+```jsx
+# execute the command below in the Klaytn DATA_DIR Path
+$ sudo kcn attach --exec klay.ipc
+
+e.g.
+# Check my dode address
+$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
+"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
+```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/log-management.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/log-management.md
new file mode 100644
index 00000000000..aaa0a8c6062
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/log-management.md
@@ -0,0 +1,62 @@
+# Ghi bản ghi hoạt động
+
+## Định cấu hình Quay vòng bản ghi
+
+You can enable the log rotation by setting the `--log.rotate` flag, and configure the log rotation settings by the following flags.
+
+- `--log.rotate`: By setting this flag, it enables the log rotation and applies the other log rotation options
+- `--log.maxsize`: Specifies the file size in MB that triggers backup file creation
+- `--log.maxbackups`: Determines the maximum number of backup files that can be stored. Once this limit is reached, older logs will be deleted.
+- `--log.maxage`: Represents the maximum number of days to retain a log file. For example, if set to 30, a backup file will be deleted after 30 days.
+- `--log.compress`: By setting this flag, it compresses the backup logs in gz format.
+
+Example
+```
+./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
+```
+You can also enable and configure the log rotation by setting following options in configuration file (e.g., `kend.conf`).
+```
+# log rotation related options
+LOG_ROTATE=1 # setting 1 to enable the log rotation related options
+LOG_MAXSIZE=100 # the unit is MB
+LOG_MAXBACKUPS=10
+LOG_MAXAGE=30 # maximum number of days to retain a log file
+LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
+```
+It is recommended to download and use the package which version is v1.11.0 or higher. You can download it in Binaries section of the release note(e.g., [v1.11.0 release note](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). Make sure next three files are v1.11.0 or higher: configuration file, daemon, and binary. Otherwise, it won't work.
+
+## Trạng thái bản ghi thông thường
+
+| Loại | Thông báo | Mô tả | |
+| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
+| Lỗi | FastWebsocketHandler fail to upgrade message | Vấn đề về phiên bản của kết nối WebSocket | thấp |
+| Lỗi | invalid index of the proposer | Lỗi phát sinh khi nút EN nhận giao dịch từ nút CN | thấp |
+| WARN | ProtocolManager failed to read msg | | thấp |
+| WARN | Failed doConnTypeHandshake | | low |
+| ERRORErro | Protocol istanbul/64 failed | Máy ngang hàng mất kết nối | thấp |
+| Lỗi | Fasthttp Err | Lỗi khi kết nối: hết thời gian đọc nhưng không đọc được gì | thấp |
+| Lỗi | Fasthttp Err | Lỗi khi kết nối: lỗi khi đọc tiêu đề yêu cầu: không tìm thấy phương pháp yêu cầu http trong "\x16… | thấp |
+| Warn | hash=b1b26c…6b220a err="insufficient balance for transfer" | Lỗi này xảy ra khi giao dịch cần xử lý (thường là khai thác) không thể thực hiện được do không đủ số dư trong "tài khoản gửi”(Về mặt lý thuyết, lỗi này xảy ra khi số dư vẫn đủ vào thời điểm giao dịch được tạo và nhập vào txpool, nhưng lại không đủ vào thời điểm thực thi giao dịch thực tế.) | thấp |
+| LỖI | ERROR\[06/06,23:23:46 Z] \[7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | Bất kỳ loại giá trị nào cũng có thể đưa vào trường dữ liệu Anchoring tx. Tuy nhiên, đầu ra của nút là bản ghi lỗi khi nhập sai loại giá trị | |
+| Người đề xuất: `Successfully wrote mined block` | | | |
+
+Không phải người đề xuất `Inserted a new block`
+
+## Ghi bản ghi thay đổi cấp độ (0\~5)
+
+Chuyển đến Bảng điều khiển Klaytn
+
+```
+#default Value
+> debug.verbosity(3)
+# hight detail nhật ký Value
+> debug.verbosity(5)
+# No Logs Value
+> debug.verbosity(0)
+
+# Default Value for Blockchain log
+> debug.vmodule("blockchain=3")
+# High detail Value for Blockchain Log
+> debug.vmodule("blockchain=5")
+
+```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
similarity index 80%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
index e073c2711f1..14359a1c85d 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/node-logs.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/node-log.md
@@ -7,6 +7,7 @@ Trang này trình bày chi tiết một số nội dung bản ghi quan trọng h
Nếu bạn gặp phải bất kỳ tình huống bất thường nào, vui lòng báo cáo cho đội ngũ Klaytn qua [github](https://github.com/klaytn/klaytn/issues), [Klaytn Forum](https://forum.klaytn.foundation/) hoặc [Discord](https://discord.io/KlaytnOfficial).
## Nhật ký lỗi
+
| Loại bản ghi | Kiểu nút | Thông báo bản ghi | Mô tả | Hướng dẫn đề xuất |
|:--------------------- |:------------ |:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Blockchain | CN/PN/EN | ########## BAD BLOCK ######### Cấu hình chuỗi: %v Số: %v Hàm băm: 0x%x %v Lỗi: %v ############################## | Khối không hợp lệ phát sinh khi biên lai nhận được và kết quả thực thi không khớp nhau. Nếu một nút dừng lại với bản ghi khối không hợp lệ, có thể do hai lý do. - Trường hợp 1. Cấu hình nút không chính xác, chẳng hạn như phiên bản nhị phân. - Trường hợp 2. Mã có vấn đề. Rất có khả năng các nút khác cũng sẽ gặp phải vấn đề tương tự. | Đây là lỗi nghiêm trọng nên nếu bạn thấy bất kỳ khối không hợp lệ nào, vui lòng tạo báo cáo lỗi hoặc báo cáo cho kho lưu trữ Klaytn GitHub. |
@@ -17,6 +18,7 @@ Nếu bạn gặp phải bất kỳ tình huống bất thường nào, vui lòn
| NetworksRPC | EN (hầu hết) | **FastWebsocketHandler fail to upgrade message** error="websocket: version != 13" | Vấn đề về phiên bản của kết nối WebSocket | Tiêu đề của yêu cầu phải chứa trường `Sec-Websocket-Version` với giá trị được đặt là 13. Có thể bạn chưa sử dụng máy khách Klaytn rpc. |
## Nhật ký cảnh báo
+
| Loại bản ghi | Kiểu nút | Thông báo bản ghi | Mô tả | Hướng dẫn đề xuất |
|:--------------------- |:-------- |:-------------------------------------------------------------------------------------------------------------------------------------------------------- |:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Blockchain | CN/PN/EN | **Upgrade database version** từ=N/A đến=3 | Lỗi này được ghi bản ghi vào thời điểm bắt đầu khởi động nút | Bạn không cần xử lý lỗi này. |
@@ -28,6 +30,7 @@ Nếu bạn gặp phải bất kỳ tình huống bất thường nào, vui lòn
| Work | CN | **Transaction failed, tài khoản skipped** hash=b1b26c...6b220a err="insufficient balance for transfer" Error(trước v1.6.2) Warn(sau v1.6.2) | Khi không thể thực thi một giao dịch trong quá trình đào do không đủ số dư trong tài khoản `from` (Về mặt lý thuyết, lỗi này xảy ra khi số dư vẫn đủ vào thời điểm giao dịch được tạo và nhập vào txpool, nhưng lại không đủ vào thời điểm thực thi giao dịch thực tế.) | Kiểm tra xem số dư tài khoản `from` có thực sự không đủ hay không. |
## Nhật ký thông tin
+
Nhật ký `Info` chứa thông tin bổ sung để bạn biết thêm về trạng thái nút nên bạn không cần xử lý bản ghi cấp độ `Info`.
| Loại bản ghi | Kiểu nút | Thông báo bản ghi | Mô tả |
@@ -44,64 +47,3 @@ Nhật ký `Info` chứa thông tin bổ sung để bạn biết thêm về tr
| Work | CN | **Successfully wrote mined block** num=14 hash=13cbfc…f007fc txs=0 elapsed=617.709µs | [Chỉ Người đề xuất] Nếu nút đó là một người đề xuất và quá trình đồng thuận thành công thì người đề xuất cần lưu trữ kết quả thực thi của khối vào cơ sở dữ liệu. Nhật ký này cho biết việc lưu trữ đã thành công. |
| Work | CN | **Mining too far in the future** wait=1s | Để duy trì khoảng thời gian tạo khối 1 giây, nút sẽ ngủ trong thời gian "1s - thời gian tạo/lan truyền/ thực thi khối trước đó". - wait: thời gian mà nút ngủ |
| VM | CN/PN/EN | **Returning since the addr is not a program tài khoản** addr= | Ai đó đang cố gắng gọi một hợp đồng không tồn tại. Lưu ý. Trong Klaytn, tài khoản chương trình tương đương với tài khoản hợp đồng. |
-
-## Ghi bản ghi hoạt động
-
-### Định cấu hình Quay vòng bản ghi
-You can enable the log rotation by setting the `--log.rotate` flag, and configure the log rotation settings by the following flags.
-- `--log.rotate`: By setting this flag, it enables the log rotation and applies the other log rotation options
-- `--log.maxsize`: Specifies the file size in MB that triggers backup file creation
-- `--log.maxbackups`: Determines the maximum number of backup files that can be stored. Once this limit is reached, older logs will be deleted.
-- `--log.maxage`: Represents the maximum number of days to retain a log file. For example, if set to 30, a backup file will be deleted after 30 days.
-- `--log.compress`: By setting this flag, it compresses the backup logs in gz format.
-
-Example
-```
-./bin/ken ... --log.rotate --log.maxsize 100 --log.maxbackups 10 --log.maxage 30 --log.compress
-```
-You can also enable and configure the log rotation by setting following options in configuration file (e.g., `kend.conf`).
-```
-# log rotation related options
-LOG_ROTATE=1 # setting 1 to enable the log rotation related options
-LOG_MAXSIZE=100 # the unit is MB
-LOG_MAXBACKUPS=10
-LOG_MAXAGE=30 # maximum number of days to retain a log file
-LOG_COMPRESS=1 # setting 1 to compress the backup logs in gz format
-```
-It is recommended to download and use the package which version is v1.11.0 or higher. You can download it in Binaries section of the release note(e.g., [v1.11.0 release note](https://github.com/klaytn/klaytn/releases/tag/v1.11.0)). Make sure next three files are v1.11.0 or higher: configuration file, daemon, and binary. Otherwise, it won't work.
-
-### Trạng thái bản ghi thông thường
-
-| Loại | Thông báo | Mô tả | |
-| ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---- |
-| Lỗi | FastWebsocketHandler fail to upgrade message | Vấn đề về phiên bản của kết nối WebSocket | thấp |
-| Lỗi | invalid index of the proposer | Lỗi phát sinh khi nút EN nhận giao dịch từ nút CN | thấp |
-| WARN | ProtocolManager failed to read msg | | thấp |
-| WARN | Failed doConnTypeHandshake | | low |
-| ERRORErro | Protocol istanbul/64 failed | Máy ngang hàng mất kết nối | thấp |
-| Lỗi | Fasthttp Err | Lỗi khi kết nối: hết thời gian đọc nhưng không đọc được gì | thấp |
-| Lỗi | Fasthttp Err | Lỗi khi kết nối: lỗi khi đọc tiêu đề yêu cầu: không tìm thấy phương pháp yêu cầu http trong "\x16… | thấp |
-| Warn | hash=b1b26c…6b220a err="insufficient balance for transfer" | Lỗi này xảy ra khi giao dịch cần xử lý (thường là khai thác) không thể thực hiện được do không đủ số dư trong "tài khoản gửi”(Về mặt lý thuyết, lỗi này xảy ra khi số dư vẫn đủ vào thời điểm giao dịch được tạo và nhập vào txpool, nhưng lại không đủ vào thời điểm thực thi giao dịch thực tế.) | thấp |
-| LỖI | ERROR\[06/06,23:23:46 Z] \[7] decode anchor payload err="rlp: expected input list for types.AnchoringDataLegacy" | Bất kỳ loại giá trị nào cũng có thể đưa vào trường dữ liệu Anchoring tx. Tuy nhiên, đầu ra của nút là bản ghi lỗi khi nhập sai loại giá trị | |
-| Người đề xuất: `Successfully wrote mined block` | | | |
-
-Không phải người đề xuất `Inserted a new block`
-
-### Ghi bản ghi thay đổi cấp độ (0\~5)
-
-Chuyển đến Bảng điều khiển Klaytn
-
-```
-#default Value
-> debug.verbosity(3)
-# hight detail nhật ký Value
-> debug.verbosity(5)
-# No Logs Value
-> debug.verbosity(0)
-
-# Default Value for Blockchain log
-> debug.vmodule("blockchain=3")
-# High detail Value for Blockchain Log
-> debug.vmodule("blockchain=5")
-
-```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/operation.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/operation.md
new file mode 100644
index 00000000000..b65391c3f67
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/operation.md
@@ -0,0 +1,9 @@
+# Hướng dẫn vận hành
+
+Hướng dẫn này đóng vai trò là tài liệu tham khảo nhanh tiện dụng cho các nhà khai thác Node để định cấu hình, giám sát và khắc phục sự cố các nút Klaytn của họ một cách hiệu quả. Nó bao gồm các tác vụ phổ biến như định cấu hình các nút, hiểu và phân tích nhật ký, quản lý chaindata và sử dụng các lệnh thiết yếu. Hướng dẫn nhằm mục đích giúp các nhà khai thác Node chạy trơn tru và duy trì các nút blockchain của họ bằng cách trang bị cho họ thông tin chính và thực tiễn tốt nhất.
+
+```mdx-code-block
+import DocCardList from '@theme/DocCardList';
+
+
+```
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
similarity index 99%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
index b5bef2a6207..99956ab5339 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/troubleshooting.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/misc/operation/troubleshooting.md
@@ -1,4 +1,4 @@
-# Lỗi & Khắc phục sự cố
+# Khắc phục sự cố
## Tôi có thể tìm tập tin bản ghi cho nút Klaytn đang chạy bằng gói nhị phân Klaytn ở đâu?
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
index d46d302cdb5..53724ba0671 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-consensus-nodes.md
@@ -149,7 +149,7 @@ REWARDBASE="d13f7da0032b1204f77029dc1ecbf4dae2f04241"
...
```
-Hãy nhớ rằng lưu trữ khóa và mật khẩu mà bạn đã tạo là vô cùng quan trọng. Do đó, bạn phải quản lý chúng thật cẩn thận. Xem thêm thông tin về `kcnd.conf` trên phần [Tập tin cấu hình](../../../nodes/references/configuration-files.md).
+Hãy nhớ rằng lưu trữ khóa và mật khẩu mà bạn đã tạo là vô cùng quan trọng. Do đó, bạn phải quản lý chúng thật cẩn thận. Xem thêm thông tin về `kcnd.conf` trên phần [Tập tin cấu hình](../../../misc/operation/configuration.md).
### Đồng bộ nhanh \(Tùy chọn\)
@@ -173,7 +173,7 @@ $ tar -C ~/kcnd_home -xvf klaytn-baobab-chaindata-latest.tar.gz
Sau khi dữ liệu được trích xuất, bạn có thể bắt đầu CN như bình thường.
-Bạn có thể tham khảo thông tin chi tiết tại [Thay đổi dữ liệu chuỗi](../../node-migration.md)
+Bạn có thể tham khảo thông tin chi tiết tại [Thay đổi dữ liệu chuỗi](../../../misc/operation/chaindata-change.md)
## Khởi động CN
@@ -218,6 +218,18 @@ tải lại cấu hình trình quản lý hệ thống bằng lệnh sau.
$ systemctl daemon-reload
```
+### Export BLS public key info
+
+If the network has activated or will activate the Randao hardfork, each CN maintainer must submit its BLS public key info to the [KIP-113 smart contract](https://kips.klaytn.foundation/KIPs/kip-113).
+
+The BLS public key info can be calculated from the nodekey. To extract it, first start the node. Then use the command:
+
+```
+$ kcn account bls-info --datadir /var/kcnd/data
+```
+
+As a result, `bls-publicinfo-NODEID.json` file will be created.
+
# Kiểm tra Core Cell
Đã đến lúc kiểm tra xem Core Cell đã được cài đặt thành công chưa và nó có hoạt động như mong đợi sau khi cài đặt không.
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
index 2acd8f4f8af..cbcb8e09a3d 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/core-cell/install/install-proxy-nodes.md
@@ -160,7 +160,7 @@ $ tar -C /var/kpnd/data -xvf klaytn-baobab-chaindata-latest.tar.gz
Sau khi dữ liệu được trích xuất, bạn có thể bắt đầu PN như bình thường.
-Bạn có thể tham khảo thông tin chi tiết tại [Thay đổi dữ liệu chuỗi](../../node-migration.md)
+Bạn có thể tham khảo thông tin chi tiết tại [Thay đổi dữ liệu chuỗi](../../../misc/operation/chaindata-change.md)
## Khởi động PN
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
index 4c202dbbd7b..0214617cbf4 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/downloads.md
@@ -7,6 +7,7 @@ sidebar_label: Tải xuống gói nút
## Tải xuống các gói
Bạn có thể tải về các gói cho CN, PN, EN, SCN, SPN và SEN.
+* [v1.12.0](./v1.12.0.md)
* [v1.11.1](./v1.11.1.md)
* [v1.11.0](./v1.11.0.md)
* [v1.10.2](./v1.10.2.md)
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md
new file mode 100644
index 00000000000..93bcd0081f8
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/downloads/v1.12.0.md
@@ -0,0 +1,145 @@
+# v1.12.0
+
+## Package Downloads
+
+### RPM
+
+Cypress Packages
+- [kcnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-v1.12.0-0.el7.x86_64.rpm)
+- [kend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-v1.12.0-0.el7.x86_64.rpm)
+
+Baobab Packages
+- [kcnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kcnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kpnd-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kpnd-baobab-v1.12.0-0.el7.x86_64.rpm)
+- [kend-baobab-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kend-baobab-v1.12.0-0.el7.x86_64.rpm)
+
+Common Packages
+- [kscnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kscnd-v1.12.0-0.el7.x86_64.rpm)
+- [kspnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kspnd-v1.12.0-0.el7.x86_64.rpm)
+- [ksend-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/ksend-v1.12.0-0.el7.x86_64.rpm)
+- [kbnd-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kbnd-v1.12.0-0.el7.x86_64.rpm)
+- [kgen-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0.el7.x86_64.rpm)
+- [homi-v1.12.0-0.el7.x86_64.rpm](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0.el7.x86_64.rpm)
+
+### Linux
+
+Cypress Packages
+- [kcn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-linux-amd64.tar.gz)
+
+Baobab Packages
+- [kcn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-linux-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-linux-amd64.tar.gz)
+
+Common Packages
+- [kscn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-linux-amd64.tar.gz)
+- [kspn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-linux-amd64.tar.gz)
+- [ksen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-linux-amd64.tar.gz)
+- [kbn-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-linux-amd64.tar.gz)
+- [kgen-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-linux-amd64.tar.gz)
+- [homi-v1.12.0-0-linux-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-linux-amd64.tar.gz)
+
+### MacOS
+
+Cypress Packages
+- [kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ken-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-v1.12.0-0-darwin-arm64.tar.gz)
+
+Baobab Packages
+- [kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.11.1/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kcn-baobab-v1.12.0-0-darwin-arm64.tar.gz)
+- [kpn-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kpn-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ken-baobab-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ken-baobab-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+
+Common Packages
+- [kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [homi-v1.12.0-0-darwin-10.10-amd64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-10.10-amd64.tar.gz)
+- [kscn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kscn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kspn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kspn-v1.12.0-0-darwin-arm64.tar.gz)
+- [ksen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/ksen-v1.12.0-0-darwin-arm64.tar.gz)
+- [kbn-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kbn-v1.12.0-0-darwin-arm64.tar.gz)
+- [kgen-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/kgen-v1.12.0-0-darwin-arm64.tar.gz)
+- [homi-v1.12.0-0-darwin-arm64.tar.gz](https://packages.klaytn.net/klaytn/v1.12.0/homi-v1.12.0-0-darwin-arm64.tar.gz)
+
+### Windows
+
+- Not supported yet
+
+### Docker
+
+- [klaytn/klaytn:v1.12.0](https://hub.docker.com/r/klaytn/klaytn)
+
+
+## Release Notes
+
+Klaytn v1.12.0 contains a hardfork upgrade that results in backward-incompatible changes. All Baobab nodes must be upgraded to v1.12.0 or higher before the target block number. The hardfork block number for Cypress mainnet will be scheduled in the next version.
+
+This version includes two different hardforks. The first is the features equivalent to Ethereum Caucun hardfork, and the second is an optional hardfork implementing the Randao on-chain randomness.
+
+The hardfork schedule is as follows:
+
+**Baobab testnet**
+
+* Block number: 141367000 (estimated time: 19 Dec, 10:00 AM UTC+9)
+* Hardfork contents: Cancun hardfork, Randao hardfork
+
+### Cancun Hardfork features
+
+* Added the TLOAD, TSTORE opcodes to EVM according to [EIP-1153](https://eips.ethereum.org/EIPS/eip-1153) ([#1988](https://github.com/klaytn/klaytn/pull/1988))
+* Added the BLOBBASEFEE, BLOBHASH opcodes and the POINT_EVALUATION (0x0a) precompile to EVM according to [EIP-4844](https://eips.ethereum.org/EIPS/eip-4844) and [EIP-7516](https://eips.ethereum.org/EIPS/eip-7516) except Blob transaction type support ([#2032](https://github.com/klaytn/klaytn/pull/2032))
+* Added the MCOPY opcode to EVM according to [EIP-5656](https://eips.ethereum.org/EIPS/eip-5656) ([#1980](https://github.com/klaytn/klaytn/pull/1980))
+* Modified the behavior of the SELFDESTRUCT opcode according to [EIP-6780](https://eips.ethereum.org/EIPS/eip-6780) ([#1986](https://github.com/klaytn/klaytn/pull/1986))
+* Adjusted ComputationCost for the recommended hardware specification, and increased the ComputationCostLimit ([#2037](https://github.com/klaytn/klaytn/pull/2037))
+* Modified the behavior of the EXTCODEHASH opcode to return 0 when the account is empty according to [EIP-1052](https://eips.ethereum.org/EIPS/eip-1052) ([#2040](https://github.com/klaytn/klaytn/pull/2040))
+* Fully support AccessList transaction type according to [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930) ([#1955](https://github.com/klaytn/klaytn/pull/1955))
+
+### Randao Hardfork features
+
+* Added the System Contract Registry according to [KIP-149](https://github.com/klaytn/kips/issues/149) ([#1968](https://github.com/klaytn/klaytn/pull/1968), [#1987](https://github.com/klaytn/klaytn/pull/1987), [#1999](https://github.com/klaytn/klaytn/pull/1999), [#2054](https://github.com/klaytn/klaytn/pull/2054), [#2059](https://github.com/klaytn/klaytn/pull/2059))
+* Added the BLS Public Key Registry according to [KIP-113](https://github.com/klaytn/kips/issues/113) ([#1951](https://github.com/klaytn/klaytn/pull/1951), [#1990](https://github.com/klaytn/klaytn/pull/1990), [#2017](https://github.com/klaytn/klaytn/pull/2017), [#2029](https://github.com/klaytn/klaytn/pull/2029), [#2052](https://github.com/klaytn/klaytn/pull/2052), [#2053](https://github.com/klaytn/klaytn/pull/2053))
+* Added the RANDAO fields to block headers according to [KIP-114](https://github.com/klaytn/kips/issues/114) ([#2009](https://github.com/klaytn/klaytn/pull/2009), [#2014](https://github.com/klaytn/klaytn/pull/2014), [#2028](https://github.com/klaytn/klaytn/pull/2028))
+* Modified block proposer selection to use unpredictable randomness according to [KIP-146](https://github.com/klaytn/kips/issues/146) ([#2030](https://github.com/klaytn/klaytn/pull/2030), [#2039](https://github.com/klaytn/klaytn/pull/2039))
+
+
+### Improvements
+
+* Added the Upstream EN feature. When an EN fails to find the block data during an API handling, it can query another EN specified by the `--rpc.upstream-en` flag. ([#2013](https://github.com/klaytn/klaytn/pull/2013))
+* Increased the block consensus quorum to harden network security. ([#2026](https://github.com/klaytn/klaytn/pull/2026))
+* The JavaScript runtime of the built-in console now supports [ECMAScript6](http://es6-features.org/) features ([#2001](https://github.com/klaytn/klaytn/pull/2001))
+* Optimized the data synchronization between RocksDB instances. ([#1947](https://github.com/klaytn/klaytn/pull/1947))
+* Added the node flag --vm.opdebug to measure opcode execution times. ([#2012](https://github.com/klaytn/klaytn/pull/2012))
+* Transaction-related APIs return more detailed error messages about bad signatures ([#1967](https://github.com/klaytn/klaytn/pull/1967))
+* Optimized the debug_startWarmUp API ([#2011](https://github.com/klaytn/klaytn/pull/2011))
+* Added the debug_traceCall AP to support ERC-4337 bundlers ([#1965](https://github.com/klaytn/klaytn/pull/1965), [#1979](https://github.com/klaytn/klaytn/pull/1979))
+* Added the admin_nodeConfig API ([#1996](https://github.com/klaytn/klaytn/pull/1996))
+* Added the eth_createAccessList API to help build AccessList type transactions ([#2027](https://github.com/klaytn/klaytn/pull/2027))
+* Added the eth_getBlockReceipts API, and modified the klay_getBlockReceipts API to accept block numbers. ([#2019](https://github.com/klaytn/klaytn/pull/2019))
+
+### Fixes
+
+* Fixed governance-related bugs ([#1942](https://github.com/klaytn/klaytn/pull/1942), [#1984](https://github.com/klaytn/klaytn/pull/1984))
+* Fixed the debug_setHead API to correctly rewind governance-related internal states. You can attempt recovery from governance-related block sync problems. ([#1966](https://github.com/klaytn/klaytn/pull/1966), [#2002](https://github.com/klaytn/klaytn/pull/2002))
+* Fixed some log levels. ([#1946](https://github.com/klaytn/klaytn/pull/1946), [#1978](https://github.com/klaytn/klaytn/pull/1978))
+* Fixed debug_traceTransaction API to correctly function with value transfer to EOAs. ([#1953](https://github.com/klaytn/klaytn/pull/1953))
+* Fixed klay_recoverFromTransaction API to correctly process Ethereum-typed transactions ([#1975](https://github.com/klaytn/klaytn/pull/1975))
+* Fixed the block and header fetching APIs to not fail with the “pending” block number. ([#1994](https://github.com/klaytn/klaytn/pull/1994))
+* Fixed the eth_maxPriorityFeePerGas API to return 0 since Magma hardfork. ([#2008](https://github.com/klaytn/klaytn/pull/2008))
+
+### Miscellaneous
+
+* Update the rlpx and abi packages ([#1954](https://github.com/klaytn/klaytn/pull/1954), [#2015](https://github.com/klaytn/klaytn/pull/2015))
+* Enable some packages to be built for WASM target ([#1983](https://github.com/klaytn/klaytn/pull/1983))
+* Minor maintenance ([#1941](https://github.com/klaytn/klaytn/pull/1941), [#1944](https://github.com/klaytn/klaytn/pull/1944), [#1948](https://github.com/klaytn/klaytn/pull/1948), [#1952](https://github.com/klaytn/klaytn/pull/1952), [#1956](https://github.com/klaytn/klaytn/pull/1956), [#1969](https://github.com/klaytn/klaytn/pull/1969), [#1971](https://github.com/klaytn/klaytn/pull/1971), [#1972](https://github.com/klaytn/klaytn/pull/1972), [#1973](https://github.com/klaytn/klaytn/pull/1973), [#1974](https://github.com/klaytn/klaytn/pull/1974), [#1977](https://github.com/klaytn/klaytn/pull/1977), [#1982](https://github.com/klaytn/klaytn/pull/1982), [#1985](https://github.com/klaytn/klaytn/pull/1985), [#1991](https://github.com/klaytn/klaytn/pull/1991), [#1992](https://github.com/klaytn/klaytn/pull/1992), [#1993](https://github.com/klaytn/klaytn/pull/1993), [#1995](https://github.com/klaytn/klaytn/pull/1995), [#1997](https://github.com/klaytn/klaytn/pull/1997), [#1998](https://github.com/klaytn/klaytn/pull/1998), [#2004](https://github.com/klaytn/klaytn/pull/2004), [#2007](https://github.com/klaytn/klaytn/pull/2007), [#2016](https://github.com/klaytn/klaytn/pull/2016), [#2020](https://github.com/klaytn/klaytn/pull/2020), [#2024](https://github.com/klaytn/klaytn/pull/2024), [#2031](https://github.com/klaytn/klaytn/pull/2031), [#2033](https://github.com/klaytn/klaytn/pull/2033), [#2034](https://github.com/klaytn/klaytn/pull/2034), [#2035](https://github.com/klaytn/klaytn/pull/2035), [#2036](https://github.com/klaytn/klaytn/pull/2036), [#2041](https://github.com/klaytn/klaytn/pull/2041), [#2050](https://github.com/klaytn/klaytn/pull/2050), [#2055](https://github.com/klaytn/klaytn/pull/2055), [#2056](https://github.com/klaytn/klaytn/pull/2056), [#2058](https://github.com/klaytn/klaytn/pull/2058), [#2061](https://github.com/klaytn/klaytn/pull/2061))
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
index 1d7c424fede..82c3ea42950 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/install-endpoint-nodes.md
@@ -6,7 +6,7 @@ Bạn có thể tải về các gói cho EN tại [trang tải về](../download
## Hướng dẫn cài đặt
-Bạn có thể tải về phiên bản mới nhất của `ken` trên trang [Tải xuống](../node-migration.md).
+Bạn có thể tải về phiên bản mới nhất của `ken` trên trang [Tải xuống](../../misc/operation/chaindata-change.md).
### Phân bổ lưu trữ Linux
@@ -115,7 +115,7 @@ Mỗi EN duy trì một bản sao dữ liệu chuỗi của mạng lưới. Nế
Để đẩy nhanh quá trình này, bạn cần thực hiện đồng bộ nhanh bằng cách tải về bản thu thập dữ liệu của dữ liệu chuỗi trước khi bắt đầu EN. Điều này giúp giảm đáng kể thời gian EN cần để đồng bộ khi bắt đầu lần đầu tiên.
-Tải xuống bản thu thập dữ liệu chuỗi mới nhất từ [Lưu trữ thu thập dữ liệu Cypress](../node-migration.md) hoặc[Lưu trữ thu thập dữ liệu Baobab](../node-migration.md). Trước khi bắt đầu `kend`, trích xuất bản thu thập dữ liệu trong DATA\_DIR mà bạn định cấu hình trong `kend.conf`.
+Tải xuống bản thu thập dữ liệu chuỗi mới nhất từ [Lưu trữ thu thập dữ liệu Cypress](http://packages.klaytn.net/cypress/chaindata/) hoặc[Lưu trữ thu thập dữ liệu Baobab](http://packages.klaytn.net/baobab/chaindata/). Trước khi bắt đầu `kend`, trích xuất bản thu thập dữ liệu trong DATA\_DIR mà bạn định cấu hình trong `kend.conf`.
Ví dụ:
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md
new file mode 100644
index 00000000000..b1e7dac7561
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/json-rpc-apis.md
@@ -0,0 +1,78 @@
+# API JSON-RPC
+
+Nút điểm cuối thể hiện các API JSON-RPC. Bạn có thể kích hoạt/vô hiệu hóa các API như sau. Để biết thông số API chi tiết, vui lòng tham khảo [API JSON-RPC](../../references/json-rpc/json-rpc.md).
+
+**LƯU Ý**: Việc cung cấp API qua giao diện HTTP (`rpc`) hoặc WebSocket (`ws`) sẽ cấp cho mọi người quyền truy cập vào các API có thể truy cập giao diện này (DApps, trình duyệt tab, v. v). Hãy thận trọng với những API bạn kích hoạt. Theo mặc định, Klaytn kích hoạt tất cả các API trên giao diện IPC (`ipc`) nhưng đối với `rpc` và `ws` các mô-đun bắt buộc phải được bật.
+
+## Kích hoạt API
+
+### Từ dòng lệnh
+Để cung cấp API qua các điểm cuối Klaytn RPC, vui lòng chỉ định chúng bằng đối số dòng lệnh `--${interface}api` trong đó `${interface}` có thể là `rpc` cho điểm cuối HTTP hoặc `ws` cho điểm cuối WebSocket.
+
+`ipc` cung cấp tất cả các API trên ổ cắm unix (Unix) hoặc điểm cuối ống dẫn có tên (Windows) mà không có bất kỳ cờ nào.
+
+Bạn có thể khởi chạy nút Klaytn với các API cụ thể mà bạn muốn thêm như ví dụ bên dưới. Nhưng hãy nhớ rằng bạn không thể thay đổi API sau khi khởi chạy nút.
+
+Ví dụ) khởi chạy một nút Klaytn có bật các mô-đun `klay` và `net`:
+
+```shell
+$ ken --rpcapi klay,net --rpc --{other options}
+```
+
+Giao diện HTTP RPC phải được bật bằng cách sử dụng cờ báo `--rpc`.
+
+### Sử dụng cấu hình
+
+Vui lòng cập nhật thuộc tính `RPC_ENABLE`, `RPC_API`, `WS_ENABLE` và `WS_API` trong [Tập tin cấu hình](../../misc/operation/configuration.md).
+
+## Truy vấn API đã kích hoạt
+
+Để xác định API mà giao diện cung cấp, có thể gọi phương pháp `modules` JSON-RPC. Ví dụ: trên giao diện `rpc`:
+
+**IPC**
+
+```javascript
+$ echo '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' | nc -U klay.ipc
+```
+
+**HTTP**
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"rpc_modules","params":[],"id":1}' https://public-en-baobab.klaytn.net
+```
+
+sẽ cung cấp cho bạn tất cả các mô-đun đã kích hoạt bao gồm cả số phiên bản:
+
+```
+{
+ "jsonrpc":"2.0",
+ "id":1,
+ "result":{
+ "admin":"1.0",
+ "debug":"1.0",
+ "klay":"1.0",
+ "miner":"1.0",
+ "net":"1.0",
+ "personal":"1.0",
+ "rpc":"1.0",
+ "txpool":"1.0",
+ "web3":"1.0"
+ }
+}
+```
+
+## Disabling unsafe debug APIs
+
+Some debug namespace APIs are unsafe/unappropriate to be opened to public. We recommend you to provide the debug namespace APIs to authorized users only. However, if you want to maintain a public EN and provide debug namespace APIs to the public, we strongly recommend you to set the `rpc.unsafe-debug.disable` flag which will disable APIs that are unsafe/unappropriate to be opened to the public and enable only a subset of the debug namespace APIs.
+
+The enabled APIs are as follows:
+
+- [VM Tracing](../../references/json-rpc/debug/tracing.md) APIs, however with limited functionality (only [pre-defined tracers](../../references/json-rpc/debug/tracing.md#tracing-options) are allowed)
+- debug_dumpBlock, debug_dumpStateTrie, debug_getBlockRlp, debug_getModifiedAccountsByHash, debug_getModifiedAccountsByNumber, debug_getBadBlocks, debug_getModifiedStorageNodesByNumber
+- debug_metrics
+
+To set the `rpc.unsafe-debug.disable` flag, append the following line in the `kend.conf` file.
+
+```
+ADDITIONAL="$ADDITIONAL --rpc.unsafe-debug.disable"
+```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
similarity index 71%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
index 9772f09b0c6..e78dd57149f 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/klaytn-command.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/endpoint-node/ken-cli-commands.md
@@ -1,62 +1,4 @@
-# Lệnh Klaytn
-
-## Cách tìm Thư mục Klaytn (Thường gọi là “Klaytn DIR”)
-
----
-Bạn có thể kiểm tra thư mục Klaytn tại cấu hình `kcn` hoặc `kpn`. Tập tin cấu hình nằm tại `/etc/kcnd/conf` hoặc `/etc/kpnd/conf`.
-
-```bash
-cat /etc/kcnd/conf/kcnd.conf (or /etc/kpnd/conf/kpnd.conf)
-
-# Find DATA_DIR and LOG_DIR path as below example
-DATA_DIR=/var/kcnd/data/
-LOG_DIR=/var/kcnd/nhật ký/
-```
-
-## Cách kết nối đến Bảng điều khiển Klaytn
-
----
-Kết nối đến API Klaytn để kiểm tra trạng thái nút và mạng.
-
-```bash
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach klay.ipc
->
-```
-
-## Các API hữu ích
-
-```bash
-# Check current block Number
- > klay.blockNumber
-
-# Check my kni address
- > admin.nodeInfo
-
-# Check my dode address
- > governance.nodeAddress
-
-# Check other connected nodes
- > admin.peers
-
-# Add or remove nodes
- > admin.addPeer("kni")
- > admin.removePeer("kni")
-```
-
-## Cách để chỉ lấy Kết quả API
-
-```jsx
-# execute the command below in the Klaytn DATA_DIR Path
-$ sudo kcn attach --exec klay.ipc
-
-e.g.
-# Check my dode address
-$ sudo kcn attach --exec "governance.nodeAddress" klay.ipc
-"0xda23978e6e354fbf25dd87aaf1d1bb4ed112753f"
-```
-
-## các lệnh CLI ken
+# các lệnh CLI ken
`ken` là giao dịch dòng lệnh cho Nút điểm cuối Klaytn.
@@ -65,7 +7,7 @@ CÁCH SỬ DỤNG:
lệnh ken [options] [tùy chọn lệnh] [arguments...]
```
-### Lệnh
+## Lệnh
`ken` có các lệnh sau.
@@ -115,7 +57,7 @@ tham gia vào.
...
```
-### Bảng điều khiển JavaScript
+## Bảng điều khiển JavaScript
Nút điểm cuối Klaytn đi kèm bảng điều khiển JavaScript. Từ dòng lệnh của bảng điều khiển, bạn có thể khởi tạo một phần của các lệnh gọi ra API Klaytn đến EN của mình. Để đính kèm vào bảng điều khiển JavaScript, hãy thực thi lệnh sau.
@@ -137,7 +79,7 @@ Lệnh `attach` kết nối với nút đang chạy, trong khi lệnh `console`
console Bắt đầu một môi trường JavaScript tương tác
```
-#### API mô-đun
+### API mô-đun
Nếu bạn nhập tên mô-đun trên dấu nhắc bảng điều khiển, bạn sẽ thấy các thuộc tính và chức năng có sẵn của mô-đun. Để biết chi tiết các chức năng, vui lòng tham khảo [API Klaytn](../../references/json-rpc/json-rpc.md).
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/references.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/references.md
deleted file mode 100644
index e1501eb9a8e..00000000000
--- a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/references.md
+++ /dev/null
@@ -1,7 +0,0 @@
-# Tham chiếu nút
-
-```mdx-code-block
-import DocCardList from '@theme/DocCardList';
-
-
-```
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md
new file mode 100644
index 00000000000..973f6e115bd
--- /dev/null
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/configuration-files.md
@@ -0,0 +1,90 @@
+# Tập tin cấu hình
+
+Tài liệu này giải thích các thuộc tính có thể định cấu hình của nút. Gói nút Klaytn có các thuộc tính mặc định tốt và yêu cầu định cấu hình rất ít. Nếu thay đổi bất kỳ cài đặt nào của nút đang chạy, bạn phải khởi động lại nút để phản ánh các thay đổi đó.
+
+## Vị trí tập tin cấu hình SCN
+
+* `kscnd.conf` để định cấu hình Nút đồng thuận chuỗi dịch vụ
+
+Tập tin cấu hình nằm trong thư mục `conf`, có vị trí mặc định phụ thuộc vào việc cài đặt là từ phân bổ lưu trữ \(`tar.gz`\) hay từ phân bổ gói \(RPM\).
+
+* Nếu phân bổ lưu trữ, vị trí thư mục cấu hình mặc định là `$INSTALL_PATH/kscn-linux-amd64/conf/`.
+* Nếu phân bổ gói, vị trí thư mục cấu hình mặc định là `/etc/kscnd/conf/`.
+
+## Định dạng tập tin cấu hình
+
+Dưới đây là tập tin cấu hình mẫu cho SCN lưu trữ dữ liệu blockchain ở vị trí mặc định, `~/kscnd_home` với phân bổ lưu trữ, `/var/kscnd/data` với phân bổ gói.
+
+```text
+# Tập tin cấu hình kcnd
+
+NETWORK=
+# nếu bạn chỉ định NETWORK_ID, một mạng lưới riêng sẽ được tạo.
+NETWORK_ID=
+PORT=32323
+SERVER_TYPE="fasthttp"
+SYNCMODE="full"
+VERBOSITY=3
+MAXCONNECTIONS=100
+# LDBCACHESIZE=10240
+REWARDBASE="0x0"
+
+...
+
+DATA_DIR=
+LOG_DIR=$DATA_DIR/nhật ký
+```
+
+Các quy mô bể giao dịch được đề xuất cho SCN như sau.
+
+```text
+TXPOOL_EXEC_SLOTS_ALL=16384
+TXPOOL_NONEXEC_SLOTS_ALL=16384
+TXPOOL_EXEC_SLOTS_ACCOUNT=16384
+TXPOOL_NONEXEC_SLOTS_ACCOUNT=16384
+```
+
+## Thuộc tính
+
+Tập tin cấu hình có các thuộc tính có thể định cấu hình như bên dưới. Các tập tin cấu hình SCN, SPN và SEN có cùng thuộc tính.
+
+| Tên | Mô tả |
+| ------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
+| NETWORK | Tên mạng lưới mà nút này sẽ tham gia vào. Giá trị này được sử dụng khi NETWORK_ID không được xác định. ("cypress", "baobab") |
+| NETWORK_ID | ID mạng lưới Klaytn. Nếu bạn tạo một mạng lưới riêng cục bộ, bạn sẽ chỉ định ID mạng lưới cho mạng lưới riêng của mình. Các ID sau được dành riêng cho các mạng lưới được định cấu hình trước. 8217 : Cypress (Mạng chính) 1000 : Mạng thử nghiệm Aspen 1001 : Mạng thử nghiệm Baobab |
+| CỔNG | Cổng P2P. (Mặc định: "32323") |
+| SERVER_TYPE | Loại máy chủ JSON RPC. ("http", "fasthttp") |
+| SYNCMODE | Chế độ đồng bộ blockchain. ("nhanh", "đầy đủ") |
+| VERBOSITY | Độ chi tiết ghi bản ghi. (Cấp độ: 0=im lặng, 1=lỗi, 2=cảnh báo, 3=thông tin, 4=gỡ lỗi, 5=chi tiết) |
+| MAXCONNECTIONS | Số lượng tối đa các kết nối thực. Tất cả các máy ngang hàng đơn kênh có thể có tối đa MAXCONNECTIONS máy ngang hàng. Tất cả các máy ngang hàng đa kênh có thể có tối đa MAXCONNECTIONS/2 máy ngang hàng. Kết nối mạng lưới sẽ bị tắt nếu nó được đặt thành 0. (Mặc định: 10) |
+| LDBCACHESIZE | Kích thước của bộ nhớ đệm trong bộ nhớ trong LevelDB (MiB). (Mặc định: 768) |
+| REWARDBASE | Địa chỉ tài khoản sẽ nhận phần thưởng đồng thuận khối. Thuộc tính này chỉ áp dụng cho CN. |
+| TXPOOL_EXEC_SLOTS_ALL | Số lượng ô giao dịch có thể thực thi tối đa cho tất cả các tài khoản. (Mặc định: 4096) |
+| TXPOOL_NONEXEC_SLOTS_ALL | Số lượng ô giao dịch không thể thực thi tối đa cho tất cả các tài khoản. (Mặc định: 1024) |
+| TXPOOL_EXEC_SLOTS_ACCOUNT | Số lượng ô giao dịch có thể thực thi được đảm bảo cho mỗi tài khoản. (Mặc định: 16) |
+| TXPOOL_NONEXEC_SLOTS_ACCOUNT | Số lượng ô giao dịch không thể thực thi tối đa được đảm bảo cho mỗi tài khoản. (Mặc định: 64) |
+| TXPOOL_LIFE_TIME | Khoảng thời gian tối đa các giao dịch không thể thực thi xếp hàng chờ. (Mặc định: 30p cho SEN, 5p cho SCN/SPN) |
+| RPC_ENABLE | Kích hoạt máy chủ HTTP-RPC nếu nó được đặt thành 1. |
+| RPC_API | Danh sách API phân tách bằng dấu phẩy cung cấp qua giao diện HTTP-RPC. (quản trị, gỡ lỗi, klay, thợ đào, mạng, cá nhân, rpc, txpool, web3) |
+| RPC_PORT | Cổng nghe máy chủ HTTP-RPC. (Mặc định: "8551") |
+| RPC_ADDR | Giao diện nghe máy chủ HTTP-RPC. (Mặc định: "localhost") |
+| RPC_CORSDOMAIN | Danh sách miền được phân tách bằng dấu phẩy để chấp nhận các yêu cầu từ nhiều nguồn (đã thực thi với trình duyệt) |
+| RPC_VHOSTS | Danh sách tên máy chủ ảo phân tách bằng dấu phẩy để chấp nhận yêu cầu (đã thực thi với máy chủ). Chấp nhận ký tự đại diện '*'. (Mặc định: {"localhost"}) |
+| WS_ENABLE | Kích hoạt máy chủ WS-RPC nếu nó được đặt thành 1. |
+| WS_API | API được cung cấp trên giao diện WS-RPC. (quản trị, gỡ lỗi, klay, thợ đào, mạng, cá nhân, rpc, txpool, web3) |
+| WS_ADDR | Giao diện nghe máy chủ WS-RPC. |
+| WS_PORT | Cổng nghe máy chủ WS-RPC. (Mặc định: "8552") |
+| WS_ORIGINS | Nguồn gốc để chấp nhận yêu cầu Websocket. (Mặc định: "localhost") |
+| SC_MAIN_BRIDGE | Kích hoạt cầu nối chính nếu nó được đặt thành 1. Sử dụng cho cấu hình chuỗi dịch vụ. |
+| SC_MAIN_BRIDGE_PORT | Cầu nối chính nghe trên cổng này. (Mặc định : "50505") |
+| SC_MAIN_BRIDGE_INDEXING | Kích hoạt lưu trữ hàm băm giao dịch của các giao dịch chuỗi con để truy cập nhanh vào dữ liệu chuỗi con nếu đặt thành 1. |
+| METRICS | Kích hoạt bộ sưu tập số liệu và báo cáo nếu đặt thành 1. |
+| PROMETHEUS | Kích hoạt prometheus exporter nếu đặt thành 1. |
+| DB_NO_PARALLEL_WRITE | Hủy kích hoạt việc ghi song song dữ liệu khối vào cơ sở dữ liệu liên tục nếu đặt thành 1. |
+| MULTICHANNEL | Tạo một kênh chuyên dụng để lan truyền khối nếu đặt thành 1. |
+| SUBPORT | Lắng nghe số cổng phụ nếu kích hoạt tùy chọn đa kênh. (Mặc định : "32324") |
+| NO_DISCOVER | Tắt tùy chọn Khám phá nếu đặt thành 1. |
+| BOOTNODE | Địa chỉ kni của các nút bootstrap phân tách bằng dấu phẩy. |
+| ADDITIONAL | Cho các tùy chọn dòng lệnh bổ sung. e.g) --txpool.nolocals |
+| DATA_DIR | Đường dẫn thư mục dữ liệu blockchain Klaytn. |
+| LOG_DIR | Đường dẫn thư mục bản ghi. |
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/genesis.md b/i18n/vi/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/genesis.md
similarity index 100%
rename from i18n/vi/docusaurus-plugin-content-docs/current/nodes/references/genesis.md
rename to i18n/vi/docusaurus-plugin-content-docs/current/nodes/service-chain/configure/genesis.md
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
index a29a31bb48a..6a8b34c0a56 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/admin.md
@@ -72,6 +72,53 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"ad
"protocols":{"istanbul":{"network":1000,"difficulty":1,"genesis":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d","config":{"chainId":1000,"istanbul":{"epoch":30000,"policy":0,"sub":7},"isBFT":true,"unitPrice":25000000000,"deriveShaImpl":0},"head":"0x06806bd8b1e086dfb7098a289da07037a3af58e793d205d20f61c88eeea9351d"}}}}
```
+## admin_nodeConfig
+
+The `nodeConfig` administrative property can be queried for all the configuration set for the running Klaytn node.
+
+| Client | Method invocation |
+|:-------:|-------------------------------------------|
+| Console | `admin.nodeConfig` |
+| RPC | `{"method": "admin_nodeConfig"}` |
+
+**Parameters**
+
+None
+
+**Return Value**
+
+| Type | Description |
+| --- | --- |
+| JSON string | The node configuration. |
+
+**Example**
+
+Console
+```javascript
+> admin.nodeConfig
+{
+ AnchoringPeriod: 0,
+ AutoRestartFlag: false,
+ DBType: "LevelDB",
+ DaemonPathFlag: "/klaytn-docker-pkg/bin/kend",
+ DisableUnsafeDebug: false,
+
+ ...
+
+ TxResendCount: 1000,
+ TxResendInterval: 4,
+ TxResendUseLegacy: false,
+ WorkerDisable: false,
+ WsEndpoint: "0.0.0.0:8552"
+}
+```
+
+HTTP RPC
+
+```shell
+$ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"admin_nodeConfig","id":1}' https://public-en-baobab.klaytn.net
+{"jsonrpc":"2.0","id":1,"result":{"Genesis":null,"NetworkId":1001,"SyncMode":"full","NoPruning":false,"WorkerDisable":false,"DownloaderDisable":false,"FetcherDisable":false,"ParentOperatorAddr":null,"AnchoringPeriod":0,"SentChainTxsLimit":0,"OverwriteGenesis":false,"StartBlockNumber":0,"DBType":"LevelDB","SkipBcVersionCheck":false,"SingleDB":false,"NumStateTrieShards":4,"EnableDBPerfMetrics":true,"LevelDBCompression":0,"LevelDBBufferPool":true,"LevelDBCacheSize":768,"DynamoDBConfig":{"TableName":"","Region":"ap-northeast-2","Endpoint":"","S3Endpoint":"","IsProvisioned":false,"ReadCapacityUnits":10000,"WriteCapacityUnits":10000,"ReadOnly":false,"PerfCheck":false},"RocksDBConfig":{"Secondary":false,"DumpMallocStat":false,"DisableMetrics":false,"CacheSize":768,"CompressionType":"lz4","BottommostCompressionType":"zstd","FilterPolicy":"ribbon","MaxOpenFiles":1024,"CacheIndexAndFilter":false},"TrieCacheSize":512,"TrieTimeout":300000000000,"TrieBlockInterval":128,"TriesInMemory":128,"LivePruning":false,"LivePruningRetention":172800,"SenderTxHashIndexing":false,"ParallelDBWrite":true,"TrieNodeCacheConfig":{"CacheType":"LocalCache","NumFetcherPrefetchWorker":32,"UseSnapshotForPrefetch":false,"LocalCacheSizeMiB":1024,"FastCacheFileDir":"/home/ubuntu/klaytn/data/fastcache","FastCacheSavePeriod":0,"RedisEndpoints":null,"RedisClusterEnable":false,"RedisPublishBlockEnable":false,"RedisSubscribeBlockEnable":false},"SnapshotCacheSize":0,"SnapshotAsyncGen":false,"ServiceChainSigner":"0x0000000000000000000000000000000000000000","ExtraData":null,"GasPrice":25000000000,"Rewardbase":"0x0000000000000000000000000000000000000000","TxPool":{"NoLocals":false,"AllowLocalAnchorTx":false,"DenyRemoteTx":false,"Journal":"/home/ubuntu/klaytn/data/klay/transactions.rlp","JournalInterval":3600000000000,"PriceLimit":1,"PriceBump":10,"ExecSlotsAccount":4096,"ExecSlotsAll":4096,"NonExecSlotsAccount":4096,"NonExecSlotsAll":4096,"KeepLocals":false,"Lifetime":300000000000,"NoAccountCreation":false,"EnableSpamThrottlerAtRuntime":false},"GPO":{"Blocks":20,"Percentile":60,"MaxHeaderHistory":1024,"MaxBlockHistory":1024,"Default":null},"EnablePreimageRecording":false,"EnableInternalTxTracing":false,"EnableOpDebug":false,"Istanbul":{"Timeout":10000,"BlockPeriod":1,"ProposerPolicy":0,"Epoch":30000,"SubGroupSize":21},"DocRoot":"","WsEndpoint":"0.0.0.0:8652","TxResendInterval":4,"TxResendCount":1000,"TxResendUseLegacy":false,"NoAccountCreation":false,"IsPrivate":false,"AutoRestartFlag":false,"RestartTimeOutFlag":900000000000,"DaemonPathFlag":"/home/ubuntu/klaytn/bin/kend","RPCGasCap":null,"RPCEVMTimeout":5000000000,"RPCTxFeeCap":0,"DisableUnsafeDebug":false,"StateRegenerationTimeLimit":60000000000}}
+```
## admin_datadir
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
index d77578770a1..46d288c0b01 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/debug/blockchain.md
@@ -341,11 +341,8 @@ $ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"de
{"jsonrpc":"2.0","id":1,"result":"(*types.Block)(0xc4355b05a0)(Block(#65120): Size: 2.95 kB {\nMinerHash: 7a5f8d37d34be6d9d19c5f161756d607da62227bb725ddb2f372682d7a9f1445\nHeader(e96d6477acfeba8ba865c315020471dcf751aa1bddca77f469334ab0492d218f):\n[\n\tParentHash: e768b5b7eeb1005fe130c26da744d47e042e9227cee675fa70c89ede38653aea\n\tCoinbase: 0000000000000000000000000000000000000000\n\tRewardbase: ... 0000000000000000000000000000000000000000\n\tRoot: 4fd68a8f550cbd9ad665bc1a8021882ced5e1859fd9e28a48cb2910532b6ef27\n\tTxSha: e3dbb8245038adcdc849de54af1d05f0c36c4c20d2710e31d525bd012d20a193\n\tReceiptSha: 212d4f453a897e2a486c86a4b120c1a850e89753865fe7f1aafa4"}
```
-
## debug_setHead
-**`WARNING`**: This API is not yet implemented and always returns "not yet implemented API" error.
-
Sets the current head of the local chain by block number.
**NOTE**: This is a destructive action and may severely damage your chain. Use with *extreme* caution.
@@ -360,7 +357,7 @@ Sets the current head of the local chain by block number.
| Tên | type | Mô tả |
| --- | ----- | ---------------------------------- |
-| số | chuỗi | Số khối trong chuỗi thập lục phân. |
+| number | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in the [default block parameter](../klay/block.md#the-default-block-parameter). |
**Return Value**
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
index 5ee40e500bc..82600c8b796 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/block.md
@@ -299,6 +299,50 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
}
```
+## eth_getBlockReceipts
+
+Returns receipts included in a block.
+
+**Parameters**
+| Type | Description |
+| --- | --- |
+| Number | 32-byte DATA | TAG | The block number or hash. Or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](#the-default-block-parameter). |
+
+**Return Value**
+
+Receipts included in a block. If the target block contains no transaction, an empty array `[]` is returned.
+
+**Example**
+
+```shell
+// Request
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"eth_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
+// Result
+{
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
+}
+```
## eth_getUncleByBlockHashAndIndex
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
index aec8f66ac28..f03f5f91859 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/gas.md
@@ -163,7 +163,9 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
Trả về đề xuất giới hạn tối đa phí gas trả thêm cho giao dịch phí biến đổi theo đơn vị peb.
-**LƯU Ý**: API này có hành vi khác với hành vi của Ethereum và trả về giá gas của Klaytn thay vì đề xuất giá gas như trong Ethereum.
+**LƯU Ý**: This API has different behavior from Ethereum's.
+Before Magma hardfork, it returns a gas price of Klaytn instead of suggesting a gas price as in Ethereum.
+After Magma hardfork, it just returns 0.
**Tham số**
@@ -184,7 +186,7 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
// Kết quả
{
"jsonrpc": "2.0",
- "id":1)
+ "id": 1,
"result": "0xAE9F7BCC00" // 250,000,000,000 peb = 250 ston (Gwei)
}
```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
index 0f9c0cef877..0be982cb6d7 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/eth/misc.md
@@ -162,4 +162,42 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_
}
```
+## eth_createAccessList
+This method creates an `accessList` based on a given `Transaction`.
+The `accessList` contains all storage slots and addresses read and written by the transaction, except for the sender account and the precompiles.
+This method uses the same transaction call object and `blockNumberOrTag` object as [`eth_call`](./transaction.md#eth_call).
+An accessList can be used to unstuck contracts that became inaccessible due to gas cost increases.
+Adding an `accessList` to your transaction does not necessary result in lower gas usage compared to a transaction without an access list.
+
+**Parameters**
+
+| Name | Type | Description |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | The transaction call object. Refer to [`eth_call`](./transaction.md#eth_call) for the object's properties. |
+| blockNumberOrTag | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](./block.md#the-default-block-parameter). The block number is mandatory and defines the context (state) against which the specified transaction should be executed. |
+
+**Return Value**
+
+| Type | Description |
+|-----------|--------------------------------------------------------------------------|
+| Object | Returns list of addresses and storage keys used by the transaction, plus the gas consumed when the access list is added. |
+
+**Example**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"eth_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
+```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
index 2f4dc786655..f79581cd482 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/block.md
@@ -282,12 +282,12 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
## klay_getBlockReceipts
-Trả về các biên lai được gộp vào khối được xác định bằng hàm băm khối.
+Trả lại biên lai bao gồm trong một khối.
**Tham số**
| Loại | Mô tả |
| --------------- | ------------ |
-| DỮ LIỆU 32 byte | Hàm băm khối |
+| Number | 32-byte DATA | TAG | The block number or hash. Or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](#the-default-block-parameter). |
**Giá trị trả về**
@@ -297,34 +297,32 @@ Biên lai có trong một khối. Nếu khối mục tiêu không chứa giao d
```shell
// Request
-curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30"],"id":73}' https://public-en-baobab.klaytn.net
+curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0", "method":"klay_getBlockReceipts", "params":["0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1"],"id":1}' https://public-en-baobab.klaytn.net
// Result
{
- "jsonrpc":"2.0",
- "id":73,
- "result":[{
- "blockHash":"0xdc762ed0274496e2a42278e2648d910d82468687b5415bb5eb058a96a0b93c30",
- "blockNumber":"0x3ba38",
- "contractAddress":null,
- "effectiveGasPrice":"0x5d21dba00",
- "from":"0x16b11cf9c2186a117b0da38315b42b1eaa03bbe5",
- "gas":"0x30d40",
- "gasPrice":"0xba43b7400",
- "gasUsed":"0x1886c",
- "nhật ký":[],
- "nhật kýBloom":"0x00000000000000000000000000000000008000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000040000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
- "nonce":"0x58e",
- "senderTxHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "signatures":["0x7f6","0x50b2b0f95b8a6d7018369b1933d6cebb52ef119463d1840a6181d05bf8fc29d8","0x329630f88d9d06c5f1bd7644dbf6bd6b92e4ab0e3d47122972f8294c9289e7bb"],
- "trạng thái":"0x1",
- "to":"0xdbb98c72e9818ad2c93a09e35ad43ada0d4223f0",
- "transactionHash":"0x234469b3d3222657c98904deaba7ec6613161ea9405275025f4784a4d9918af5",
- "transactionIndex":"0x0",
- "type":"TxTypeValueTransfer",
- "typeInt":8,
- "value":"0x21e19e0c9bab2400000"
- }
+ "jsonrpc": "2.0",
+ "id": 1,
+ "result": [
+ {
+ "blockHash": "0xb14e8716f732186f2c99bb7a215a7cb1ec40e91e8d83739bfb593ed4b9047aa1",
+ "blockNumber": "0x85ef20d",
+ "contractAddress": null,
+ "cumulativeGasUsed": "0x23b6e",
+ "effectiveGasPrice": "0x5d21dba00",
+ "from": "0x60d690e4d5db4025f4781c6cf3bff8669500823c",
+ "gasUsed": "0x23b6e",
+ "logs": [
+ ...
+ ],
+ "logsBloom": "0x00000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000220000000400000000000000000000000000000000000002000000000010001000000000040000000000000000000000000000000000000000000000000000400000080000000100000000000000000000000000000000000000000000480000000000000000000000010000000001000000000000000000000000000000000000000000009000000000000000000000000000000000000000008000000000000000004000000000004000000000000000000000000000000000000000000000000000000000000000200",
+ "status": "0x1",
+ "to": "0x27e1255f2a0ea596992158a0bc838f43be34b99d",
+ "transactionHash": "0xafd15213b06144a85dd02adf88c32efb3d395e784f153c213a40b7ea25de1942",
+ "transactionIndex": "0x0",
+ "type": "0x0"
+ }
+ ]
}
```
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
index e87f1195235..c7696301b6f 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/json-rpc/klay/misc.md
@@ -150,3 +150,44 @@ curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay
}
}
```
+
+## klay_createAccessList
+
+This method creates an `accessList` based on a given `Transaction`.
+The `accessList` contains all storage slots and addresses read and written by the transaction, except for the sender account and the precompiles.
+This method uses the same transaction call object and `blockNumberOrTag` object as [`klay_call`](./transaction.md#klay_call).
+An accessList can be used to unstuck contracts that became inaccessible due to gas cost increases.
+Adding an `accessList` to your transaction does not necessary result in lower gas usage compared to a transaction without an access list.
+
+**Parameters**
+
+| Name | Type | Description |
+|------------------|---------------------|----------------------------------------------------------------------------------------------------------|
+| callObject | Object | The transaction call object. Refer to [`klay_call`](./transaction.md#klay_call) for the object's properties. |
+| blockNumberOrTag | QUANTITY | TAG | Integer or hexadecimal block number, or the string `"earliest"`, `"latest"` or `"pending"` as in [default block parameter](./block.md#the-default-block-parameter). The block number is mandatory and defines the context (state) against which the specified transaction should be executed. |
+
+**Return Value**
+
+| Type | Description |
+|-----------|--------------------------------------------------------------------------|
+| Object | Returns list of addresses and storage keys used by the transaction, plus the gas consumed when the access list is added. |
+
+**Example**
+
+```shell
+// Request
+curl -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"klay_createAccessList", "params": [{"from": "0x8cd02c6cbd8375b39b06577f8d50c51d86e8d5cd", "data": "0x608060806080608155"}, "latest"], "id":1}' http://localhost:8551
+
+// Result
+{
+ "jsonrpc": "2.0",
+ "id":1,
+ "result": {
+ "accessList": [{
+ "address": "0xa02457e5dfd32bda5fc7e1f1b008aa5979568150",
+ "storageKeys": ["0x0000000000000000000000000000000000000000000000000000000000000081"]
+ }],
+ "gasUsed": "0x128ee"
+ }
+}
+```
\ No newline at end of file
diff --git a/i18n/vi/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md b/i18n/vi/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
index 44370e98ec1..618113bd3a9 100644
--- a/i18n/vi/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
+++ b/i18n/vi/docusaurus-plugin-content-docs/current/references/sdk/caver-js-1.4.1/api/caver.klay/config.md
@@ -190,7 +190,7 @@ true
caver.klay.rewardbase([callback])
```
-Trả về địa chỉ ví rewardbase của nút hiện tại. Rewardbase là địa chỉ của tài khoản mà các phần thưởng khối được chuyển đến. Chỉ có các nút đồng thuận (CN) Klaytn mới có địa chỉ ví rewardbase trong cấu hình của nút. Xem [Tập tin cấu hình](../../../../../nodes/references/configuration-files.md).
+Trả về địa chỉ ví rewardbase của nút hiện tại. Rewardbase là địa chỉ của tài khoản mà các phần thưởng khối được chuyển đến. Chỉ có các nút đồng thuận (CN) Klaytn mới có địa chỉ ví rewardbase trong cấu hình của nút. Xem [Tập tin cấu hình](../../../../../misc/operation/configuration.md).
**Tham số**
diff --git a/i18n/vi/docusaurus-theme-classic/footer.json b/i18n/vi/docusaurus-theme-classic/footer.json
index 1b3fc8baf6a..925d36191c5 100644
--- a/i18n/vi/docusaurus-theme-classic/footer.json
+++ b/i18n/vi/docusaurus-theme-classic/footer.json
@@ -1,14 +1,14 @@
{
"link.title.Sites": {
- "message": "Sites",
+ "message": "Trang web",
"description": "The title of the footer links column with title=Sites in the footer"
},
"link.title.Community": {
- "message": "Community",
+ "message": "Cộng đồng",
"description": "The title of the footer links column with title=Community in the footer"
},
"link.title.More": {
- "message": "More",
+ "message": "Thêm",
"description": "The title of the footer links column with title=More in the footer"
},
"link.item.label.Klaytn Square": {
diff --git a/i18n/vi/docusaurus-theme-classic/navbar.json b/i18n/vi/docusaurus-theme-classic/navbar.json
index 396b9b2a716..2fd974f2590 100644
--- a/i18n/vi/docusaurus-theme-classic/navbar.json
+++ b/i18n/vi/docusaurus-theme-classic/navbar.json
@@ -1,6 +1,6 @@
{
"title": {
- "message": "Klaytn Docs",
+ "message": "Klaytn Tài liệu",
"description": "The title in the navbar"
},
"logo.alt": {
@@ -8,11 +8,11 @@
"description": "The alt text of navbar logo"
},
"item.label.Learn": {
- "message": "Learn",
+ "message": "Giới thiệu",
"description": "Navbar item with label Learn"
},
"item.label.Build": {
- "message": "Build",
+ "message": "Xây Dựng",
"description": "Navbar item with label Build"
},
"item.label.Nodes": {
@@ -20,7 +20,7 @@
"description": "Navbar item with label Nodes"
},
"item.label.References": {
- "message": "References",
+ "message": "Tham khảo",
"description": "Navbar item with label References"
}
}
diff --git a/sidebars.js b/sidebars.js
index 3897e010642..425bafa7022 100644
--- a/sidebars.js
+++ b/sidebars.js
@@ -24,6 +24,20 @@ const commonSidebar = [
type: 'html',
value: '',
},
+ {
+ type: 'category',
+ label: 'Operation Guide',
+ link: {type: 'doc', id: 'misc/operation/operation'},
+ items: [
+ 'misc/operation/configuration',
+ 'misc/operation/node-log',
+ 'misc/operation/log-management',
+ 'misc/operation/klaytn-command',
+ 'misc/operation/troubleshooting',
+ 'misc/operation/chaindata-change',
+ 'misc/operation/chaindata-migration',
+ ],
+ },
'misc/klaytn-history',
'misc/faq',
'misc/opensource',
@@ -131,6 +145,7 @@ const sidebars = {
link: {type: 'doc', id: 'build/smart-contracts/deploy/deploy'},
items: [
'build/smart-contracts/deploy/foundry',
+ 'build/smart-contracts/deploy/thirdweb',
'build/smart-contracts/deploy/ken',
],
},
@@ -228,6 +243,7 @@ const sidebars = {
'build/tools/wallets/wallet-libraries/web3Auth',
'build/tools/wallets/wallet-libraries/web3Modal',
'build/tools/wallets/wallet-libraries/web3Onboard',
+ 'build/tools/wallets/wallet-libraries/particle',
],
},
],
@@ -285,6 +301,8 @@ const sidebars = {
items: [
'nodes/endpoint-node/system-requirements',
'nodes/endpoint-node/install-endpoint-nodes',
+ 'nodes/endpoint-node/ken-cli-commands',
+ 'nodes/endpoint-node/json-rpc-apis',
],
},
{
@@ -337,6 +355,8 @@ const sidebars = {
'nodes/service-chain/configure/anchoring',
'nodes/service-chain/configure/kas-anchoring',
'nodes/service-chain/configure/value-transfer',
+ 'nodes/service-chain/configure/configuration-files',
+ 'nodes/service-chain/configure/genesis',
],
},
'nodes/service-chain/upgrade-and-hard-fork',
@@ -347,6 +367,7 @@ const sidebars = {
label: 'Node Package Downloads',
link: {type: 'doc', id: 'nodes/downloads/downloads'},
items: [
+ 'nodes/downloads/v1.12.0',
'nodes/downloads/v1.11.1',
'nodes/downloads/v1.11.0',
'nodes/downloads/v1.10.2',
@@ -380,19 +401,6 @@ const sidebars = {
'nodes/downloads/v0.8.2',
],
},
- 'nodes/node-migration',
- {
- type: 'category',
- label: 'Node References',
- link: {type: 'doc', id: 'nodes/references/references'},
- items: [
- 'nodes/references/configuration-files',
- 'nodes/references/genesis',
- 'nodes/references/klaytn-command',
- 'nodes/references/node-logs',
- 'nodes/references/troubleshooting',
- ],
- },
...commonSidebar,
],
refSidebar: [
@@ -478,133 +486,139 @@ const sidebars = {
items: [
{
type: 'category',
- label: 'caver-js (1.5.0 or later)',
- link: {type: 'doc', id: 'references/sdk/caver-js/caver-js'},
+ label: 'caver',
items: [
- 'references/sdk/caver-js/get-started',
- 'references/sdk/caver-js/send-transaction',
{
type: 'category',
- label: 'API References',
- link: {type: 'doc', id: 'references/sdk/caver-js/api/api'},
+ label: 'caver-js (1.5.0 or later)',
+ link: {type: 'doc', id: 'references/sdk/caver-js/caver-js'},
items: [
- 'references/sdk/caver-js/api/caver.account',
- {
- type: 'category',
- label: 'caver.wallet',
- link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-wallet/caver-wallet'},
- items: [
- 'references/sdk/caver-js/api/caver-wallet/keyring',
- ],
- },
- {
- type: 'category',
- label: 'caver.transaction',
- link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-transaction/caver-transaction'},
- items: [
- 'references/sdk/caver-js/api/caver-transaction/basic',
- 'references/sdk/caver-js/api/caver-transaction/fee-delegation',
- 'references/sdk/caver-js/api/caver-transaction/partial-fee-delegation',
- ],
- },
+ 'references/sdk/caver-js/get-started',
+ 'references/sdk/caver-js/send-transaction',
{
type: 'category',
- label: 'caver.rpc',
- link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-rpc/caver-rpc'},
+ label: 'API References',
+ link: {type: 'doc', id: 'references/sdk/caver-js/api/api'},
items: [
- 'references/sdk/caver-js/api/caver-rpc/governance',
- 'references/sdk/caver-js/api/caver-rpc/klay',
- 'references/sdk/caver-js/api/caver-rpc/net',
- ],
- },
- 'references/sdk/caver-js/api/caver.contract',
- 'references/sdk/caver-js/api/caver.abi',
- {
- type: 'category',
- label: 'caver.rpc',
- link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-kct/caver-kct'},
- items: [
- 'references/sdk/caver-js/api/caver-kct/kip7',
- 'references/sdk/caver-js/api/caver-kct/kip17',
- 'references/sdk/caver-js/api/caver-kct/kip37',
+ 'references/sdk/caver-js/api/caver.account',
+ {
+ type: 'category',
+ label: 'caver.wallet',
+ link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-wallet/caver-wallet'},
+ items: [
+ 'references/sdk/caver-js/api/caver-wallet/keyring',
+ ],
+ },
+ {
+ type: 'category',
+ label: 'caver.transaction',
+ link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-transaction/caver-transaction'},
+ items: [
+ 'references/sdk/caver-js/api/caver-transaction/basic',
+ 'references/sdk/caver-js/api/caver-transaction/fee-delegation',
+ 'references/sdk/caver-js/api/caver-transaction/partial-fee-delegation',
+ ],
+ },
+ {
+ type: 'category',
+ label: 'caver.rpc',
+ link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-rpc/caver-rpc'},
+ items: [
+ 'references/sdk/caver-js/api/caver-rpc/governance',
+ 'references/sdk/caver-js/api/caver-rpc/klay',
+ 'references/sdk/caver-js/api/caver-rpc/net',
+ ],
+ },
+ 'references/sdk/caver-js/api/caver.contract',
+ 'references/sdk/caver-js/api/caver.abi',
+ {
+ type: 'category',
+ label: 'caver.rpc',
+ link: {type: 'doc', id: 'references/sdk/caver-js/api/caver-kct/caver-kct'},
+ items: [
+ 'references/sdk/caver-js/api/caver-kct/kip7',
+ 'references/sdk/caver-js/api/caver-kct/kip17',
+ 'references/sdk/caver-js/api/caver-kct/kip37',
+ ],
+ },
+ 'references/sdk/caver-js/api/caver.validator',
+ 'references/sdk/caver-js/api/caver.utils',
+ 'references/sdk/caver-js/api/caver.ipfs',
],
},
- 'references/sdk/caver-js/api/caver.validator',
- 'references/sdk/caver-js/api/caver.utils',
- 'references/sdk/caver-js/api/caver.ipfs',
],
},
- ],
- },
- {
- type: 'category',
- label: 'caver-js (1.4.1 or earlier)',
- link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/caver-js-1.4.1'},
- items: [
- 'references/sdk/caver-js-1.4.1/get-started-1.4.1',
{
type: 'category',
- label: 'API References',
- link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/api'},
+ label: 'caver-js (1.4.1 or earlier)',
+ link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/caver-js-1.4.1'},
items: [
+ 'references/sdk/caver-js-1.4.1/get-started-1.4.1',
{
type: 'category',
- label: 'caver.klay',
- link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/caver.klay/caver.klay'},
+ label: 'API References',
+ link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/api'},
items: [
- 'references/sdk/caver-js-1.4.1/api/caver.klay/account',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/block',
{
type: 'category',
- label: 'Transaction',
- link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/transaction'},
+ label: 'caver.klay',
+ link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/caver.klay/caver.klay'},
items: [
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-legacy',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-value-transfer',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-value-transfer-memo',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-account-update',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-smart-contract-deploy',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-smart-contract-execution',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-cancel',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/account',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/block',
+ {
+ type: 'category',
+ label: 'Transaction',
+ link: {type: 'doc', id: 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/transaction'},
+ items: [
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-legacy',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-value-transfer',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-value-transfer-memo',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-account-update',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-smart-contract-deploy',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-smart-contract-execution',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/transaction/sendtx-cancel',
+ ],
+ },
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/config',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/filter',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay/misc',
],
},
- 'references/sdk/caver-js-1.4.1/api/caver.klay/config',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/filter',
- 'references/sdk/caver-js-1.4.1/api/caver.klay/misc',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.net',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.accounts',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.Contract',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.KIP7',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.KIP17',
+ 'references/sdk/caver-js-1.4.1/api/caver.klay.abi',
+ 'references/sdk/caver-js-1.4.1/api/caver.utils_1.4.1',
],
},
- 'references/sdk/caver-js-1.4.1/api/caver.klay.net',
- 'references/sdk/caver-js-1.4.1/api/caver.klay.accounts',
- 'references/sdk/caver-js-1.4.1/api/caver.klay.Contract',
- 'references/sdk/caver-js-1.4.1/api/caver.klay.KIP7',
- 'references/sdk/caver-js-1.4.1/api/caver.klay.KIP17',
- 'references/sdk/caver-js-1.4.1/api/caver.klay.abi',
- 'references/sdk/caver-js-1.4.1/api/caver.utils_1.4.1',
+ 'references/sdk/caver-js-1.4.1/porting-from-web3.js',
],
},
- 'references/sdk/caver-js-1.4.1/porting-from-web3.js',
- ],
- },
- {
- type: 'category',
- label: 'caver-java (1.5.0 or later)',
- link: {type: 'doc', id: 'references/sdk/caver-java/caver-java'},
- items: [
- 'references/sdk/caver-java/get-started',
{
- type: 'link',
- label: 'API References',
- href: 'https://javadoc.io/doc/com.klaytn.caver/core/',
+ type: 'category',
+ label: 'caver-java (1.5.0 or later)',
+ link: {type: 'doc', id: 'references/sdk/caver-java/caver-java'},
+ items: [
+ 'references/sdk/caver-java/get-started',
+ {
+ type: 'link',
+ label: 'API References',
+ href: 'https://javadoc.io/doc/com.klaytn.caver/core/',
+ },
+ ],
+ },
+ {
+ type: 'category',
+ label: 'caver-java (1.4.0 or earlier)',
+ link: {type: 'doc', id: 'references/sdk/caver-java-1.4.0/caver-java-1.4.0'},
+ items: [
+ 'references/sdk/caver-java-1.4.0/getting-started-1.4.0',
+ 'references/sdk/caver-java-1.4.0/porting-from-web3j',
+ ],
},
- ],
- },
- {
- type: 'category',
- label: 'caver-java (1.4.0 or earlier)',
- link: {type: 'doc', id: 'references/sdk/caver-java-1.4.0/caver-java-1.4.0'},
- items: [
- 'references/sdk/caver-java-1.4.0/getting-started-1.4.0',
- 'references/sdk/caver-java-1.4.0/porting-from-web3j',
],
},
'references/sdk/ether-js',
diff --git a/src/css/custom.css b/src/css/custom.css
index 6df6aa51a29..471b88a905b 100644
--- a/src/css/custom.css
+++ b/src/css/custom.css
@@ -37,4 +37,22 @@
html[data-theme='dark'] .sidebar-divider {
border-top: 1px solid var(--ifm-color-gray-800);
+}
+
+.header-github-link:hover {
+ opacity: 0.6;
+}
+
+.header-github-link::before {
+ content: '';
+ width: 24px;
+ height: 24px;
+ display: flex;
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
+ no-repeat;
+}
+
+[data-theme='dark'] .header-github-link::before {
+ background: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill='white' d='M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")
+ no-repeat;
}
\ No newline at end of file
diff --git a/static/img/build/get-started/klaytnXthirdweb.png b/static/img/build/get-started/klaytnXthirdweb.png
new file mode 100644
index 00000000000..ab3dec8fd05
Binary files /dev/null and b/static/img/build/get-started/klaytnXthirdweb.png differ
diff --git a/static/img/build/get-started/marketplace-contract-details.png b/static/img/build/get-started/marketplace-contract-details.png
new file mode 100644
index 00000000000..e80a606d39d
Binary files /dev/null and b/static/img/build/get-started/marketplace-contract-details.png differ
diff --git a/static/img/build/get-started/marketplace-deploy.png b/static/img/build/get-started/marketplace-deploy.png
new file mode 100644
index 00000000000..6cd4d61e4e4
Binary files /dev/null and b/static/img/build/get-started/marketplace-deploy.png differ
diff --git a/static/img/build/get-started/marketplace-deployed.png b/static/img/build/get-started/marketplace-deployed.png
new file mode 100644
index 00000000000..aab2bff0a78
Binary files /dev/null and b/static/img/build/get-started/marketplace-deployed.png differ
diff --git a/static/img/build/get-started/marketplace-explore.png b/static/img/build/get-started/marketplace-explore.png
new file mode 100644
index 00000000000..baade1eaa8e
Binary files /dev/null and b/static/img/build/get-started/marketplace-explore.png differ
diff --git a/static/img/build/get-started/nft-collection-deploy.png b/static/img/build/get-started/nft-collection-deploy.png
new file mode 100644
index 00000000000..65ab27ccbde
Binary files /dev/null and b/static/img/build/get-started/nft-collection-deploy.png differ
diff --git a/static/img/build/get-started/puppy-mint-btn.png b/static/img/build/get-started/puppy-mint-btn.png
new file mode 100644
index 00000000000..54eb92b3c08
Binary files /dev/null and b/static/img/build/get-started/puppy-mint-btn.png differ
diff --git a/static/img/build/get-started/puppy-mint-details.png b/static/img/build/get-started/puppy-mint-details.png
new file mode 100644
index 00000000000..00a1f85e6c9
Binary files /dev/null and b/static/img/build/get-started/puppy-mint-details.png differ
diff --git a/static/img/build/get-started/puppy-minted.png b/static/img/build/get-started/puppy-minted.png
new file mode 100644
index 00000000000..09ba7f840b7
Binary files /dev/null and b/static/img/build/get-started/puppy-minted.png differ
diff --git a/static/img/build/get-started/puppy-transferfrom.png b/static/img/build/get-started/puppy-transferfrom.png
new file mode 100644
index 00000000000..17f6aafd8fb
Binary files /dev/null and b/static/img/build/get-started/puppy-transferfrom.png differ
diff --git a/static/img/build/get-started/thirdweb-cli-info.png b/static/img/build/get-started/thirdweb-cli-info.png
new file mode 100644
index 00000000000..a7b4c1204f7
Binary files /dev/null and b/static/img/build/get-started/thirdweb-cli-info.png differ
diff --git a/static/img/build/tools/particle.png b/static/img/build/tools/particle.png
new file mode 100644
index 00000000000..93e6e4ec253
Binary files /dev/null and b/static/img/build/tools/particle.png differ