Klaytn

서비스형 엔터프라이즈 블록체인 플랫폼

home link https://www.klaytn.com/

reference material

Community

Exchanges that listed the coin
-
Symbol
KLAY
Dapp
1
Project introduction

Kakao’s global public blockchain project Klaytn is an enterprise-grade, service-centric platform that brings user-friendly blockchain experience to millions. It combines the best features of both public blockchains (decentralized data & control, distributed governance) and private blockchains (low latency, high scalability) via an efficient 'hybrid' design. Klaytn is secured by participation from numerous highly-reputable brands around the globe, working together to create a reliable business platform atop a robust system of decentralized trust. Klaytn enables businesses and entrepreneurs today to capture value using blockchain technology. Klaytn is the future, designed by Ground X.

Executives and partners

Jaesun Han

CEO

Junho Cho

Head of Technology

Sangeon Bae

Head of Product Management

Youngjun Lim

Head of Business

Myeongjin Jeong

Head of Operations

#Hashed

Kakao Investment

Medium

[공지] Klaytn SDK caver-js v1...

Klaytn SDK caver-js v1.6.1이 릴리즈되었습니다.Caver-js v1.6.1의 caver.contract에서는 수수료 대납을 지원합니다. 사용자는 함수의 파라미터로 전달되는 options 오브젝트나 contract.options에 수수료 대납과 관련된 필드를 추가적으로 정의함으로써 수수료 대납 기능을 caver.contract에서 사용할 수 있습니다. 또한 sign과 signAsFeePayer 함수를 추가 제공하여, 특정 스마트 컨트랙트를 배포 혹은 실행할 목적으로 서명된 트랜잭션을 구할 수 있습니다. Klaytn SDK의 사용성을 맞추기 위해 제공되는 create 함수도 마찬가지로 caver-js v1.6.1에서 활용 가능합니다.options의 수수료 대납 필드 추가 지원트랜잭션을 생성할 때에 사용되는 값을 정의한 오브젝트에 feeDelegation, feePayer 그리고 feeRatio가 추가적으로 정의될 수 있습니다.서명 함수 추가 지원Caver-js v1.6.1에서는 contract.sign, contract.signAsFeePayer, contract.methods.methodName.sign 그리고 contract.methods.methodName.signAsFeePayer가 추가적으로 지원됩니다.수수료 대납 모델 지원Caver-js v1.6.1에서는 contract 메소드의 파라미터로 전달되는 options 오브젝트, 혹은 contract.options에 수수료 대납과 관련된 필드를 정의하여 수수료 대납 모델을 사용할 수 있습니다.create 함수 제공Caver-js v1.6.1에서는 Klaytn SDK의 사용성을 동일하게 제공하기 위하여 생성자 함수를 대신할 수 있는 create 함수를 제공합니다.Caver-js v1.6.1에 대한 더욱 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/klaytn/caver-js/releases/tag/v1.6.1.Caver-js 패키지는 다음 링크에서 다운로드할 수 있습니다.https://www.npmjs.com/package/caver-js/v/1.6.1.[공지] Klaytn SDK caver-js v1.6.1 릴리즈 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 14

[Notice] Klaytn SDK caver-j...

Today we are excited to announce that the caver-js (Javascript Software Development Kit of Klaytn) v1.6.1 has just been released.caver.contract of caver-js v1.6.1 supports the fee delegation model. Users can use fee delegation in the caver.contract by additionally defining fields related to the fee delegation in the options object delivered as a parameter of the function or in the contract.options. In addition, the sign and signAsFeePayer functions are additionally provided to obtain a signed transaction to deploy or execute a specific smart contract. The create function provided for the usability of Klaytn SDK is also available in caver-js v1.6.1.Supported additional fields for fee delegation in optionsfeeDelegation, feePayer and feeRatio can be additionally defined in the object where the values used for creating a transaction are defined.Supported signing functions in caver.contractIn caver-js v1.6.1, contract.sign, contract.signAsFeePayer, contract.methods.methodName.sign and contract.methods.methodName.signAsFeePayer are additionally supported.Supported fee-delegation model in caver.contractIn caver-js v1.6.1, you can use the fee delegation model by defining fields related to fee delegation in the options object delivered as a parameter of the contract method or contract.options.Provided create functionCaver-js v1.6.1 provides the create functions that can replace the constructor functions in order to provide the same usability of Klaytn SDK.For detailed information about caver-js v1.6.1, please refer to https://github.com/klaytn/caver-js/releases/tag/v1.6.1.To download caver-js, please visit https://www.npmjs.com/package/caver-js/v/1.6.1.[Notice] Klaytn SDK caver-js v1.6.1 Released was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 14

Klaytn Usability Improvemen...

See the list of articles here.🇰🇷: Klaytn 사용성 개선 #4: 플랫폼에서의 role-based key 지원Improving the usability of the blockchain platform has been one of Klaytn’s priorities. In this series of posts, we will walk you through the journey of improving the usability.Separating Keys and AddressesIntroducing Multisig on the Platform-LevelFee DelegationSupporting Role-Based Keys on the Platform-LevelImplementing Explicit Types for Accounts and TransactionsIn our last article, we took a look at a feature called Fee Delegation, which could enable blockchain services that offer the same level of user experience as existing services. In this post, we will be talking about role-based keys.An account on Klaytn fulfills the following functions:KLAY transferSmart contract deploymentSmart contract executionAccount information updateFee delegationWhat if we could use different keys for different functions? If we allow separate keys for features added on Klaytn, there could emerge new, diverse use cases. It was to this end that Klaytn designed and implemented role-based keys. We assigned roles for each function and designed so that different keys could be used for different roles. For a more in-depth explanation on Role-Based Keys, please refer to KlaytnDocs.A Key Just For Fee DelegationA service developer can consider paying for the user’s transaction fees using the Fee Delegation feature on Klaytn. But doing so would require that the operator of the Fee Delegation be given rights to transfer balances from the account, but you can’t just leave your account with a lot of balances to the operator. So, the simplest solution would be to manage a separate Fee Delegation account and continuously have it filled in with the necessary amount.But this approach has its downside; namely that you need to manage a separate account and check account balances on a regular basis for refill. Using Role-Based Key on Klaytn solves this problem by allowing the management of a Fee Delegation account with just one account. Here is a picture for clarification:The administrator of the account first takes the key for RoleTransaction. This key gives him the right to transfer balances of the account. The key for RoleFeePayer is given to the operator of the Fee Delegation. Since this key can let you pay for a transaction fee on others’ behalf, it can allow the operator to receive the users’ transactions and pay for their transaction fees. But since the key doesn’t allow transfer of balances, you can’t send it to another person. With this solution, you are spared of the inconveniences of owning a separate account, nor have to regularly check balances.Recovering User AccountA big obstacle in using blockchains is the private management of keys. But with Role-Based Keys, we can create scenarios where the users can recover their accounts. Let’s take a deeper look with the image below.The service developers first take RoleAccountUpdate key while issuing the accounts of individuals. The users are given a key for RoleTransaction. Users can send tokens, execute smart contracts using the RoleTransaction key. And if the key gets lost, service developers can reissue the RoleTransaction using RoleAccountUpdate key.With the new key, the user can seamlessly continue using the services, as if nothing happened.If you provide the new keys to the user, he or she can continue using the services with the account.In this article we looked at two cases using role-based keys. We hope role-based keys encourage the development of more services that make using blockchain easier. We expect more use cases in various service areas using this feature.In our next article of the usability improvement series, we will take a look at the improvement implemented for Klaytn account and transaction types. Thank you for reading, and stay tuned!Klaytn Usability Improvement Series #4: Supporting Role-Based Keys on the Platform-Level was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 13

Klaytn Usability Improvemen...

See the list of articles here.🇰🇷: Klaytn 사용성 개선 #3: 대납 기능Improving the usability of our blockchain platform has been one of Klaytn’s top priorities. In this series of posts, we will take a look at some of the improvements that have been implemented to this end.Separating Keyes and AddressesIntroducing Multisig on the Platform-LevelFee DelegationSupporting Role-Based Keys on the Platform-LevelImplementing Explicit Types for Accounts and TransactionsIn the last post we talked about implementing multisig on a platform level. In this post, we will be introducing fee delegation.As you may well know, most blockchain platforms have transaction fees. For every transaction, the sender pays for the cost incurred for its execution. Transactions create computational and storage costs on the part of the blockchain network, so having users assume some of the burden doesn’t seem to be too unreasonable. But from the users’ perspective, having to pay for every single action is far from an ideal user experience.If we think about it, it’s mostly the service providers that willingly foot the bill in order to attract more users. For example, if we had to pay everytime we sent a Tweet or shared a story on Facebook, nobody would be as enthusiastic as they are now to use these services. So, if this is something that evidently goes against common user experience, why should it be the norm for blockchain?Klaytn found this to be a severe inconvenience from the users’ perspective. And as a solution, we offer the so-called “fee delegation”, which basically means that the service providers will be paying for the transaction fees on behalf of the users.Implementing Fee Delegation is very simple. After a transaction is created, the sender signs it, after which the service provider (FeePayer) signs it. Let’s say that the transaction is a KLAY transfer, a certain amount of KLAY would be sent from the sender to the receiver, and the transaction fee of this transaction will be covered by the service provider. Let’s look at the data structure of this transaction in more detail:Fee payer address and fee payer signature fields have been added to the existing transaction data structure. It is on the basis of these fields that the fee payer will be charged. And of course, if the fee payer signature doesn’t correspond with the signature of the fee payer address, the transaction will be considered invalid.Fee Delegation exists for all types of Klaytn transactions. For more details on all transactions with fee delegation, please refer to KlaytnDocs/Transactions.In addition, it is also possible to delegate just a certain portion of the fees. For example, the service provider could choose to pay 70% of the transaction fee while letting the sender pay the rest.Fee Delegation allows the service providers to devise various strategies to attract and retain users. You can think of different billing plans, such as assuming the entire transaction fee, or paying partially, during a certain period or up to a certain number of transactions. This can be very helpful in acquiring new users.We expect that Fee Delegation will promote the development of various blockchain services without compromising user experience.In this post we introduced Fee Delegation. In the next post, we will take a look at role-based keys, which allows you to use separate keys for the different functions of an account. Thank you for reading, and stay tuned!Klaytn Usability Improvement Series #3: Fee Delegation was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 12

Klaytn Quarter 1 Milestones...

It’s been a very eventful year for the crypto space in general, and also for our beloved Klaytn. We have reached many milestones in product development, partnerships, as well as being recognized by the crypto industry and community as a whole. As Klaytn continues to achieve one milestone after another, we feel it’s time to showcase our Q1 achievements for the whole world to see:International Media CoverageFeb 2 — Forbes announces Klaytn in the top 50 blockchain companies for 2021Mar 28 — Cointelegraph places Klaytn on top 5 cryptocurrencies to watch for the weekMar 29 — Klaytn ranks 13th on CMC after reaching a new ATHLocal Media CoverageFeb 17 — Mar 31 Korean Economic Daily Joins the Klaytn Governance Council / Korean Economic Daily-Klaytn Marketing EventToken MilestonesMar 27- Klaytn DeFi Ecosystem(KLAYSwap) surpassing 1billion TVLMar 30 — Klay market capitalization approaches KRW 50 trillion, beyond Kakao’s corporate valueMar 31 — FiveStar for Klaytn LaunchDevelopmentFeb 1 — KAS SDK (caver-js-ext-kas, caver-java-ext-kas) v1.1.0 ReleasedFeb 24 — Klaytn SDK (caver-js, caver-java) v1.5.7 ReleasedMar 2 — Klaytn v1.6.0 ReleasedMar 15 — Klaytn SDK caver-js v1.6.0 ReleasedAnd finally, as they say, a picture is worth a thousand words…And…congratulations! You’ve reached the end, but be aware, as Klaytn isn’t anywhere near the finish line, on the contrary- this is just the beginning!We have many more surprises in store for you, so don’t hesitate and follow us on our social media, for the latest updates:TwitterMediumRedditLinkedInKlaytn Quarter 1 Milestones Report was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 09

Klaytn State Trie Cache Ser...

See the list of articles here.🇰🇷: Klaytn State Trie Cache Series #4: Cache Size Tuning 하기Klaytn has been putting a lot of effort to improve the performance of our blockchain platform. In this series of articles, we want to walk you through the process of enhancing state trie cache performance.Identifying the Cache ProblemSearching for the Optimal CacheCalculating state trie cache missesTuning Cache SizeIn our last post, we tested our hypothesis that the factors that influence cache misses are the changing state trie size (TotalAccounts, ActiveAccounts, TPS, trie node size) and cache size. But finding the optimal cache size by figuring out the changing state trie size requires a lot of research, so a more viable way to decrease cache misses was to find the optimal cache size for a given physical memory. In this article, we will take a look at how the optimal cache size can be found.The following table shows the result for Fastcache before tuning, where it has the same cache size as Bigcache, and after tuning, with a bigger cache size to have a similar amount of free memory. After the experimentation, we found the proper cache size of Fastcache that has a similar amount of free memory as Bigcache. We then applied the proper cache size to after tuning.Cache size is a selected value, whereas used memory and free memory are testing results.After the above test, the physical memory was scaled based on the size of the Fastcache and the cache size was automatically allocated. Here is the algorithm for the said scaling:if physicalMemMB < 20 * 1024 { cacheSizeMB := 1 * 1024} else if physicalMemMB < 100 * 1024 { cacheSizeMB := physicalMemMB * 0.3} else { cacheSizeMB := physicalMemMB * 0.35}In order to secure 10GB of free memory for memory sizes less than 20GB, we fixed the cache size to 1GB. For memories over 20GB and less than 100GB, 30% of the physical memory is being allocated, and there are about 10GB of free space for m5.2xlarge. For memories over 100GB, 35% of the physical memory is being allocated, and there are about 44.5GB of free space for c5.18xlarge.The above test has been conducted with a lot of accounts and transactions, so it can still function with more memory allocations. But calling an API or a contract can lead to increased memory usage. So we ensured there was sufficient space in order to prevent OOM.[Note] The server requirement for Klaytn is m5.2xlarge.If we allocate cache size to Fastcache through the scaling logic, Fastcache size will be alloted as shown in the table above. The values shown in the table are based on an adequate number of TPS and accounts, so actual memory usage may be smaller than the above result. Increasing Fastcache size with the Klaytn Execution flag is also possible for a faster and more stable performance, but do keep in mind that OOM can occur.In the Klaytn State Trie Cache Series, we demonstrated how we can improve the performance of state trie cache. We identified the problem with Klaytn’s existing cache and looked for an alternative. We also analyzed and verified the causes of cache misses of state trie cache and employed cache size tuning to find an adequate cache size for given physical memory.This post is the last of the State Trie Cache series. If you have any further questions, leave them in the comment section below or post them in the Klaytn Forum. Thank you for reading and stay tuned!Klaytn State Trie Cache Series #4: Tuning Cache Size was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 08

Klaytn State Trie Cache Ser...

See the list of articles here.🇰🇷: Klaytn State Trie Cache Series #3: State trie cache miss 계산하기Improving the blockchain platform has been one of Klaytn’s top priorities. In this series of articles, we would like to walk you through the journey of improving the performance of the state trie cache.Identifying the Cache ProblemSearching for an Optimal CacheCalculating State Trie Cache MissesCache Size TuningIn our previous post, we compared various caches to come to the conclusion that Fastcache is the most optimal choice for Klaytn. In this post, we will look at some of the factors that determine the occurrence of cache misses, define some formulas and test them out.AssumptionsBefore we calculate cache misses, we will first make the following assumptions:[1] First, in this article, we will be limiting our focus to KLAY transfer. Since the balances of both the sender and the recipient change, the state of two accounts change per one KLAY transfer transaction.[2] No contract is created nor modified. On a real network, sub-tries can be added on the state trie leaf through a contract execution. But here, the assumption is that no calls for a contract will be made, hence no extra nodes.[3] Trie is in the form of a complete tree. The hash of the account address is used as the trie’s key, and the common hash substrings occur at different frequencies each time. Therefore, the trie may appear in diverse forms in the actual network.[4] Duplicated accounts in a block have been excluded. For example, we rule out the possibility that transactions from A to B, and B to C can take place within a single block (B’s state won’t change more than once). Then, for each transaction, two accounts (two leaves), will always undergo changes. With Klaytn, we are talking about more than a million accounts, and when blocks are created at 1000 TPS, the percentage difference is 0.006%. (We are considering 1000~4000 TPS, so 0.006% is the maximum difference.) It can therefore be safely assumed that excluding the duplicates will not significantly affect the calculation.Calculating Cache MissesState trie node is the base unit that gets stored in the cache. Each state trie takes the form of a tree, and is simplified as a triangle in the picture below:The gray colored rectangle represents the cache, and each triangle represents the state trie of each block. This is the starting point for us to look at how to calculate cache misses.Factors influencing cache misses are shown in the above image. Let’s look at how they are determined and how they are related to one another.Total Accounts, Active Accounts, Updated AccountsThe TotalAccounts variable refers to the number of all accounts that exist in the trie. They affect the size and depth of the trie. ActiveAccounts simply represents the number of active users, randomly selected among the total accounts. The account used for generating transactions is chosen among the active accounts. Active accounts may be less than or equal to total accounts. In this post, the value for TotalAccounts was chosen between 1M ~ 50M, and ActiveAccounts between 20~100% of the former, reflecting the main network.[1] The reason why TotalAccounts and ActiveAccounts are separated is to stay true to reality. And as the formulas below demonstrate, each factor is linked to different elements: TotalAccounts the size and depth of the trie, ActiveAccounts the pool of the account used for transaction. ActiveAccounts could have the same value as TotalAccounts.[2] Since a couple of accounts are selected for every transaction, the number of the changed accounts have TPS ྾ 2. If ActiveAccounts is less than or equal to TPS ྾ 2, the account used for each block always have the same value. Therefore, it is possible to find that account in the preceding trie. In this case, the possibility of a cache miss is 0.[3] UpdatedAccounts represents the modified accounts in each block. The value for UpdatedAccounts is smaller than or equal to that of ActiveAccounts. More details on UpdatedAccounts will be dealt with in Counting Leaves.Counting LeavesTrie #n in the picture represents the state trie of the latest block and the yellow circles are the newly created leaf nodes. We will refer to the new block’s state trie as UpdatedStateTrie and its size as UpdatedStateTrieSize.If value transfer transactions are created at 1,000 TPS, two accounts ( the sender and the receiver) have to be randomly selected 1,000 times. A total of 2,000 accounts will be selected, which will henceforth be referred to as UpdatedAccounts. When 1000 TPS are being processed, the UpdatedAccounts stand at 2000.Calculating the Number of Tries Stored in CacheThe number of tries that can be stored in the cache is found by dividing the trie size by cache size (CacheSize / UpdatedStateTrieSize). This value will be referred to as r.CacheSize is a parameter that can be defined by the users depending on the available memory. UpdatedStateTrieSize can be calculated with TotalAccounts and TPS. The UpdatedStateTrieSize for transactions to be executed with a million TotalAccounts and 1000TPS can be calculated in the following table:From seeing the above calculation, we can calculate the number of permitted nodes for each Trie’s depth. For example, for a million accounts, a trie whose depth is at least six is created for a block. And if 1,000 TPS took place, 2,000 leaves would be generated with 2,000 new nodes for every block at a depth of 6. Since 2,000 leaf nodes (6-block-deep state trie nodes) were created, there would be a maximum of 2,000 nodes at a depth of 5, 2,000 nodes at a depth of 4, and a maximum of 256 nodes for a depth of 3, … and so on. With that, a total of 6,273 nodes will be created for each block. Average node size (200B) multiplied by the average key length (16B) can be written as 6,273 * (200 + 16) = 1.29 MB (UpdatedStateTrieSize).The calculation of UpdatedStateTrieSize for TotalAccounts and TPS can be found in this link. (Repetitive combinations and header size have been included in the calculations in the link.)Calculating Cache Miss RateIf we were to randomly select one account from trie #n and trie #n-1 respectively, the probability of these two being the identical can be expressed as 1/ActiveAccounts. On the other hand, the probability that they will be different is 1–(1/ActiveAccounts).The probability that an account in the trie #n is not included in trie #n-1 can be found by raising the above formula to the number of UpdatedAccounts created in trie #n-1, which looks like this:Similarly, the probability of an account in trie #n not being included in all tries in the cache can be found using this formula:This formula represents the probability of an account in trie #n not being stored in the cache, that is, the probability of cache miss for one entry.Lastly, we want to find the probability that all accounts in trie #n are not stored in the cache. To do that, we multiply the following with UpdatedAccounts.And there we have it.Test ResultsTo verify the cache miss calculation formula, we ran various tests under different circumstances. We calculated the CacheMiss with diverse ActiveAccounts, TPS, and TotalAccounts values. You can find the detailed calculation as well as results in this spreadsheet. The following table shows the cache misses with the different number of Active Accounts.We have the results for 512MB, 1,024MB, 2,048MB, 4,096MB and 8,192MB of CacheSize, as well as for 1M, 0.8M, 0.5M, 0.3M, 0.2M of ActiveAccounts. The average cache miss error for the estimated and measured values is 2.86, which is relatively subtle.In this post, we learned that the factors for the changing state trie size were TotalAccounts, ActiveAccounts, TPS, and Trie node size. We calculated cache misses for a given cache size, and also derive the optimal cache size based on the above factors. But dynamically finding an optimal cache size while tracking TotalAccounts, ActiveAccounts, and UpdatedAccounts is a very tricky issue. It requires continuous readjustment considering the physical memory size, even if an optimal cache size is found. Dynamic readjustment of the cache size is one of the areas that we will be continuing to improve in the future.In our next post, we will demonstrate how to determine cache size based on a given physical memory.Klaytn State Trie Cache Series #3: Calculating State Trie Cache Misses was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 04. 05

Klaytn Usability Improvemen...

See the list of articles here.🇰🇷: Klaytn 사용성 개선 #2: 플랫폼에서의 멀티시그 지원One of Klaytn’s top priorities has been improving the usability of our blockchain platform. In this series, we will show you some features that contribute to a more user-friendly experience.Separating Keys and AddressesIntroducing Multisig on the Platform-LevelFee DelegationSupporting Role-Based Keys on the Platform-LevelImplementing Explicit Types for Accounts and TransactionsIn our last post, we learned about separating the key from the address and explained how the key field was added in the process. In this article, we will take a look at multisig, which uses the key field.Multisig can be used to enhance account security. Most blockchain platforms involve complex procedures for multisig. Taking Ethereum for example, you need a smart contract to use multisig. But if the primary objective is achieving stronger security, understanding “smart contract” may be a bit too much of a demand, although it does enable many other features as well.You will have be able to answer the following questions in order to properly use multisig:What is a smart contract?How do you implement a multisig contract using smart contract?Is the contract safely implemented?How is this contract going to be deployed on the network?How do you execute this contract?Answering these questions requires a high degree of knowledge, and it would be not feasible to understand everything just for the sake of account security. Let’s say you were to use a private deposit box from a bank; you don’t have to know the complex details of its mechanism. What matters is that it’s there and you are using it.And we thought the same for blockchain. It would be much safer and easier if security could be enhanced on a platform level. In our previous post, we added the key field on the Klaytn account. This can be extended to multisig without much difficulty, by simply storing multiple keys in that field.For the sake of flexibility, we added the concepts “weight”and “threshold”. Each key is assigned a weighted value and a transaction is considered valid only when the weighted values of the signed keys exceed the threshold. For example, let’s say k1, k2, and k3 have a weighted value of 1, 2 and 3 respectively and the threshold for that account is 3. Only the transactions signed with the keys in the combinations below will be valid.k3k1, k2k1, k3k2, k3k1, k2, k3In this post we learned about multisig implemented on a platform-wide scale. Using Klaytn allows improved security with multiple private keys. For more details about multisig, please refer to the references: AccountUpdate Transaction and AccountKeyWeightedMultisig. Since this feature has been implemented on the platform-level, users and wallet developers can use multisig with no trouble. In our next post, we will take a look at fee delegation. Thank you for reading, and stay tuned!Klaytn Usability Improvement Series #2: Introducing Multisig on the Platform-Level was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 31

Klaytn Usability Improvemen...

See the list of articles here.🇰🇷: Klaytn 사용성 개선 #1: 키와 주소의 분리Improving the usability of our blockchain platform has been one of Klaytn’s priorities. In this series, we would like to show you some of the features that can contribute to improved usability.Separating Key and AddressIntroducing Multisig on the Platform-LevelFee DelegationSupporting Role-Based Keys on the Platform-LevelImplementing Explicit Types for Accounts and TransactionsIn this post, we will demonstrate how we can improve usability through separating keys from addresses. Klaytn uses the secp256k1 curve, just like Bitcoin and Ethereum. Account addresses are derived from private keys in existing blockchains. The problem with this approach is that the account becomes unusable if the private key becomes exposed.If there is a chance that someone knows your private key, you are advised to get a new one and migrate all your assets into a new account. Or else, you may lose everything you had in your old account. But setting up a new account and migrating all your assets is definitely easier said than done. You have to notify those around you of your changed address before they send anything to your old account.Things get more complicated if you were using a BApp (Blockchain Application). Since it is integrated with the old account, you also have to move all the assets from the BApp to your new account. But if the BApp does not support that function, migrating assets may be impossible all together. It could also result in fragmentation of your transaction records.And what if your private key gets exposed again? You would have to go through the entire process one more time! What a catastrophe, right? Of course, it would be most ideal if you could take good care of your private keys and protect them from exposure, but it is still advisable to be prepared for all eventualities.This is different from what you would expect from other kinds of services, say, the bank. You could think of the blockchain account address as the bank account number, and the private key as the password. What should you do if your password gets exposed? The most common response would be to simply change the password. You wouldn’t open up a new bank account just for having your password exposed.People resist changes to their accustomed user experience, especially when that change entails a lot of inconveniences. That being said, it would make sense to maintain the user experience on blockchain indistinguishable from the old experience. That is why Klaytn separated the account address from the key. You can no longer derive your account address using your private key. That way, even if your private key gets compromised, you can set up a new private key to your account and continue using it. The asset migration described above would not be necessary. In short, it’s basically just like using a bank.To make this possible, Klaytn accounts create a separate field called key. You can store the public key in the key field, and sign the transaction with the corresponding private key. If you want to change your private key, you can set up a corresponding public key via AccountUpdate Transaction. Any transaction occurring henceforth will only be considered valid when it’s signed with the new private key. For more information regarding Klaytn account, please refer to KlaytnDocs/Accounts.But it seems a little inefficient to keep this key field just for the sake of public keys, doesn’t it? That is why Klaytn allowed additional key types. In our next post, we will look at some different types of keys. Stay tuned!Klaytn Usability Improvement Series #1: Separating Keys and Addresses was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 31

Klaytn State Trie Cache Ser...

See the list of articles here.🇰🇷: Klaytn State Trie Cache Series #2: 최적의 cache 찾기Improving the blockchain platform has always been one of Klaytn’s priorities. In this series of articles, we would like to walk you through the journey of improving the performance of the state trie cache.Identifying the Cache ProblemSearching for the Optimal CacheCalculating State Trie Cache MissTuning Cache SizeIn our previous post, we learned that the excessive memory use had been due to a prolonged allocation of a large heap. There are other Go cache options with less GC overhead such as Fastcache or Freecache. In this post, we will introduce some ways to find a less memory-consuming cache.Source: https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/The above article cites Ristretto, Bigcache, Freecache, and Fastcache as Go caches with high performance. To test their suitability on Klaytn, we tried them out and here are the results:KLAY Transfer TestAWS instance : m5.2xlargeCN 4, PN 4, EN 4, locust slave 4Memory size : 32GCache size : 6GRPS 2000, accounts : 0.5MTotal memory usage refers to the total memory used, including GC.The number of saved entries is derived from the stat from each cache.Bigcache is the cache originally in use.Ristretto is based on the LFU (Least Frequently Used) algorithm, meaning that it tracks and manages the frequency rather than how recent the entry has been called. It uses a lot of memory to maintain each data’s call occurrences, which may have been the reason for the out of memory. And, judging by the numerous cache misses, it presumably doesn’t save that many entries compared to other caches.This unexpected result of Ristretto is not only limited to Klaytn. According to the benchmark by CODASYL, the hit ratio is unmistakably low compared to other caches. This is due to the fact that the suitability of LRU or LFU varies depending on the data input method. When we think of how state tries are created on Klaytn, LRU seems to be more suitable, since having access to the latest nodes is the necessary procedure to create a new trie. Accordingly, despite the best performance shown by Ristretto on the throughput chart above, it recorded the highest number of cache misses in Klaytn’s case.In short, since Ristretto demonstrated a lower performance compared to other caches, it was determined to be not suitable for Klaytn.Freecache is said to have a new structure, which gets rid of the GC overhead. It has less memory usage than Bigcache and can store more entries.Fastcache shares the same structure with Bigcache, but is developed in a little more efficient way. It also uses less memory compared to Bigcache, while storing more entries.Freecache and Fastcache have the same number of entries, but the memory usage shows a big difference. Therefore, Fastcache, with the least memory usage and most entries, was selected as Klaytn’s new cache.To find out how better Fastcache performed compared to Bigcache, we ran another TPS test with larger instances. We tested different caches on identical instance types.KLAY Transfer TestAWS instance : m5.18xlargeCN 4, PN 8, EN 8, locust slave 4Memory size : 144GRPS 4000, accounts : 5MWe saw that the memory usage has been reduced by 30%, from 98 G to 69 G, and the number of saved entries has increased by 12%, from 147 M to 165 M.To check if the speed has improved, we also ran the Cypress sync test. Notice the difference in sync speed due to cache misses for the smaller instance cache.Cypress sync testAWS instance : m5.2xlargeMemory size : 32GCache : Bigcache, FastcacheCache Size : 6GB, 9GBThe results on the left graph show that Fastcache saves more entries than Bigcache. The occurrence of cache misses has been reduced and the appearance of the first cache miss has also been delayed. And the right graph shows the current block numbers, whereby Fastcache has a higher block number than Bigcache. This means that the synchronization of Cypress block data is carried out faster by Fastcache than Bigcache.In this post we looked into three alternatives to Bigcache and finally came to the conclusion that Fastcache is indeed a better choice than Bigcache, in terms of both memory management and performance. Fastcache has been applied on Klaytn from v1.5.0 or higher, so if you are still running your node on a lower version, we recommend you get an update.We hope that this post is helpful in selecting an optimal cache. Next time, we will look at some factors that influence state trie cache misses. Stay tuned!Klaytn State Trie Cache Series #2: Searching for the Optimal Cache was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 19

[Caver] Caver로 Klaytn 계정의 키...

[Caver] Caver로 Klaytn 계정의 키를 바꾸는 방법 #1 — AccountKeyPublicKlaytn은 키와 주소를 분리하여 계정에서 사용하는 키를 변경할 수 있습니다. 이 포스팅에서는 caver-js와 caver-java를 사용하여 계정의 키를 AccountKeyPublic으로 변경하는 방법에 대해서 설명합니다. 다양한 AccountKey에 대한 설명은 Klaytn Docs를 참고하세요.이 문서는 실습 환경을 전제로 설명이 진행됩니다. 실습 환경이 아직 구축되지 않았다면 caver-js — Prerequisites 혹은 caver-java — Prerequisites를 참고하세요.각 파트에서는 코드의 일부분을 설명하며, 전체 코드는 [12.예제 코드]에서 확인할 수 있습니다.1. Keyring 만들기먼저 실습에서 사용될 Klaytn 계정을 생성합니다. 이 계정은 트랜잭션을 실제 전송하여 네트워크에 저장된 계정의 키를 업데이트하기 때문에 충분한 KLAY를 가지고 있어야 합니다.Caver에서는 Klaytn 계정의 주소와 계정에서 사용하는 private key(s)를 저장하는 구조로 Keyring을 사용합니다.먼저 caver-js를 사용하여 Klaytn 계정의 정보를 저장하는 Keyring 인스턴스 생성 방법에 대해서 설명합니다.// caver-jsconst keyring = caver.wallet.keyring.create(testAddress, testPrivateKey)만약 private key string이 아닌 keystore 파일을 가지고 있는 경우, caver.wallet.keyring.decrypt를 사용하여 keyring을 생성할 수 있습니다.caver-java를 사용하여 Klaytn 계정의 정보를 저장하는 Keyring 인스턴스 생성 방법은 아래와 같습니다.// caver-javaSingleKeyring keyring = KeyringFactory.create(testAddress, testPrivateKey);caver-java도 마찬가지로 keystore 파일을 가지고 있는 경우, KeyringFactory.decrypt를 사용하여 keyring을 생성할 수 있습니다.2. Caver in-memory wallet에 keyring 추가하기이 실습에서는 in-memory wallet을 사용합니다. Caver의 in-memory wallet에 keyring이 추가되어 있으면, 트랜잭션에 서명할 때 따로 사용할 키를 지정하지 않아도 in-memory wallet에 저장된 keyring의 키로 서명합니다.caver-js를 사용하여 in-memory wallet에 keyring을 추가하는 방법은 아래와 같습니다.// caver-jscaver.wallet.add(keyring)caver-java도 마찬가지로 아래와 같이 in-memory wallet에 keyring을 추가할 수 있습니다.// caver-javacaver.wallet.add(keyring);3. 새로운 개인 키 생성하기Klaytn 계정의 AccountKey를 AccountKeyPublic으로 업데이트하기 위해서는 Klaytn 계정에서 새롭게 사용할 private key가 필요합니다. 여기서는 `generateSingleKey` 함수를 통해 랜덤 생성된 private key를 사용합니다. 만약 따로 사용하고자 하는 private key가 있는 경우, 이를 사용해도 됩니다.아래는 caver-js를 사용하여 내 Klaytn 계정에서 사용할 새로운 private key string을 생성하는 방법입니다.// caver-jsconst newKey = caver.wallet.keyring.generateSingleKey()caver-java도 아래와 같이 generateSingleKey를 사용하여 내 Klaytn 계정에서 사용할 새로운 private key string을 생성할 수 있습니다.// caver-javaString newKey = KeyringFactory.generateSingleKey();4. 새로운 Keyring 생성하기위에서 Klaytn 계정에서 사용할 새로운 private key를 생성했다면, 이제 새로운 private key를 저장하는 Keyring 인스턴스를 생성해보겠습니다. 새로운 private key를 저장하는 Keyring 인스턴스는 Klaytn 계정의 AccountKey가 성공적으로 변경된 이후에 사용할 수 있습니다.먼저 caver-js를 사용하여 아래와 같이 새로운 private key를 저장하는 Keyring 인스턴스를 생성할 수 있습니다.// caver-jsconst newKeyring = caver.wallet.keyring.create(testAddress, newKey)새 private key를 저장하는 newKeyring은 newKey를 사용하여 트랜잭션에 서명합니다.caver-java를 사용하여 새로운 private key를 저장하는 Keyring 인스턴스 생성 방법은 아래와 같습니다.// caver-javaSingleKeyring newKeyring = KeyringFactory.create(testAddress, newKey);5. Account 인스턴스 만들기Caver에서 제공하는 Account 클래스는 계정을 업데이트할 때 필요한 정보를 포함합니다. AccountKeyPublic으로 업데이트하는 경우, 업데이트할 Klaytn 계정의 주소와 새롭게 사용하고자 하는 public key가 필요합니다.위에서 생성한, 새로운 private key를 저장하고 있는 keyring의 toAccount 함수를 호출하여 Account 인스턴스를 생성할수 있습니다. caver-js로 Account 인스턴스를 생성하는 방법은 아래와 같습니다.// caver-jsconst account = newKeyring.toAccount()caver-java도 마찬가지로, 새로운 private key를 저장하고 있는 keyring의 toAccount 함수를 호출하여 Account 인스턴스를 생성할 수 있습니다.// caver-javaAccount account = newKeyring.toAccount();이렇게 생성된 Account 인스턴스는 업데이트할 Klaytn 계정의 주소와 새롭게 사용할 private key의 public key를 저장합니다.6. 트랜잭션 만들기Account 인스턴스를 생성했다면, 이를 사용하여 Account Update 트랜잭션을 간단하게 생성할 수 있습니다.먼저 caver-js를 사용하여 트랜잭션을 생성하는 방법은 아래와 같습니다.// caver-jsconst accountUpdate = new caver.transaction.accountUpdate({ from: testAddress, account, gas: 50000,})caver-java를 사용하여 트랜잭션을 생성하는 방법은 아래와 같습니다.// caver-javaAccountUpdate accountUpdate = new AccountUpdate.Builder() .setKlaytnCall(caver.rpc.klay) .setFrom(testAddress) .setAccount(account) .setGas(BigInteger.valueOf(50000)) .build();7. 트랜잭션 서명하기Account Update 트랜잭션을 생성했다면, in-memory wallet에 추가한 keyring을 사용하여 트랜잭션에 서명해야 합니다. Caver에서 제공하는 in-memory wallet인 caver.wallet에서는 sign 함수를 제공합니다.먼저 caver-js를 사용하여 트랜잭션을 서명하는 방법은 아래와 같습니다.// caver-jsawait caver.wallet.sign(keyring.address, accountUpdate)caver-java를 사용하여 트랜잭션에 서명하는 방법은 아래와 같습니다.// caver-javacaver.wallet.sign(testAddress, accountUpdate);caver.wallet.sign이 성공적으로 수행되면 accountUpdate의 signatures 필드에 생성된 서명이 할당된 것을 확인할 수 있습니다.이제 생성된 트랜잭션을 네트워크로 전송하는 작업만 남아있습니다.8. 트랜잭션 전송하기트랜잭션을 생성하고 서명했다면 이를 실제 네트워크에 전송해 봅시다. 이 트랜잭션이 네트워크에서 처리되면 Klaytn 계정의 키가 변경되므로 기존 키는 더이상 사용할 수 없습니다. 그러므로 기존 키를 저장하고 있는 keyring은 사용할 수 없으며, 새로운 private key를 저장하고 있는 새로운 keyring을 사용해야 합니다.caver.rpc.klay.sendRawTransaction을 사용하여 서명된 트랜잭션을 네트워크에 전송할 수 있습니다.아래는 caver-js를 사용하여 트랜잭션을 전송하는 예제로, EventEmitter를 사용합니다.// caver-jscaver.rpc.klay.sendRawTransaction(accountUpdate) .on(‘transactionHash’, hash => { console.log(hash) }) .on(‘receipt’, receipt => { console.log(receipt) })Caver-js를 사용하여 트랜잭션을 전송할 때, Promise를 사용하여 트랜잭션 처리 결과가 담긴 receipt을 받는 방법은 아래와 같습니다.// caver-jsconst receipt = await caver.rpc.klay.sendRawTransaction(accountUpdate)아래는 caver-java를 사용하여 트랜잭션을 전송하는 예제입니다.// caver-javaBytes32 sendResult = caver.rpc.klay.sendRawTransaction(accountUpdate).send();String hash = sendResult.getResult();위 코드가 실행되면 트랜잭션 해시를 구할 수 있으며, 해당 트랜잭션의 처리 결과는 아래의 방법으로 얻을 수 있습니다.// caver-javaTransactionReceiptProcessor receiptProcessor = new PollingTransactionReceiptProcessor(caver, 1000, 15);TransactionReceipt.TransactionReceiptData receiptData = receiptProcessor.waitForTransactionReceipt(hash);위의 결과로 리턴되는 receipt을 보면 아래와 같이 status가 true로 트랜잭션이 성공적으로 처리된 것을 확인할 수 있습니다. 트랜잭션 타입은 TxTypeAccountUpdate이고 key필드에는 새롭게 업데이트한 AccountKeyPublic이 인코딩된 형태로 리턴되었습니다.{ blockHash: ‘0x073ae74db35f15c8f763c89ee4cede3f0a9bfb1256d2b28e2e12f2b4c4ccca18’, blockNumber: ‘0x33c80b0’, contractAddress: null, from: ‘0x405e1c9109684626b5b94177335b2db88e974f86’, gas: ‘0xc350’, gasPrice: ‘0x5d21dba00’, gasUsed: ‘0xa028’, key: ‘0x02a102259cbde6ac40681c0bdb36a7bd714d7f12214f060a3708a964d80a46a8985d94’, logs: [], logsBloom: ‘0x00000…’, nonce: ‘0x0’, senderTxHash: ‘0x6d0ccf6afb1b715909244fa8d6affdb9a2fcac74f070cffcb10f6cc1b8b0eb8c’, signatures: [ { V: ‘0x7f5’, R: ‘0xcc180…’, S: ‘0x161b2…’ } ], status: ‘0x1’, transactionHash: ‘0x6d0ccf6afb1b715909244fa8d6affdb9a2fcac74f070cffcb10f6cc1b8b0eb8c’, transactionIndex: ‘0x0’, type: ‘TxTypeAccountUpdate’, typeInt: 32}9. AccountKey 확인하기트랜잭션이 성공적으로 처리되었다면 네트워크에 저장된 계정의 키가 변경됩니다. caver.rpc.klay.getAccountKey를 사용하여 이를 확인할 수 있습니다.아래는 caver-js를 사용하여 계정의 accountKey를 확인하는 방법입니다.// caver-jsconst accountKey = await caver.rpc.klay.getAccountKey(testAddress)아래는 caver-java를 사용하여 계정의 accountKey를 확인하는 방법입니다.// caver-javaAccountKey accountKey = caver.rpc.klay.getAccountKey(testAddress).send();위의 결과를 출력하면 아래와 같이 Klaytn 네트워크에 저장된 계정의 키를 알 수 있습니다. 계정의 키를 AccountKeyPublic으로 업데이트했기 때문에 caver.rpc.klay.getAccountKey 결과의 keyType은 2로 출력되는 것을 확인할 수 있습니다. Account Key Type ID에 대한 자세한 내용은 Klaytn Docs를 참고해 주세요.{ keyType: 2, key: { x: ‘0x259cb…’, y: ‘0x707b7…’ }}10. In-memory wallet의 keyring 업데이트트랜잭션이 성공적으로 처리되어 계정의 키가 업데이트 되었다면, 이제 트랜잭션에 서명할 때 업데이트된 키를 사용해야 합니다.지금 in-memory wallet에 저장되어 있는, keyring에서 사용하는 키는 업데이트되기 전의 키이므로 트랜잭션을 전송하면 실패하게 됩니다. In-memory wallet의 keyring에서 사용하는 키가 업데이트되지 않은 상태로 트랜잭션을 전송하면 아래와 같은 에러가 발생하게 됩니다.Error: Returned error: invalid transaction v, r, s values of the sender그렇기 때문에 Klaytn 계정의 키를 업데이트했다면 in-memory wallet에 별도 저장된 keyring의 키도 업데이트해야 합니다.caver.wallet.updateKeyring를 사용하면 in-memory wallet에 저장된, keyring에서 사용하는 private key를 업데이트할 수 있습니다. 업데이트된 Klaytn 계정의 주소와 새로운 private key를 담고있는 newKeyring은 파라미터 형태로 전송합니다.아래는 caver-js를 사용해서 in-memory wallet의 keyring을 업데이트하는 방법입니다.// caver-jscaver.wallet.updateKeyring(newKeyring)아래는 caver-java를 사용해서 in-memory wallet의 keyring을 업데이트하는 방법입니다.// caver-javacaver.wallet.updateKeyring(newKeyring);11. 업데이트된 계정으로 트랜잭션 전송하기Klaytn 계정의 키가 정상적으로 업데이트되었다면, 이제 업데이트된 계정으로 트랜잭션을 전송해 볼까요?네트워크에 저장되는 계정의 키가 업데이트되었기 때문에, 트랜잭션을 전송할 때는 업데이트된 키를 사용하여 서명해야 합니다. [10. In-memory wallet의 keyring 업데이트]에서 in-memory wallet에 있는 keyring의 키도 업데이트 했으므로, 트랜잭션을 전송하면 새롭게 업데이트된 키로 서명하여 전송됩니다.여기서는 간단하게 AccountKey가 업데이트된 Klaytn 계정으로 Value Transfer 트랜잭션을 전송하는 예제에 대해서 설명합니다.아래에는 caver-js를 사용하여 Value Transfer 트랜잭션을 생성하고 서명하여 전송하는 방법에 대해서 설명합니다.// caver-jsconst vt = new caver.transaction.valueTransfer({ from: testAddress, to: testAddress, value: 1, gas: 25000,})await caver.wallet.sign(testAddress, vt)const vtReceipt = await caver.rpc.klay.sendRawTransaction(vt)caver.transaction.valueTransfer로 트랜잭션을 생성한 후, 앞에서 서명한 방식과 동일하게 caver.wallet.sign 함수를 사용하여 트랜잭션에 서명합니다. 이 때 caver.wallet 내부에 저장된 keyring은 [10. In-memory wallet의 keyring 업데이트]에서 업데이트되었으므로 새로운 private key로 트랜잭션에 서명하게 됩니다. 그 이후 서명된 트랜잭션은 caver.rpc.klay.sendRawTransaction을 사용하여 네트워크로 전송됩니다. 이 예제에서는 Promise를 사용하여 트랜잭션 처리 결과를 받도록 구현되어 있습니다.그럼 이제 caver-java로 Value Transfer 트랜잭션을 생성하고 서명한 뒤 네트워크에 전송하는 방법에 대해서 설명해볼까요?// caver-javaValueTransfer vt = new ValueTransfer.Builder() .setKlaytnCall(caver.rpc.getKlay()) .setFrom(testAddress) .setTo(testAddress) .setValue(BigInteger.valueOf(1)) .setGas(BigInteger.valueOf(25000)) .build();caver.wallet.sign(testAddress, vt);Bytes32 vtResult = caver.rpc.klay.sendRawTransaction(vt).send();TransactionReceipt.TransactionReceiptData vtReceiptData = receiptProcessor.waitForTransactionReceipt(vtResult.getResult());ValueTransfer 트랜잭션을 생성한 후, 앞서 진행한 방식과 동일하게 caver.wallet.sign 함수로 트랜잭션에 서명합니다. 서명된 트랜잭션은 caver.rpc.klay.sendRawTransaction을 사용하여 네트워크에 전송하고 리턴받은 트랜잭션 해시를 통하여 트랜잭션 처리 결과를 조회합니다.12. 예제 코드아래는 이 문서에서 설명한 전체 코드입니다.// caver-jsconst Caver = require(‘caver-js’)const URL_NODE_API = ‘https://node-api.klaytnapi.com/v1/klaytn'// Configuration Part// Set your KAS access key and secretAccessKey.const accessKeyId = ‘{your_accessKeyId}’const secretAccessKey = ‘{your_secretAccessKey}’// const CHAIN_ID_BAOBOB = ‘1001’// const CHAIN_ID_CYPRESS = ‘8217’const chainId = ‘1001’const option = { headers: [ { name: ‘Authorization’, value: ‘Basic ‘ + Buffer.from(accessKeyId + ‘:’ + secretAccessKey).toString(‘base64’) }, { name: ‘x-chain-id’, value: chainId }, ]}const caver = new Caver(new Caver.providers.HttpProvider(URL_NODE_API, option))test()async function test () { console.log(`=====> Update AccountKey to AccountKeyPublic`) const testAddress = ‘0x{address}’ const testPrivateKey = ‘0x{private key}’ // Add keyring to in-memory wallet const keyring = caver.wallet.keyring.create(testAddress, testPrivateKey) caver.wallet.add(keyring) // Create new private key const newKey = caver.wallet.keyring.generateSingleKey() console.log(`new private key: ${newKey}`) // Create new Keyring instance with new private key const newKeyring = caver.wallet.keyring.create(testAddress, newKey) // Create an Account instance that includes the address and the public key const account = newKeyring.toAccount() // Create account update transaction object const accountUpdate = new caver.transaction.accountUpdate({ from: testAddress, account, gas: 50000, }) // Sign the transaction await caver.wallet.sign(testAddress, accountUpdate) // Send transaction const receipt = await caver.rpc.klay.sendRawTransaction(accountUpdate) console.log(`Account Update Transaction receipt => `) console.log(receipt) // Get accountKey from network const accountKey = await caver.rpc.klay.getAccountKey(testAddress) console.log(`Result of account key update to AccountKeyPublic`) console.log(`Account address: ${testAddress}`) console.log(`accountKey =>`) console.log(accountKey) // Update keyring with new private key in in-memory wallet caver.wallet.updateKeyring(newKeyring) const vt = new caver.transaction.valueTransfer({ from: testAddress, to: testAddress, value: 1, gas: 25000, }) // Sign the transaction with updated keyring await caver.wallet.sign(testAddress, vt) // Send transaction const vtReceipt = await caver.rpc.klay.sendRawTransaction(vt) console.log(`After account update value transfer transaction receipt => `) console.log(vtReceipt)}// caver-javaprivate static final String URL_NODE_API = “https://node-api.klaytnapi.com/v1/klaytn";// Configuration Part// Set your KAS access key and secretAccessKey.static String accessKey = “{your_accessKeyId}”;static String secretAccessKey = “{your_secretAccessKey}”;// static String CHAIN_ID_BAOBOB = “1001”;// static String CHAIN_ID_CYPRESS = “8217”;static String chainId = “1001”;public static void main(String[] args) { // Build a Caver instance. Caver caver = setCaver(accessKey, secretAccessKey, chainId); // Run a test. test(caver);}public static void test(Caver caver) { String testAddress = “0x{address}”; String testPrivateKey = “0x{private key}”; SingleKeyring keyring = (SingleKeyring) KeyringFactory.create(testAddress, testPrivateKey); caver.wallet.add(keyring); String newKey = KeyringFactory.generateSingleKey(); SingleKeyring newKeyring = KeyringFactory.create(testAddress, newKey); Account account = newKeyring.toAccount(); AccountUpdate accountUpdate = new AccountUpdate.Builder() .setKlaytnCall(caver.rpc.klay) .setFrom(testAddress) .setAccount(account) .setGas(BigInteger.valueOf(50000)) .build(); try { caver.wallet.sign(testAddress, accountUpdate); Bytes32 sendResult = caver.rpc.klay.sendRawTransaction(accountUpdate).send(); if(sendResult.hasError()) { // Do something to handle error throw new TransactionException(sendResult.getError().getMessage()); } String txHash = sendResult.getResult(); TransactionReceiptProcessor receiptProcessor = new. PollingTransactionReceiptProcessor(caver, 1000, 15); TransactionReceipt.TransactionReceiptData receiptData = receiptProcessor.waitForTransactionReceipt(txHash); AccountKey accountKey = caver.rpc.klay.getAccountKey(testAddress).send(); System.out.println(“Account Key Type: “ + accountKey.getResult().getType()); keyring = (SingleKeyring)caver.wallet.updateKeyring(newKeyring); ValueTransfer vt = new ValueTransfer.Builder() .setKlaytnCall(caver.rpc.getKlay()) .setFrom(testAddress) .setTo(testAddress) .setValue(BigInteger.valueOf(1)) .setGas(BigInteger.valueOf(25000)) .build(); caver.wallet.sign(testAddress, vt); Bytes32 vtResult = caver.rpc.klay.sendRawTransaction(vt).send(); TransactionReceipt.TransactionReceiptData vtReceiptData = receiptProcessor.waitForTransactionReceipt(vtResult.getResult()); System.out.println(vtReceiptData.getStatus()); } catch (IOException | TransactionException e) { // Do something to handle exception. e.printStackTrace(); }}private static Caver setCaver(String accessKey, String secretAccessKey, String chainID) { HttpService httpService = new HttpService(URL_NODE_API); httpService.addHeader(“Authorization”, Credentials.basic(accessKey, secretAccessKey)); httpService.addHeader(“x-chain-id”, chainID); return new Caver(httpService);}위의 실습을 통해 계정의 키를 AccountKeyPublic으로 변경하는 방법을 알아보았습니다. 쉽게 이해하셨나요? 다음 포스팅에서는 계정의 키를 AccountKeyWeightedMultiSig으로 변경하는 방법에 대해서 설명해보겠습니다. 새롭게 사용할 키의 종류만 변경될 뿐 과정이 거의 동일하므로 이 문서의 실습을 따라하고 이해하는 데에 문제가 없었다면 다음 포스팅도 쉽게 따라하실 수 있습니다.[Caver] Caver로 Klaytn 계정의 키를 바꾸는 방법 #1 — AccountKeyPublic was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 17

Klaytn State Trie Cache Ser...

🇰🇷: Klaytn State Trie Cache Series #1: Cache 문제 원인 파악하기Improving the blockchain platform has been one of Klaytn’s top priorities. In this series of articles, we would like to walk you through our journey of improving the performance of the state trie cache.Identifying the cache problemFinding the optimal cacheCalculating the state trie cache missTuning cache sizeIn this post we will take a look at a problem that we’ve encountered while experimenting with Klaytn and dig into its cause, namely the Golang Garbage Collector (Go GC). Below shows an incident that occurred during our Klaytn test:Memory Usage Check with the API from PrometheusWhen a Klayn node reaches up to 3500 TPS, about 100GB of memory is used. To find out what’s taking up so much space, we looked into the results of the memory profiling provided by Golang.▶ go tool pprof cn-mem0.profFile: kcnBuild ID: 7b45b11c163a99518095ffb64083e4aa61fd321fType: inuse_spaceTime: Mar 26, 2020 at 8:56am (KST)Entering interactive mode (type “help” for commands, “o” for options) (pprof) topShowing nodes accounting for 41.91GB, 96.33% of 43.50GB totalDropped 382 nodes (cum <= 0.22GB)Showing top 10 nodes out of 77 flat flat% sum% cum cum% 30GB 68.97% 68.97% 30GB 68.97% github.com/allegro/bigcache/queue.NewBytesQueue 5.65GB 12.98% 81.95% 5.65GB 12.99% github.com/allegro/bigcache.(*cacheShard).set 1.53GB 3.52% 85.47% 1.53GB 3.52% reflect.New 1.25GB 2.87% 88.35% 2.60GB 5.97% github.com/klaytn/klaytn/ser/rlp.decodeBigIntWith memory profiling, you can find out for how much and where memories are being used. From the above results, Showing nodes accounting for 41.91GB, 96.33% of 43.50GB total tells us that the kcn binary is using 43.5GB in total, and through the following logs we can find out what is taking up how much memory for the 96.33%, or 41.91GB. Also, the log result 30GB 68.97% github.com/allegro/bigcache/queue.NewBytesQueue indicates that 30GB of memory (68.97%) are being consumed by BigCache.We noticed something strange from the above results. According to the storage library provided by Prometheus, about 100GB are being used up by the kcn, while the memory profiling (43.50GB total) tells us that the kcn binary is using a total of 43.5GB. Therefore, it is not trackable where the rest of the 56.5GB (=100GB - 43.5GB) are being used.We assumed that BigCache, occupying the most memory space, is the main cause of the memory leak. In order to check if BigCache was indeed taking up more memory space, we ran a test on two servers in the same environment with 30GB, 0GB cache size respectively. The following are the results of the `top` command and the memory profiling of the two servers.(The result of the top command is shown in GiB, whereas the result of the library provided by Prometheus is in GB, so, essentially, both of them are referring to the same value.)Cypress sync testAWS Instance : m5.8xlargememory size: 128Gcache size: 30G, 0GThe result of top Command (Left: cache 30G, Right: cache 0GB)The result of the Go Memory Profiling (Left: cache 30G, Right: cache 0GB)On the server with 30GB of BigCache, the top command and memory profiling show that memory usage was 70GB, 35GB respectively, which indicates 35GB of memory leak. On the other hand, on the server that does not use BigCache, top and memory profiling show 5GB, 2GB respectively, which makes the memory leak 3GB.In the light of this experiment, we can assume that BigCache uses more memory than allocated. And we also found out that even without the Bigcache, about 3GB have been leaked. Moreover, owing to the Go GC (Garbage Collector), the memory usage difference problem occurs on all Go programs.We found this article that explains how using pointers with a large heap memory for an extended period of time can take up a massive amount of memory.The Garbage Collector periodically looks for dynamically allocated memory spaces that are no longer usable in order to deallocate them, so that they can be used elsewhere. To do this, it checks for any unused allocated spaces, by searching for pointers. If a Go program is using more than a certain amount of memory and there are a lot of pointers, the Go GC will be using a lot of memory to search them.The memory usage, which was supposed to be 44GB without the GC, takes up an extra 100GB when the GC is running. Since the memory profiling takes place once the GC is finished, only the 44GB memory usage appeared in the profiling result. In cases where BigCache was allocated, as in Klaytn, Garbage Collection has always been using up a lot more memory.Such unexpected usage of extra memory can lead to out of memory. For programs like Klaytn, which needs to operate for a long period, a shut-down due to unintended memory overuse must be avoided. In our next post, we will show you how we have managed to solve this memory leak problem.Klaytn State Trie Cache Series #1: Identifying the Cache Problem was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 05

Common Architecture of Caver

Caver is a Software Development Kit (SDK) that helps you use Klaytn more easily, recently launched by Caver on v1.5.0. In this post, we will introduce the definition, motivation, and usage of Common Architecture.You can find further details here: KIP-34 Klaytn SDK Common Architecture1. What is Common Architecture?Let us first define Common Architecture. Common Architecture is a new software architecture for Klaytn’s development environment, shared by all Klaytn SDKs.2. Why Do We Need Common Architecture?Caver is currently provided in two languages: Javascript (caver-js) and Java (caver-java). And there have been some discrepancies before the Common Architecture was introduced:Structure/Terminology InconsistencyDue to the lack of a common structure on Caver, the structure of the implementations in caver-js and caver-java have been inconsistent. The inconsistencies in terminologies have also caused communication difficulties.UsabilityThe different implemented structures and terminologies also led to irregular usability.Language scalabilityThe inconsistent usability of Caver meant that a developer familiar with caver-js would need more time to learn how to program using caver-java. This has hindered BApp development using multiple languages.Caver attempted to mitigate these problems by introducing Common Architecture, which would help develop Caver in other languages more easily.3. Structure of Common ArchitectureLet us take a look at the structure of the Common Architecture. Below is the diagram for Common Architecture Layers.KCT LayerThe KCT Layer enables easy deployment and execution of KCT (Klaytn Compatible Token) contracts. Features related to the KIP-7 fungible token standard and the KIP-17 non fungible token standard are currently being provided on the KCT layer.Contract LayerThe Contract Layer helps you use smart contracts more conveniently. With smart contract’s ABI (Application Binary Interface) and bytecode, you can take advantage of the features provided by the contract layer to deploy and execute smart contracts on Klaytn.ABI LayerThe ABI layer contains features related to the Application Binary Interface, such as encoding/decoding using the smart contract’s ABI. It consists of the essentials for using smart contracts and is also being used internally by the Contract Layer.Transaction LayerThe Transaction Layer supports various transactions types used on Klaytn implemented in different classes. Looking up transaction hash, RLP encoding and decoding are also possible.Wallet LayerThe Wallet Layer provides features that use Klaytn Account on Caver. On the Wallet Layer, users are given a Keyring, which is a structure for storing Klaytn account addresses and private keys on Caver, along with a KeyringContainer with an in-memory wallet for custody of this Keyring.Account LayerThe Account Layer provides data structures and functions needed for updating Klaytn Account’s AccountKey. Account is used for Account Update Transaction (AccountUpdate / FeeDelegatedAccountUpdate / FeeDelegatedAccountUpdateWithRatio), and contains Klaytn Account address for updates and a new AccountKey.RPC LayerThe RPC Layer provides functions to easily communicate with Klaytn nodes via RPC..Utils LayerOn the Utils Layer, you can find the utility functions needed for developing BApps.This is a brief description about the Common Architecture of Caver. For more details, refer to this link KIP-34. Now we will take a look at how to use Caver and its Common Architecture with the help of some examples.4. How to send KLAY using CaverLet’s first take a look at how to send KLAY using Caver. It follows these steps:Create a keyring → add a keyring to the in-memory wallet → create a transaction → sign the transaction → send it to the Klaytn NetworkLet’s go over each step in more detail with the corresponding code snippets.4.1. Creating a KeyringFirst, the keyring for sending KLAY has to be generated. Keep in mind that you should have sufficient KLAY balances on the Klaytn Account for this step. You can download Testnet KLAY on Baobab Network by clicking here: Baobab Klaytn Wallet.Caver-js creates a keyring for decrypting keystore files via `caver.wallet.keyring.decrypt` as shown below:// keyring creation — caver-jsconst keystore = fs.readFileSync(‘keystore.json’, ‘utf8’)const keyring = caver.wallet.keyring.decrypt(keystore, ‘password’)Caver-java can also create a keyring through the same process:// creating keyring — caver-javaFile file = new File(‘./keystore.json’);ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, “password”);4.2. Adding a Keyring to the In-Memory WalletThe keyring created in the previous step will be added to the in-memory wallet.In order to add the keyring to the in-memory wallet using caver-js, use `caver.wallet.add`:// adding keyring to in-memory wallet — caver-jscaver.wallet.add(keyring)`caver.wallet.add` can also be used with caver-java for the same purpose:// adding keyring to in-memory wallet — caver-javacaver.wallet.add(keyring);4.3. Creating a TransactionNow a transaction can be created to actually send KLAY. Here the ValueTransfer transaction will be employed.Using caver-js to create a ValueTransfer transaction would look like this:// creating transaction — caver-jsconst vt = new caver.transaction.valueTransfer({from: keyring.address,to: ‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’,value: 1,gas: 25000,})Below is how you can send KLAY using caver-java.Using caver-java, you can define the parameters on the constructor when creating a transaction, but this will lead to too many parameters. Since many parameters are optional, a builder pattern will be given for convenience. The example below shows how to create a ValueTransfer transaction using the builder pattern:// creating transaction — caver-javaValueTransfer vt = new ValueTransfer.Builder().setKlaytnCall(caver.rpc.klay).setFrom(keyring.getAddress()).setTo(‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’).setValue(BigInteger.ONE).setGas(BigInteger.valueOf(25000)).build();4.4. Signing the TransactionNow the created transaction will be signed with the keyring. The keyring has already been added to the in-memory wallet, so we will now demonstrate how to sign using this wallet.Signing a transaction using caver-js looks like this:// sign transaction — caver-jsawait caver.wallet.sign(keyring.address, vt)And with caver-java:// signing transaction — caver-javacaver.wallet.sign(keyring.getAddress(), vt);As shown above, when the sign function of the in-memory wallet is called, it finds the keyring of the address passed as the first parameter. Now sign the transaction with the private key of that keyring. The result is saved in the `signatures` field within the transaction.4.5. Sending to Klaytn NetworkNow we are ready to send the signed transaction to the Klaytn network. The transaction will be sent to Klaytn Node using the features of RPC layer.Below is how you send a transaction using caver-js. When using caver-js to send transactions, you can handle the outcome in two different forms. By using promise a transaction receipt can be returned immediately. And by using EventEmitter you can process events related to `transactionHash`, `receipt` and `error`.// sending transaction and retrieving receipt — caver-js// Using Promise — use await or thenconst receipt = await caver.rpc.sendRawTransaction(vt)// Using event emittercaver.rpc.klay.sendRawTransaction(vt).on(‘transactionHash’, (hash) => {console.log(hash)}).on(‘receipt’, (r) => {console.log(r)})If you are using caver-java:// sending transaction and retrieving receipt — caver-javaBytes32 ret = caver.rpc.klay.sendRawTransaction(vt).send();String txHash = ret.getResult();TransactionReceiptProcessor receiptProcessor = new PollingTransactionReceiptProcessor(caver, 1000, 15);TransactionReceipt.TransactionReceiptData receiptData = receiptProcessor.waitForTransactionReceipt(txHash);After `caver.rpc.klay.sendRawTransaction` is completed, the transaction hash will be returned. With caver-java you can track the status of the transaction. Once the transaction is processed, a KLAY will then be transferred.5. Creating Your Own Token with CaverIn this part we will show you how to create and transfer KIP-7 tokens using Caver. All you need to do is to follow these steps:creating a keyring → adding the keyring to the in-memory wallet → deploying a KIP-7 contract → calling the contract function of the deployed KIP-7 contractYou can deploy a token contract on the network and execute that contract using the KIP-7 instance, returned as a result of the deployment. We will now walk you through the process below.5.1. Creating a keyring and adding it to the in-memory walletIn order to create a token, you need to generate a keyring and add it to the in-memory wallet. Since this process is the same as 4.1–2, we will skip over this part.Below is the code for creating a keyring and adding it to the in-memory wallet using caver-js:// creating a keyring and adding it to in-memory wallet — caver-jsconst keystore = fs.readFileSync(‘keystore.json’, ‘utf8’)const keyring = caver.wallet.keyring.decrypt(keystore, ‘password’)caver.wallet.add(keyring)The same process using caver-java:// creating keyring and adding it to in-memory wallet — caver-javaFile file = new File(‘./keystore.json’);ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, “password”);caver.wallet.add(keyring);5.2. Deploying a KIP-7 contractTo deploy a KIP-7 token contract, you simply call the deploy method of theKIP-7 class, which is provided by Caver’s KCT Layer. The parameters include data needed for deploying the token contract, as well as the keyring address.Here is how you call the deploy function using caver-js:// KIP-7 token deployment — caver-jsconst initialSupply = new BigNumber(‘1000000000000000000’)const params = { name: ‘TestToken’, symbol: ‘TTK’, decimals: 18, initialSupply }const kip7 = await caver.kct.kip7.deploy(params, keyring.address)And with caver-java:// KIP-7 token deployment — caver-javaBigInteger initialSupply = new BigInteger(“1000000000000000000”);KIPDeployParams params = new KIP7DeployParams(“TestToken”, “TTK”, 18, initialSupply);KIP7 kip7 = KIP7.deploy(caver, params, keyring.getAddress());This is what goes on inside when the deploy function for KIP-7 is called:First, a SmartContractDeploy transaction is created using the parameter passed by the deploy method. Then the transaction will be signed via the keyring stored in the in-memory wallet, and the signed transaction will be sent to Klaytn Network to deploy the KIP-7 token contract. The KIP-7 instance will then be returned, which contains the deployed addresses. You can use them to run contracts deployed on the network.5.3. Calling the Deployed KIP-7 Contract FunctionLet’s continue from the point where the KIP-7 instance was returned as a result of deploying the token contract. To execute the contract, you have to call the KIP-7 instance method. Depending on the type, smart contract functions mainly work in two ways.5.3.1. Functions that retrieve contract dataA function that simply retrieves the contract state without changing it, does not create any transactions internally. For demonstration we will use a function that returns “name”, which is one of the metadata of KIP-7 token contract.Here is how you call the name function using caver-js:// retrieving the name of the KIP-7 token contract- caver-jsconst name = await kip7.name()And with caver-java:// retrieving the name of the KIP-7 token contract — caver-javaString name = kip7.name();Following the simple steps above lets you retrieve the name of an actual KIP-7 token contract.5.3.2. Functions that change the contract stateA function that does make changes to the contract state can also be executed by calling the KIP-7 method. However, the process is actually a bit more complicated since the transaction for modifying contract state must also be transmitted to the network. When the user calls such a method, a SmartContractExecution transaction is created on the basis of the received parameters, which is signed using the keyring stored in the in-memory wallet and then sent to the Klaytn Network.We will demonstrate this by using the transfer function for sending tokens.Here is how you call the transfer function using caver-js:// Sending KIP-7 token — caver-jsconst opts = { from: keyring.address }const to = ‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’const value = 1const receipt = await kip7.transfer(to, value, opts)And here is how you do it using caver-java:// Sending KIP-7 token — caver-javaSendOptions opts = new SendOptions();opts.setFrom(keyring.getAddress());String to = “0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d”BigInteger value = BigInteger.ONETransactionReceipt.TransactionReceiptData r = kip7.transfer(to, value, opts);With both caver-js and caver-java, you will have to pass the necessary data for creating transactions as the last parameter. `kip7.transfer` uses opts.from internally for selecting the sender of a SmartContractExecution transaction. After the transaction is complete, a receipt containing the results will be returned.6. ConclusionIn this post we have looked at the definition, motivation for developing Common Architecture and some examples. With the introduction of the Common Architecture, developing with Caver in different languages has become much more consistent. We expect that users of both caver-js and caver-java will be able to use Caver in other languages as well.Below you will find all the codes that were demonstrated in the article. We encourage you to try out Caver’s Common Architecture yourself and let us know what you think!We hope this post improves your development experience with Klaytn. Thank you for reading and stay tuned for more on Klaytn Medium!// Sending KLAY — caver-jsconst keystore = fs.readFileSync(‘keystore.json’, ‘utf8’)const keyring = caver.wallet.keyring.decrypt(keystore, ‘password’)caver.wallet.add(keyring)const vt = new caver.transaction.valueTransfer({from: keyring.address,to: ‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’,value: 1,gas: 25000,})await caver.wallet.sign(keyring.address, vt)const result = await caver.rpc.klay.sendRawTransaction(vt)// Sending KLAY — caver-javaFile file = new File(‘./keystore.json’);ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, “password”);caver.wallet.add(keyring);ValueTransfer vt = new ValueTransfer.Builder().setKlaytnCall(caver.rpc.klay).setFrom(keyring.getAddress()).setTo(‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’).setValue(BigInteger.ONE).setGas(BigInteger.valueOf(25000)).build();caver.wallet.sign(keyring.getAddress(), vt);Bytes32 hash = caver.rpc.klay.sendRawTransaction(vt).send();// Creating my own token — caver-jsconst keystore = fs.readFileSync(‘keystore.json’, ‘utf8’)const keyring = caver.wallet.keyring.decrypt(keystore, ‘password’)caver.wallet.add(keyring)const initialSupply = new BigNumber(‘1000000000000000000’)const params = { name: ‘TestToken’, symbol: ‘TTK’, decimals: 18, initialSupply }const kip7 = await caver.kct.kip7.deploy(params, keyring.address)const name = await kip7.name()const opts = { from: keyring.address }const to = ‘0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d’const value = 1const receipt = await kip7.transfer(to, value, opts)// Creating my own token — caver-javaFile file = new File(‘./keystore.json’);ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, “password”);caver.wallet.add(keyring);BigInteger initialSupply = new BigInteger(“1000000000000000000”);KIPDeployParams params = new KIP7DeployParams(“TestToken”, “TTK”, 18, initialSupply);KIP7 kip7 = KIP7.deploy(caver, params, keyring.getAddress());String name = kip7.name();SendOptions opts = new SendOptions();opts.setFrom(keyring.getAddress());String to = “0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d”BigInteger value = BigInteger.ONETransactionReceipt.TransactionReceiptData r = kip7.transfer(to, value, opts);Common Architecture of Caver was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 03. 02

[공지] Klaytn SDK (caver-js, ...

Klaytn SDK caver-js v1.5.7과 caver-java v1.5.7이 릴리즈되었습니다.caver-js, caver-java v1.5.7에서는 KIP-37 API를 지원합니다. 사용자는 이 기능을 사용하여 KIP-37 토큰 컨트랙트를 쉽게 배포하고 실행할 수 있습니다. 또한 KCT Contract Detection 기능을 제공하여, 네트워크에 배포된 토큰 컨트랙트가 어떠한 인터페이스를 구현하고 있는지 탐지할 수 있는 기능을 제공합니다.KIP-37: 멀티 토큰 스탠다드caver-js v1.5.7에서는 `caver.kct.kip37`에서 멀티 토큰(KIP-37) 관련 함수를 제공합니다.caver-java v1.5.7에서는 `com/klaytn/caver/kct/kip37`에서 멀티 토큰(KIP-37) 관련 함수를 제공합니다.KCT 인터페이스 탐지caver-js v1.5.7에서는 `caver.kct.kip7.detectInterface`, `caver.kct.kip17.detectInterface` 그리고 `caver.kct.kip37.detectInterface`를 사용하여 해당 컨트랙트가 구현한 KCT 인터페이스를 확인할 수 있습니다.caver-java v1.5.7에서는 `KIP7.detectInterface`, `KIP17.detectInterface` 그리고 `KIP37.detectInterface`를 사용하여 해당 컨트랙트가 구현한 KCT 인터페이스를 확인할 수 있습니다.caver-js v1.5.7에 대한 더욱 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-js/releases/tag/v1.5.7.caver-java v1.5.7에 대한 더욱 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-java/releases/tag/v1.5.7.caver-js 패키지는 다음 링크에서 다운로드할 수 있습니다.https://www.npmjs.com/package/caver-js/v/1.5.7.caver-java 패키지 의존성 설정은 다음 링크에서 확인할 수 있습니다.https://bintray.com/gx-devops/maven/caver-java.[공지] Klaytn SDK (caver-js, caver-java) v1.5.7 릴리즈 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 24

[Notice] Klaytn SDK (caver-...

Today we are excited to announce that the Software Development Kits (SDKs) of Klaytn v1.5.7 have just been released.caver-js and caver-java v1.5.7 support KIP-37 APIs. Users can easily deploy and execute KIP-37 token contracts using this feature. In addition, the KCT Contract Detection function can detect which interfaces a token contract implements.KIP37: Multi-token standardIn caver-js v1.5.7, the API functions for multi-token (KIP-37) are provided in `caver.kct.kip37`.In caver-java v1.5.7, the API functions for multi-token (KIP-37) are provided in `com/klaytn/caver/kct/kip37`.Detecting interfaces of KCT contractsIn caver-js v1.5.7, you can detect KCT interfaces of the given contract using the following functions: `caver.kct.kip7.detectInterface`, `caver.kct.kip17.detectInterface` and `caver.kct.kip37.detectInterface`.In caver-java v1.5.7, you can detect KCT interfaces of the given contract using the following functions: `KIP7.detectInterface`, `KIP17.detectInterface` and `KIP37.detectInterface`.For detailed information about caver-js v1.5.7, please refer to https://github.com/ground-x/caver-js/releases/tag/v1.5.7.For detailed information about caver-java v1.5.7, please refer to https://github.com/ground-x/caver-java/releases/tag/v1.5.7.Refer to https://www.npmjs.com/package/caver-js/v/1.5.7 to download the caver-js.Refer to https://bintray.com/gx-devops/maven/caver-java to download the caver-java.[Notice] Klaytn SDK (caver-js, caver-java) v1.5.7 Released was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 24

KAS를 이용하여 Klaytn 지갑 기능 개발하기 #1

KAS 소개KAS(Klaytn API Service)는 Klaytn의 기능을 API 서비스로 제공해주고, Klaytn을 이용하는 사용자가 애플리케이션을 더 쉽고 빠르게 개발할 수 있도록 도와주는 클라우드 플랫폼입니다.현재 KAS에서 제공하는 서비스는 Wallet API, TokenHistory API, Anchor API, Node API 입니다. 이 글에서는 KAS에서 제공하는 다양한 API 서비스를 통해서, Klaytn을 이용하는 블록체인 애플리케이션을 보다 쉽게 개발하는 방법에 대해서 소개합니다.최근 블록체인 지갑을 통한 앱 사용자 확보 및 연계 서비스에 대한 관심이 매우 높아지고 있는데요, KAS를 이용해서 Klaytn 기반의 지갑 서비스 기능을 어떻게 개발할 수 있을지 알아보겠습니다.Klaytn 지갑 기능 설계사용 시나리오 분석Klaytn 블록체인을 사용한 지갑 개발에 앞서, 사용자 관점에서 요구되는 기능으로는 어떤 것들이 있는지 분석해보도록 하겠습니다. 대부분의 암호화폐 기반이 그렇듯 사용자 관점에서 가장 관심있을 만한 것은 토큰 관리 기능이겠죠? 1편에서는 KAS를 이용하여 Klaytn 계정을 생성하고 Klaytn 블록체인의 메인 토큰, KLAY 활용 방법에 대해 소개합니다. Klaytn 블록체인 기반의 서비스를 위해서는 사용자 관점에서 계정 관리와 KLAY 관리, 크게 두 가지 카테고리로 기능을 나눌 수 있습니다. 아래 그림에서 조금 더 상세하게 살펴보면, 계정 관리는 계정 생성, 조회, 삭제 등의 기능이 있고, KLAY 관리 측면에서는 KLAY 거래와 거래내역 조회로 나눌 수 있습니다.Deployment Architecture앞서 Klaytn 블록체인 기반의 지갑을 만들기 위해 필요한 기본 기능 두 가지를 소개드렸는데요. 이를 실제로 구성하려면 크게 사용자 UI를 제공하는 애플리케이션(Wallet App)과, KAS 서비스와 통신하는 지갑 백엔드 서버(Wallet Server)가 필요합니다. 지갑 백엔드 서버는 사용자를 관리하거나 독자적인 기능을 제공하기 위해서 데이터베이스를 갖추게 될 것입니다.위에서 정의한 사용자 시나리오를 만족하기 위해서는, 현재 KAS에서 제공하는 서비스 중에서 Wallet API, Node API, TokenHistory API를 이용하여야 합니다. 아래의 그림은 지갑 서비스와 KAS 서비스 간의 연결성 관점에서의 추상적인 deployment 아키텍처입니다.KAS 개발환경 구축KAS를 이용한 개발을 준비하기 위해서는 먼저 KAS 문서를 참고해 KAS Console 회원 가입을 진행합니다. 다음으로 서비스 API를 사용하기 위한 자격 증명을 발급받아야 합니다. 자격 증명 발급은 KAS Console > Security > Credential에서 가능한데, 발급받은 Access Key와 Secret Key를 잊지 않도록 기록해두어야 합니다.Klaytn 지갑 기능 개발이 단락에서는 사용자의 Klaytn 계정 관리, KLAY 거래, KLAY 거래 내역 조회라는 3개의 기능을 개발하는 방법에 대해서 알아보겠습니다.개발 튜토리얼은 KAS SDK를 사용하는 환경 기준으로 설명합니다. 만약 KAS SDK로 제공하지 않는 개발 언어를 사용하는 환경이라면 KAS 문서를 참고할 수 있습니다. Klaytn 지갑 기능을 개발하기 위해서 전체 기능의 도식도를 살펴보면, 아래와 같이 Wallet, Node, Token History 서비스를 사용함을 알 수 있습니다.Klaytn 계정 관리지갑 서비스를 만들려면 먼저 개인 키와 공개 키로 구성되는 사용자의 Klaytn 계정을 생성해야 합니다. 만약 사용자 다수의 개인 키를 관리하다가 내부 또는 외부 요인으로 키가 유출되는 사고가 발생하면 어떻게 될까요? 지갑 서비스를 사용하는 모든 사용자의 자산이 위협받게 됩니다. 그래서 KAS는 Klaytn 서비스를 개발하고자 하는 많은 개발자와 사용자의 키를 안전하게 보관할 수 있도록 Wallet 서비스를 제공하고 있습니다.KASWallet 서비스는 Hardware Security Module(HSM)이라는 안전한 보안 장비를 기반으로 키를 관리합니다. HSM은 내부자가 키를 알 수 없는 것은 물론이고, 설령 사용자의 키가 노출되더라도 암호학적으로 키를 알 수 없도록 설계되어 있죠. 그러니 안심하고 KASWallet 서비스를 이용할 수 있습니다.지갑 서비스를 개발하기 위해서 지갑 사용자와 KAS에서 제공하는 Klaytn 계정이 어떻게 연결되는지 생각해볼 필요가 있습니다. 지갑 서비스를 사용하는 사용자의 입장에서 볼 때 Klaytn의 계정 주소는 복잡해서 외우기는 물론 사용하기도 힘들겠죠? 그래서 Klaytn의 계정을 사용자가 읽을 수 있는 형태의 사용자 ID로 연결시키는 작업이 필요합니다. 바로 아래의 그림 처럼요.Entity Relationship Diagram(ERD)에서 Account는 KASWallet 서비스를 통해서 조회할 수 있는 정보이며, 지갑 서비스에서는 사용자 정보를 관리해야 합니다. 따라서 지갑 서비스 사용자가 회원 가입할 때 연동되는 KASWallet 계정을 생성하여 아래의 코드와 같이 연결할 수 있습니다.// controllers/user.jsUser = require('../models/user');const CaverExtKAS = require('caver-js-ext-kas');const caver = new CaverExtKAS();caver.initKASAPI( 1001, accessKey, secretKey,);exports.signup = async (req, res) => { var user = new user(); user.name = req.body.name; user.phoneNumber = req.body.phone; user.password = req.body.password; // KAS: Create a Klaytn account. const result = await caver.kas.wallet.createAccount(); user.address = result.address; user.save(function (err) { if (err) res.json(err); res.json(user); });};KLAY 거래앞에서 우리는 지갑 서비스에 필요한 Wallet 서비스 계정 연결을 진행해보았습니다. 이제는 사용자 A가 사용자 B에게 KLAY를 전송하는 과정을 살펴보겠습니다.지갑 서비스에서 사용자 A가 사용자 B의 ID만 알 뿐, Klaytn 계정 같은 복잡한 주소는 모른다고 가정해봅시다. 지갑 서비스는 사용자 ID를 받아서 연결된 Klaytn 계정으로 변환한 후에 Wallet 서비스를 통해서 KLAY를 전송할 수 있습니다. 아래 코드에서 자세히 살펴보세요.// controllers/token.jsUser = require('../models/user');const CaverExtKAS = require(‘caver-js-ext-kas’);const caver = new CaverExtKAS();const accessKey = '';const secretKey = '';caver.initKASAPI(1001, accessKey, secretKey);exports.transfer = async (req, res) => { // NOTE: authenticate requester. const value = req.body.value;const fromUser = await User.findOne({ name: req.body.fromUser }); const toUser = await User.findOne({ name: req.body.toUser }); // NOTE: you need to handle errors // KAS: invoke a value transfer transaction const tx = { from: fromUser.address, to: toUser.address, value: value, submit: true, }; const result = await caver.kas.wallet.requestValueTransfer(tx); res.json(result);};계정 조회두 사용자 간의 거래가 정상적으로 이루어졌는지 확인하려면 Klaytn 계정의 밸런스를 조회해야 합니다. KAS의 Node 서비스로 조회 기능을 이용할 수 있습니다. KAS의 Node 서비스는 Klaytn 노드가 제공하는 기능을 KAS에서 제공하는 기능으로, KEN을 직접 운영하는 것에 비해서 높은 안전성을 제공할 수 있도록 구성되되어 있습니다. 따라서 원활한 서비스 운영을 위해 KAS의 Node 서비스를 이용하도록 권장합니다. 아래 코드에서 지금껏 설명한 계정의 밸런스 조회 방법을 확인할 수 있습니다.// controller/user.js// ... omitted ...exports.get = async (req, res) => { const user = await User.findOne({ name: req.params.name }); const balance = await caver.rpc.klay.getBalance(user.address); res.json({ ...user._doc, balance, });};KLAY 거래 내역 조회KLAY 거래 내역을 조회하기 위해서는 KAS의 Token History 서비스를 이용해야 합니다. Token History 서비스는 Klaytn에 존재하는 KLAY, FT, NFT 등 다양한 토큰의 송수신 내역 조회 API를 제공합니다. 토큰 히스토리가 제공하는 송수신 내역은 Klaytn의 트랜잭션 내역을 기반이기 때문에계정 주소의 송수신 내역보다는 사용자 친화적인 관점에서 사용자 이름을 기반으로 한 송수신 내역을 보여줄 필요가 있습니다. 그러려면 아래와 같은 코드처럼, KAS의 Token History 서비스를 이용해 송수신한 거래내역을 지갑 서비스에서 관리하는 사용자 이름으로 변환해주는 과정이 필요합니다.// controllers/token.js// ... omitted ...exports.history = async (req, res) => { const user = await User.fineOne({ name: req.params.name });const result = await caver.kas.tokenHistory.getransferHistoryByAccount( user.address, ); Promise.all( result.items.map(async (el) => { console.log(el); const peb = cv.utils.hexToNumberString(el.value); const fee = cv.utils.hexToNumberString(el.fee); const ef = cv.utils.toChecksumAddress(el.from); let from = user.address == ef ? user : await User.findOne({ address: ef}); from = from ? from.name : ef; const et = cv.utils.toChecksumAddress(el.to); let to = user.address == et ? user : await User.findOne({ address: et}); to = to ? to.name : et; console.log(from, to); return { from, to, fee: cv.utils.fromPeb(fee, 'KLAY'), value: cv.utils.fromPeb(peb, 'KLAY'), }; }); ).then((data) => res.json(data));}; 결론#1에서는 Klaytn 지갑이 제공하는 다양한 기능 중에서 KAS API를 활용한 Klaytn 지갑 기능 개발 방법을 알아보았습니다.#2에서는 Klaytn의 KIP-17이라는 표준을 사용하여 생성한 토큰 관리 기능을 살펴보도록 하겠습니다.ReferencesKAS Wallet API Reference: https://refs.klaytnapi.com/ko/wallet/latestKAS Token History API Reference: https://refs.klaytnapi.com/ko/th/latestKAS Node API Reference: https://refs.klaytnapi.com/ko/node/latestKAS Docs: https://docs.klaytnapi.com/KAS를 이용하여 Klaytn 지갑 기능 개발하기 #1 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 19

Klaytn State Migration: An ...

In this post we will introduce the concept of “State Trie Migration’’, which is a process for reducing chain data on Klaytn. This is a more detailed version of the If(Kakao) 2020 presentation (in Korean) given by our developer Ethan.NOTE: If you are curious about how to run state migration, please refer to Klaytn v1.5.0 State Migration: Saving Node Storage.What is Blockchain Storage?Blockchain storage is where all the blockchain-related data gets saved. It looks something like this:Blockchain data is basically a chain of blocks connected to one another, and each block includes a block header, the body and the receipt. The data of the current state forms the so-called trie structure, which can be accessed through the state root contained in the block header. As such, various data elements exist on the blockchain, which eventually get stored in the database (LevelDB).Motivation for Development and Current State of StorageOn Klaytn’s mainnet Cypress, about 1.2TB of chaindata (the entire data of a given blockchain) have been accumulated since the genesis block. This chaindata is what is required if you want to operate a node on Cypress, but the costs ensuing from the storage have been pretty demanding.The size of the chaindata on Cypress as of December 3rd 2020 is as follows:Full node: 1.2TB in Full Node (Node which stores state in the storage for every 128 blocks)942G ./statetrie92G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc288K ./bridgeservice1.2T .A full node, which stores the state of the last 128 blocks, uses up about 1.2TB of data, 942GB of which are attributable to the state trie.Archive node: 2.3TB (Node which stores state for every new block)2.0T ./statetrie92G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc48K ./bridgeservice2.3T .An archive node that stores the state for every block contains 2.3TB of chaindata, about 2TB are basically state tries.Characteristics of the State TrieLet’s take a closer look at the state trie, which takes up the most storage space in the chaindata. A state trie contains nonces, balances and account keys of all accounts (including contracts) that exist on Klaytn. In the case of a contract account, it has a separate storage trie, which also gets stored in the state trie.The data is saved in the form of a trie and each trie node is stored in the form of a key/value. As can be seen below, each trie node is stored in the existing database in the form of a key/value. A key is the hash of the trie node’s value, so even if there are several identical trie nodes, they will be stored as one unique record in the database.The Idea behind State Trie MigrationAs we have seen so far, every block contains a state trie. But notice below the trie nodes A and B, which only exist in block #100 and are not necessary for processing block #102.That is how unnecessary trie nodes start to pile up. And the idea was that removing these trie nodes would not affect the processing of new blocks, even though past state would not be retrievable.On Ethereum there is the “fast sync” option; basically, when you start a new node, you sync the last state via p2p, and only the new blocks added from that point on will be processed. But Klaytn went further and thought of ways to reduce data size without having to compromise the newly added as well as the currently running nodes.Process of State MigrationHere is a step-by-step process:Create a new DB (a new state trie database). First, you need to create a DB for a new state trie once you know which block you want to perform the migration on. This new DB will store the state trie of the newly added blocks including the block, which you chose for the migration.Traverse the state trie of the migrated block and copy it in the new state trie DB.After the migration is complete, delete the old DB.Now you have a new DB, which stores the state of the specified block and the new blocks.State Trie Migration may be a simple process, but it’s not really a quick one. And new blocks will be added during the migration and they should also be processed, with their results written on the new DB as well. In the diagram below, the new block #102 is being processed while migration for block #101 is still in progress, which means both new and existing DBs have to be queried.Result of the State MigrationLet’s take a look at the changes in the storage after the migration. The state trie, which used to take up 942GB of storage space in the full node, has been greatly reduced by 94% to 55GB.Migrated Full node: 294GB(node which saves state for block #45,131,309 and every 128 blocks)55G ./statetrie_migrated_4513130992G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc344K ./bridgeservice294G .Technical Issues and ResolutionIn the process of developing State Migration, we achieved higher speed through performance optimization.Performance/Memory Optimization for State MigrationParallel ProcessingAfter the first implementation of State Migration, it was found that it took more than several weeks on AWS EC2 m5.4xlarge instance. It was then reduced to three days by parallel copying of the DB.2. Optimized writing of duplicate trie nodesAs of block #45,131,309, there are about 800 million nodes in the state trie, but excluding the duplicates, about 400 million. In order to eliminate the duplicates, the hash of the state trie already written on the DB gets stored. Before requesting a store to the DB, it checks whether the state trie node is already stored in the DB. It cuts down the required time from three days to one.3. LRU-based Key CachingWhen processing duplicate trie nodes, all trie node keys have to be stored, which requires over 20GB memory space for Cypress. But there are about 100 million duplicate nodes, and, by using 2GB LRU cache, the achieved performance was just like how it would have been if you had stored and checked all the trie node keys.Aborted Migration and ErrorsSince State Migration takes more than a day, the possibility of a termination or an unexpected error must also be taken into account. For this reason, we made it so that the trie nodes from the latest block can be stored in both the existing as well as the new DBs even when the State Migration is in process. Even when the migration is aborted, it is still possible to keep the existing DB and delete the new. And when the migration is complete, the new DB can be kept in place of the old one.We’ve taken a look at the technical aspects of the State Migration process. We hope this could make the operation of Klaytn Node easier and more affordable by reducing the size of the chaindata on Cypress. But we won’t stop exploring more options in order to promptly remove nonessential trie nodes while each new block is being processed, ultimately to enhance the sustainability of state trie operations.State Trie Migration can be implemented by calling startStateMigration API, with Klaytn v1.5.0 or higher. We encourage you to give it a go. For more details on how to use State Migration, refer to this link: Klaytn v1.5.0 State Migration: Saving Node Storage.We hope that this post is helpful in reducing your block data. Klaytn team is always committed to providing our users new and better features by putting ourselves in the users’ shoes, and we will continue to do so in the future!Thank you and stay tuned for our next post!Klaytn State Migration: An Efficient Way to Reduce Blockchain Data was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 08

[공지] KAS SDK(caver-js-ext-k...

KAS SDK caver-js-ext-kas v1.1.0과 caver-java-ext-kas v1.1.0이 릴리즈되었습니다.KAS SDK v1.1.0에서는 KAS에 새롭게 추가된 KIP-17 API를 제공합니다. 사용자는 이 기능을 사용하여 KAS에서 KIP-17 토큰 컨트랙트를 쉽게 사용하고 관리할 수 있습니다. Token History API와 Wallet API에서도 KAS v1.1에 새롭게 추가된 API를 지원합니다.KAS에 있는 Klaytn 계정을 사용하여 KIP-17 토큰 컨트랙트 사용과 관리를 편하게 돕는 KIP-17 APIKAS SDK v1.1.0에서는 `caver.kas.kip17`를 사용하여 KAS에서 제공하는 KIP-17 API를 사용할 수 있습니다.KAS Token History API의 새로운 API 지원KAS SDK v1.1.0에서는 `caver.kas.tokenHistory`에서 멀티 토큰(KIP-37) 관련 함수를 추가 제공합니다.KAS Wallet API의 새로운 API 지원KAS SDK v1.1.0부터 `caver.kas.wallet` 을 통하여 KAS Wallet의 키 관리 API를 사용할 수 있습니다.KAS SDK v1.1.0부터 `caver.kas.wallet` 을 통하여 KAS Wallet의 외부 계정 마이그레이션 API를 사용할 수 있습니다.caver-js-ext-kas v1.1.0에 대한 더욱 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-js-ext-kas/releases/tag/v1.1.0.caver-java-ext-kas v1.1.0에 대한 더욱 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-java-ext-kas/releases/tag/v1.1.0.caver-js-ext-kas 패키지는 다음 링크에서 다운로드할 수 있습니다.https://www.npmjs.com/package/caver-js-ext-kas/v/1.1.0.caver-java-ext-kas 패키지 의존성 설정은 다음 링크에서 확인할 수 있습니다.https://bintray.com/gx-devops/maven/caver-java-ext-kas.[공지] KAS SDK(caver-js-ext-kas, caver-java-ext-kas) v1.1.0 릴리즈 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 01

[Notice] KAS SDK v1.1.0 Rel...

[Notice] KAS SDK(caver-js-ext-kas, caver-java-ext-kas) v1.1.0 ReleasedToday we are excited to announce that the Software Development Kits (SDKs) of Klaytn API Service (KAS) v1.1.0 have just been released.KAS SDK v1.1.0 provides the KIP-17 API newly added on KAS. Users can easily manage and use KIP-17 token contracts through KAS by using the functions provided by KAS SDK. As for TokenHistory and Wallet, the newly added APIs on KAS v1.1 are supported.KIP-17 API to easily use and manage KIP-17 token contracts using Klaytn account in KASWith KAS SDK v1.1.0, you can use the KIP-17 API provided by KAS by using `caver.kas.kip17`.New API support of KAS Token History APIIn KAS SDK v1.1.0, additional API functions for multi-token (KIP-37) are provided in `caver.kas.tokenHistory`.New API support of KAS Wallet APIFrom KAS SDK v1.1.0, you can use the Key Management API of KAS Wallet API through `caver.kas.wallet`.From KAS SDK v1.1.0, you can use the External Account Migration API of KAS Wallet API through `caver.kas.wallet`.For detailed information about caver-js-ext-kas v1.1.0, please refer to https://github.com/ground-x/caver-js-ext-kas/releases/tag/v1.1.0.For detailed information about caver-java-ext-kas v1.1.0, please refer to https://github.com/ground-x/caver-java-ext-kas/releases/tag/v1.1.0.Refer to https://www.npmjs.com/package/caver-js-ext-kas/v/1.1.0 to download the caver-js-ext-kas.Refer to https://bintray.com/gx-devops/maven/caver-java-ext-kas to download the caver-java-ext-kas.[Notice] KAS SDK v1.1.0 Released was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 02. 01

Klaytn v1.5.0 State migrati...

In this post we introduce you to Klaytn v1.5.0’s new feature called the state migration, which allows you to keep the only the latest states starting from the block on which the migration was performed on the chain while dumping the unnecessary, outdated states and data, letting you save up to 75% of node storage.OverviewWhat is the State Trie?On Klaytn, all account information is stored in a data structure called the Merkle Patricia Trie, also called the state trie. This trie is stored in the Klaytn Node storage.Every block in the blockchain has a state trie. In other words, one Klaytn block contains one state trie, which stores information about the accounts.What is State Migration?State Migration is a process by which the state trie before a specific block is completely deleted from the node storage. By keeping only the state tries from that block, along with the blocks that will be added afterwards, the node will only have the fresh chaindata that you need for operating Endpoint Nodes (EN), which saves a lot of space.State migration consists of the following steps:1. Choose the block for migrationChoose which block’s state trie you want remained in the EN Storage. In other words, you are determining a certain point from which you want to keep the data.2. Copy the block’s state trieOnce you have chosen the block, the state of which you want to migrate, it creates a new database. By traversing the state trie of the specified block in the existing database, every node in the state trie is copied to the new database.NOTE: As the state trie of the specified block is being copied, new blocks are continuously being added to the blockchain.3. Validate the copied state trieOnce the state trie of the specified block has been copied into the new database, it should now be validated to see if all the data has been copied intactly.4. Delete the old database, start storing on the new databaseAfter validation, it deletes the old database and starts storing the state tries for newly added blocks in the new database.Recommended System RequirementsIn order to perform state migration, a m5.4xlarge instance is required on AWS at minimum. A complete session of state migration takes about 50 hours (for Cypress, as of August 2020). This is the time that is required for synchronizing the latest blocks as well as for traversing the block’s state trie, copying the trie nodes into the new database, and validating them. It will take less time if you use a larger instance. It takes about 30 hours with m5.8xlarge.PrerequisitesTo run state migration, Klaytn v1.5.0 or later is required. To update, download Klaytn 1.5.0 binary (link), stop the existing node, replace the downloaded binary and then install Klaytn again. The update process may vary according to the system environment. For details, please refer to the EN installation guide.Getting Started with State MigrationExecuting State MigrationTo perform state migration, you must be able to use Admin API on your Klaytn node. Connect to the node via IPC or temporarily activate Admin API on RPC/WS. For detailed information about how to connect to the Klaytn node via IPC or using Admin API, please refer to JSON-RPC APIs and Admin APIs.> ken attach ~/datadir/ken.ipcWelcome to the Klaytn JavaScript console!instance: Klaytn/v1.5.0+94c52174fe/linux-amd64/go1.14.1datadir: /data/kend/datamodules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0> admin.startStateMigration()nullIf you have successfully started state migration, admin.startStateMigration() will return null. Once state migration has kicked off, the state trie of the specified block will be traversed and then copied into the new database while new blocks are continuously being processed.Log at the Start of State MigrationAfter a successful start of state migration, the following logs will be shown in the log file:INFO[07/20,20:44:35 +09] [5] State migration is prepared expectedMigrationStartingBlockNumber=29911450…INFO[07/20,20:55:51 +09] [5] State migration is started block=29911450 root=06b082d~60b893INFO[07/20,20:56:06 +09] [44] Add a new stakingInfo to stakingInfoCache and stakingInfoDB blockNum=29894400INFO[07/20,20:56:06 +09] [46] Start setting a new database for state trie migration blockNum=29911450INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/0 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/1 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/2 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/3 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] Created a new database for state trie migration newStateTrieDB=/data/kend/data/klay/chaindata/statetrie_migrated_29911450INFO[07/20,20:56:06 +09] [47] Persisted nodes from memory database by Cap nodes=0 size=0.00B time=6.031µs flushnodes=0 flushsize=0.00B flushtime=5.704µs livenodes=1 livesize=0..00BMonitoring State MigrationChecking State Migration Progress with LogsWhile state migration is ongoing, you can regularly check the progress of the state migration via logs as shown below.Progress Logs Printed with a 10-second IntervalINFO[07/20,20:56:28 +09] [5] State migration progress progress=0% totalRead=2321 totalCommitted=0 pending=37134 read=2321 readElapsed=22.184223002s processElapsed=33.163185ms written=0 writeElapsed=17.257µs elapsed=22.217s totalElapsed=22.21783843s…INFO[07/21,08:44:33 +09] [5] State migration progress progress=64.917% totalRead=106657041 totalCommitted=106654913 pending=13469 read=19456 readElapsed=11h36m47.910769711s processElapsed=5m7.371806884s written=19717 writeElapsed=5m25.733869118s elapsed=10.147s totalElapsed=11h48m26.757580868sChecking State Migration Status via RPC APIYou can also check the progress of State Migration via RPC API. The result below shows that the state trie copying is about 64% complete.> admin.stateMigrationStatus{ committed: 106743172, err: “null”, isMigration: true, migrationBlockNumber: 29911450, pending: 12036, progress: 64.9169921875, read: 106745105}Validation of the Copied State TrieOnce the state trie copy is done, logs will be printed as shown below. Next, it has to be validated whether the state trie has been intactly copied.The status of the validation can be checked with the logs as shown below.Validation Status LogsINFO[07/23,11:11:22 +09] [5] State migration progress progress=100% totalRead=368572444 totalCommitted=368572444 pending=0 read=5374 readElapsed=61h36m58.773140567s processElapsed=17m45.115580174s written=6488 writeElapsed=16m36.198342833s elapsed=4.207s totalElapsed=62h15m15.550216445sINFO[07/23,11:11:22 +09] [5] State migration : Copy is done totalRead=368572444 totalCommitted=368572444 totalElapsed=62h15m15.550264864s committed per second=1644.564INFO[07/23,11:11:22 +09] [6] CheckStateConsistencyParallel is started root=0x06b082dd3a077dee8fa7d0016ea9e96f64d8d40f3332ecff44c779b35f60b893 len(children)=16INFO[07/23,11:11:32 +09] [6] CheckStateConsistencyParallel progress cnt=35793…Completion of State MigrationChecking State Migration Completion LogsOnce the validation for copied state tries is done, state migration has been finished. If you see logs printed as below, it means that the state migration has been successfully completed.State Migration Completion LogINFO[07/25,09:20:12 +09] [6] CheckStateConsistencyParallel is done cnt=649698856 err=nilINFO[07/25,09:20:12 +09] [5] State migration is completed copyElapsed=62h15m15.550264864s checkElapsed=46h8m50.500767758sResults: Checking Chaindata Data Size ReductionThe chaindata storage for Cypress, Klaytn’s mainnet, is as follows (as of August 2020):> du -d1 -h651G ./statetrie56G ./body2.7G ./misc240K ./bridgeservice60G ./header6.5G ./txlookup40G ./receipts815G .After booting a new EN and performing state migration for Cypress on this EN, the chaindata is reduced as shown below.> du -d1 -h129G ./statetrie_migrated_2991145061G ./body3.0G ./misc240K ./bridgeservice69G ./header7.3G ./txlookup47G ./receipts315G .(The reason why the data for other directories has increased is because new blocks were added in the process of migration.)Things to Keep in Mind During State MigrationHere are some things to keep in mind during state migration:After migration, accounts will not be retrievable on past blocks since the old state tries are deleted.Do not restart a node while migration is still in progress. Restarting a node will make state migration start all over again, taking up more time.It can take an excessive amount of time if state migration is taking place on a smaller instance.A m5.4xlarge is recommended at minimum.SSD is preferred, not HDD.Due to Klaytn’s frequent I/O, meeting the IOPS requirement is crucial for better performance.ConclusionAs demonstrated above, state migration greatly reduces data in the storage on a Klaytn node. But having to manually carry out state migration may be a bit too demanding from the node operator’s perspective. That is why Klaytn Team is planning to keep on providing Cypress’ latest chaindata reduced by state migration, which will be performed periodically to optimize storage usage. With this chaindata, a node operator doesn’t have to migrate state tries him or herself, and instead directly downloads and replaces the chaindata on his/her node. To download the latest snapshot of the chaindata, check out the following links: Cypress, Baobab.We hope that this post is helpful in freeing up your storage size. Klaytn Team is always committed to making your Klaytn experience as convenient as possible. Thank you for reading and stay tuned for our next post!Klaytn v1.5.0 State migration: Saving Node Storage was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 01. 26

Klaytn State Trie Cache Ser...

Klaytn은 블록체인 플랫폼의 성능을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 state trie cache 성능 개선 과정을 살펴보고자 합니다.Cache 문제 원인 파악하기최적의 cache 찾기State trie cache miss 계산하기Cache Size Tuning 하기지난 포스트에서 cache miss에 영향을 끼치는 요인은 변경되는 state trie size(TotalAccounts, ActiveAccounts, TPS, trie node size)와 cache size이라는 가설을 세우고 실험을 통해 그 가설이 맞는 것을 확인해 보았습니다. 하지만 변경되는 state trie size를 파악하여 최적의 cache size를 구하는 일은 매우 어려운 일이기 때문에, 주어진 physical memory에서 최적의 cache size를 구하는 것이 cache miss를 줄이는 실현 가능한 방안이었습니다. 이번 포스트에서는 어떻게 최적의 cache size를 정하였는지 알아보겠습니다.다음 표는 기존 Bigcache와 cache size를 동일하게 설정한 Fastcache의 결과(tuning 전), 비슷한 여유 메모리를 가지도록 cache size를 증가시킨 fastcache의 결과(tuning 후)입니다. Tuning 후의 값은 테스트를 통하여 Bigcache의 여유 memory와 동일 수준인 cache size 크기를 찾았고, 이를 적용하였습니다.Cache size는 설정한 값이며, 사용 memory와 여유 memory는 테스트 측정 값입니다.위의 테스트 후 Fastcache 크기를 토대로 physical memory를 scaling하여 cache size를 자동으로 할당해 주었습니다. 그 scaling하는 알고리즘은 아래와 같습니다.if physicalMemMB < 20 * 1024 { cacheSizeMB := 1 * 1024} else if physicalMemMB < 100 * 1024 { cacheSizeMB := physicalMemMB * 0.3} else { cacheSizeMB := physicalMemMB * 0.35}메모리 크기가 20G 이하인 경우 약 10G의 여유를 두기 위해 cache size를 1G로 고정하였습니다. 20G 이상 100G 이하인 경우 물리 메모리의 30%를 할당하고 있으며 m5.2xlarge 기준으로 10G 여유공간이 있습니다. 100G 이상인 경우 물리 메모리의 35%를 할당하고 있으며 c5.18xlarge 기준으로 44.5G의 여유공간이 생깁니다.위의 테스트는 account 수가 많은 부하 상태에서 측정한 것이기 때문에 더 많은 메모리를 할당해 주어도 문제 없이 동작할 수 있습니다. 하지만 계산이 많은 API나 contract를 호출하면 그 만큼 메모리 사용량이 높아질 수 있으며 OOM 발생을 방지하기 위해 여유 공간을 충분히 두고 설정하였습니다.[참고사항] Klaytn 서버의 권장 사항은 m5.2xlarge입니다.Scaling logic을 통해 Fastcache에 cache size를 할당해 주면 위의 표와 같이 fastcache size가 할당됩니다. 위의 값은 충분히 높은 TPS와 많은 account 수에서 측정한 값을 기반으로 했기 때문에, 실제 메모리 사용량은 위 결과보다 낮을 수 있습니다. 더 빠르고 안정적인 실행을 위해 klaytn 실행 flag를 통해 fastcache의 size를 증가 시킬 수 있지만, out of memory가 발생할 수 있으니 주의해 주시기 바랍니다.Klaytn State Trie Cache Series를 통해 state trie cache를 향상시키는 과정에 대해 소개하였습니다. Klaytn에서 사용하는 cache의 문제를 발견하고, 그 대안으로 다른 cache를 탐색해 보았습니다. 또한, state trie cache의 cache miss를 발생시키는 요인을 분석하고 실험을 통해 검증하였으며, 주어진 physical 메모리에서의 적절한 cache size를 찾기 위해 cache size tuning을 적용하였습니다.이 포스팅을 마지막으로 state trie cache를 향상시키는 과정에 대한 설명을 마칩니다. Klaytn state trie cache에 관하여 질문이 있다면 이 포스팅에 댓글 혹은 클레이튼 포럼에 질문 부탁드리겠습니다. 감사합니다.Klaytn State Trie Cache Series #4: Cache Size Tuning 하기 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 01. 18

Klaytn State Trie Cache Ser...

Klaytn은 블록체인 플랫폼의 성능을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 state trie cache 성능 개선 과정을 살펴보고자 합니다.Cache 문제 원인 파악하기최적의 cache 찾기State trie cache miss 계산하기Cache Size Tuning 하기전 포스트에서 메모리 과사용 문제를 해결하기 위해 다양한 cache들을 비교하였고, Fastcache가 Klaytn에는 가장 적합한 캐시임을 확인했습니다. 이번 포스트에서 cache miss에 영향을 미치는 요인들을 살펴보고, 수학적으로 식을 정의하고, 그 식이 맞는지 테스트를 통해 검증합니다.Cache miss 계산을 위한 가정Cache miss의 계산은 다음과 같은 사항들을 가정하여 계산하였습니다.[1] 먼저, 계산하는 transaction 대상은 KLAY 전송입니다. 보내는 account와 받는 account 모두 보유량이 바뀌어야 하기 때문에, KLAY 전송 transaction 1개에 2개의 account 값이 바뀌어야 합니다.[2] contract가 생성/수정되지 않습니다. 실제 네트워크는 contract에 의해 state trie leaf에 sub-trie가 추가됩니다. contract에 대한 호출이 발생하지 않고, 따라서 추가적인 노드가 생성되지 않는다는 가정 하에 계산됩니다.[3] trie는 complete tree 형태입니다. Account address의 hash를 trie의 키로 사용하고 있는데, 이 hash의 substring이 겹치는 빈도는 매번 다르게 나타납니다 . 따라서, 실제 네트워크에서는 trie의 형태가 다양하게 생성될 수 있습니다.[4] 중복 선택은 제외하였습니다. 예를 들어, 한 블록 안에 A가 B에게, B가 C에게 보내는 transaction (B가 두 번 이상 바뀌는 일)은 발생하지 않는다고 가정합니다. 그렇다면 항상 하나의 transaction에 2개의 account, 즉 2개의 leaf가 바뀝니다. Klaytn에서는 1백만 이상의 account에 대해 고려하고 있고, 1백만의 account에서 1000 TPS(Transactions per second)로 블록이 생성되는 경우 최대 0.006%의 오차가 발생할 수 있기 때문에, 중복 선택을 제외하고 계산하여도 오차가 크지 않을 것이라고 추측 가능합니다.Cache miss 계산하기캐시에 저장되는 entry는 state trie node입니다. 각 state trie는 tree 모양을 하고 있는데, 이를 다음과 같이 삼각형으로 표현하고자 합니다.위 그림의 연회색 사각형이 cache를 의미하고, 안의 삼각형들이 각 block에서 추가된 state trie를 의미합니다. 이런 모형을 바탕으로 cache miss 계산에 대해 설명 드리고자 합니다.Cache miss는 위와 같은 요소에 영향을 받습니다. 각 값이 어떻게 설정되고 어떤 관계를 가지는지 알아보겠습니다.Total Accounts, Active Accounts, Updated AccountsTotalAccounts는 trie에 존재하는 전체 account 를 의미합니다. Trie의 크기와 깊이에 영향을 줍니다. ActiveAccounts는 활성 사용자들을 나타내며, TotalAccounts 중 임의로 선택된 account들입니다. 트랜잭션 생성에 사용하는 account는 ActiveAccounts 중에서 선택됩니다. ActiveAccounts의 수는 TotalAccounts의 수보다 작거나 같은 값을 가질 수 있습니다. 실제 계산과 테스트에서 TotalAccounts의 수는 1M ~ 50M의 값을, ActiveAccounts의 수는 TotalAccounts 수의 20%~100%되는 값을 선택하였습니다.[1] TotalAccounts와 ActiveAccounts를 분리시킨 이유는 현실 네트워크를 반영하기 위해서 입니다. 또한, 하위 계산식에서 볼 수 있듯 각 지표가 영향을 미치는 요소가 다릅니다. TotalAccounts는 trie의 크기와 depth에, ActiveAccounts는 트랜잭션를 생성할 때 사용하는 account에 영향을 미칩니다. ActiveAccounts가 TotalAccounts와 같은 경우도 생길 수 있습니다.[2] TPS는 초당 발생하는 트랜잭션을 의미합니다. 트랜잭션 마다 두 개의 account에 변경사항이 발생하기 때문에 실제로 변경되는 account는TPS ྾ 2가 됩니다. 만약, ActiveAccounts 수가 TPS ྾ 2보다 작거나 같으면, 매 블록에서 사용하는 account는 항상 동일한 값이 됩니다. 따라서, 바로 전 trie에서 해당 account를 찾을 수 있게 됩니다. 이럴 경우 cache miss가 날 확률은 0이 됩니다.[3] UpdatedAccounts는 매 블록에서 수정된 account를 의미합니다. UpdatedAccounts의 수는 ActiveAccounts의 수보다 작거나 같은 값을 가질 수 있습니다. UpdatedAccounts에 대한 자세한 설명은 Leaf 수 계산하기에서 하겠습니다.Leaf 수 계산하기그림의 ‘N번째 trie’는 새로 추가되는 block의 state trie를 나타냅니다. 여기서 노란색 동그라미가 leaf node를 의미합니다. 이 때, 새로 추가되는 block의 state trie를 UpdatedStateTrie, 이 trie의 크기를 UpdatedStateTrieSize라고 하겠습니다.KLAY 전송 transaction으로 1000TPS가 생성된다면, 2개의 account (보내는 account와 받는 account)를 임의로 선택하는 과정 1000번이 필요합니다. 즉, account 2000개가 선택되기 때문에 2000개의 leaf가 새로 생성된다고 할 수 있습니다. 이 때, 새로 추가된 account 수를 UpdatedAccounts라고 하며, 1000TPS가 발생할 때 UpdatedAccounts(혹은 Leaf 수)은 2000입니다.Cache에 저장 가능한 Trie 수 계산하기Cache에 저장 가능한 trie 수는 cache size에 trie size를 나눈 값(CacheSize / UpdatedStateTrieSize)입니다. 이 값을 다음 계산부터 r이라고 표시하겠습니다.CacheSize는 가용한 메모리 용량에 따라 사용자가 정의할 수 있는 파라미터이며, UpdatedStateTrieSize는 TotalAccounts와 TPS에 의해 계산될 수 있습니다. TotalAccounts가 1M 이면서 1000 TPS로 트랜잭션이 실행될 경우에 필요한 UpdatedStateTrieSize의 값은 아래의 표와 같이 계산할 수 있습니다.위와 같은 계산을 통해 Trie의 depth 별로 허용할 수 있는 노드 수를 알 수 있습니다. 예를 들어 1M의 account가 있다면, 최소 6th depth의 trie가 생성됩니다. 이 때 1000 TPS가 발생하였다면, 2000개의 leaf가 생성되며 6th depth에 2000개의 노드가 매 블록 생성됩니다. Leaf 노드 (6th depth의 노드)가 2000개 생성 되었기 때문에 5th depth에는 최대 2000, 4th depth에는 2000, 3th depth에는 최대 256, … 이 생성됩니다. 이를 모두 더하면 총 6273개의 노드가 매 블럭마다 생성되며, 평균 node 크기(200B)와 key 길이(16B)를 곱하면 6273 * (200 + 16) = 1.29MB (UpdatedStateTrieSize)가 새로 생성되는 것을 알 수 있습니다.TotalAccounts와 TPS 별로 UpdatedStateTrieSize계산은 다음 링크에서 확인할 수 있습니다. (링크의 계산은 중복 조합과 header size가 고려되었습니다.)Cache Miss 계산하기n번째 trie와 n-1번째 trie에서 account 하나씩 랜덤하게 선택했을 때, 이 둘이 같을 확률은 1/AcgtiveAccounts입니다. 반대로, 이 둘이 다를 확률은 1–(1/ActiveAccounts) 입니다.n번째 trie에 있는 account 1개가 n-1번째 trie에 있지 않을 확률은 앞에서 구한 식에 n-1번째 trie에서 생성된 UpdatedAccounts(leaf 수) 만큼 제곱 해주면 됩니다. 따라서 식은입니다. 똑같은 방식으로, n번째 trie에 있는 account 1개가 cache에 있는 모든 trie에 있지 않을 확률은입니다. 이 식은 n번째 trie에 있는 account 1개가 cache에 있지 않을 확률, 즉 1개의 entry가 cache miss날 확률과 같습니다.마지막으로, n번째 trie의 모든 account가 cache에 저장되어 있지 않을 확률은 앞의 식을 구하기 위해서을 UpdatedAccounts만큼 시행하면 됩니다. 따라서,입니다.테스트 결과Cache miss 계산식을 확인하기 위해 여러 조건에 따라 테스트를 진행하였습니다. ActiveAccounts, TPS, 또는 TotalAccounts만 변화시켰을 때의 CacheMiss를 계산하고 테스트를 통해 이를 확인하였습니다. 각 테스트의 자세한 계산식과 결과는 스프레드시트에서 확인하실 수 있습니다. 다음 표는 Active Accounts를 변화시켰을 때 cache miss를 계산한 것입니다.CacheSize가 512MB, 1024MB, 2048MB, 4096MB, 8192MB일 때, 그리고 ActiveAccounts가 1M, 0.8M, 0.5M, 0.3M, 0.2M일 때 확인하였습니다. 이 경우들에 대한 계산값과 측정값의 오차 평균은 2.86으로 비슷한 값을 나타내고 있는것을 확인할 수 있습니다.이 포스팅을 통해, 변경되는 state trie의 크기를 결정짓는 요소는 TotalAccounts, ActiveAccounts, TPS, Trie node size인 것을 알 수 있었습니다. Cache size가 주어졌을 때, 위 요소를 기반으로 cache miss가 얼마나 발생할 수 있는지 예측할 수 있으며, 또한 위 요소들을 기반으로 최적의 cache size를 도출할 수 있습니다. 하지만 TotalAccounts, ActiveAccounts, UpdatedAccount를 계속 추적하면서 최적의 cache size를 동적으로 찾는 것은 아주 어려운 문제이며, 최적의 cache size를 찾더라도 physical memory size를 고려하여 재조정하여야 합니다. 최적의 cache size를 동적으로 조절하는 방법은 계속하여 고민하고 발전시켜 나갈 예정입니다.다음 포스팅에서는 주어진 physical memory를 기반으로 어떻게 cache size를 설정할 수 있는지 알아보겠습니다.Klaytn State Trie Cache Series #3: State trie cache miss 계산하기 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

21. 01. 18

Klaytn State Migration : 블록...

Klaytn State Migration : 블록체인의 storage를 줄여보자본 포스팅을 통해 Klaytn chaindata를 줄일 수 있는 state trie migration 기술에 대해서 설명해 드리려고 합니다. 본 포스팅은 Kakao의 기술 포럼인 if Kakao에서 김경업 (Ethan) 개발자가 발표한 블록체인의 storage를 줄여보자: Klaytn의 혹독한 다이어트 일기 에 대한 세부 내용입니다.NOTE State migration의 사용 방법이 궁금하신 분은 Klaytn v1.5.0 State Migration: 노드 스토리지 절약하기를 참고 부탁드립니다.블록체인 Storage란?블록체인 내의 storage라 하면 블록체인 관련 데이터를 저장하는 저장소입니다. 블록체인의 데이터는 아래 그림으로 표현될 수 있습니다.블록체인의 데이터는 기본적으로 매 블록이 서로 연결된 구조이며 각 블록은 크게 Header, Body, Receipt로 구성되어 있습니다. 그리고 Header 안의 state root라는 값을 통해서 그림과 같이 trie 형태의 데이터가 존재하게 됩니다. 이것이 바로 각 블록의 현재 state를 나타내는 state trie입니다. 이렇게 다양한 데이터가 블록체인상에 존재하게 되며 이 데이터들은 최종적으로는 LevelDB라는 database에 저장이 되게 됩니다.개발 동기 및 현 Storage 현황Klaytn의 Mainnet인 Cypress의 경우 Genesis 블록 이후에 수많은 블록을 만들면서 Cypress의 chaindata (해당 블록체인의 모든 데이터)가 약 1.2 TB정도 쌓이게 되었습니다. Cypress의 node를 운영하기 위해서는 해당 chaindata가 필요하며 storage 비용에 대한 부담이 있었습니다.2020년 12월 3일 기준의 Cypress의 chaindata의 크기는 아래와 같습니다.Full node : 1.2 TB (128블록마다의 state를 스토리지에 저장하는 node)942G ./statetrie92G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc288K ./bridgeservice1.2T .128블록마다 state를 스토리지에 저장하는 full node의 경우 총 1.2TB 정도의 데이터를 사용 중입니다. 그 중 대부분인 942GB는 state trie가 차지하고 있습니다.Archive node : 2.3 TB (매 블록의 state를 스토리지에 저장하는 node)2.0T ./statetrie92G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc48K ./bridgeservice2.3T .또한 매 블록의 state를 스토리지에 저장하는 archive node의 경우는 총 2.3TB의 chaindata가 저장되어 있습니다. 이 중 2TB 정도는 state trie 가 저장되어 있습니다.State Trie의 특징chaindata의 대부분의 용량을 차지하고 있는 state trie에 대해서 좀 더 살펴보겠습니다. state trie는 Klaytn 상에 존재하는 모든 account(contract 포함)가 갖는 nonce, balance, account key 정보 등을 가지고 있습니다. 그리고 그 account가 contract일 경우 자체적인 storage를 갖는데, 이 정보 또한 state trie에 저장되어 있습니다.자료구조는 trie의 형태로 저장되며 각 trie node는 key/value의 형태로 저장됩니다. 아래 그림과 같이 실제 database에는 각 trie node가 key/value 형태로 저장되고 있습니다. key는 value의 hash값이기 때문에, 만약 같은 trie node가 여러 개 존재하더라도 아래와 같이 실제 database에는 고유한 하나의 값으로 저장됩니다.State Trie Migration의 아이디어지금까지 보신 바와 같이 state trie는 매 블록마다 존재합니다. 하지만 아래 그림에서 100번 블록에만 존재하는 trie node A, B는 102번 블록 처리 시에는 필요 없는 trie node입니다.이렇게 최신 블록 처리에는 필요 없는 trie node가 시간이 지남에 따라 쌓이게 됩니다.이 trie node들을 삭제한다면 비록 과거 state는 바로 조회가 안 되더라도 신규 블록 처리에는 문제 없을 것이라는 아이디어에서 시작하게 되었습니다.이더리움에서는 fast sync라는 기능을 통해서 새롭게 node를 시작하는 경우에는 최신 state를 p2p로 sync한 뒤에 그 이후 블록부터 동기화하는 기능을 사용하고 있습니다. Klaytn에서는 신규 node뿐만 아니라 이미 운영 중인 node의 storage를 멈추지 않고 줄이는 방법으로 추가적인 고민을 해보았습니다.State Migration의 과정State migration을 위해서 어떠한 과정들이 필요한지 살펴보도록 하겠습니다.신규 DB (신규 state trie database) 생성먼저 첫 번째는 migration을 하고 싶은 대상 block이 정해지면 신규 state trie를 위한 DB를 생성하는 것이 필요합니다. 이 신규 DB에서는 앞으로 만들어지는 블록의 state trie와 그리고 기준이 되는 블록의 state trie가 저장될 것입니다.기준 블록의 state trie를 순회하면서 신규 state trie database로 복사를 합니다.복사가 모두 완료된 이후에는 기존 DB를 삭제합니다.최종적으로 신규 DB만 남게 되며 이 DB에는 기준 블록의 state와 이후 블록의 state만 저장되어 있게 됩니다.이렇게 간단한 과정을 통해서 state trie migration을 진행할 수 있습니다. 하지만 migration이 단시간에 끝나는 것이 아니기 때문에 이 과정 중에도 새로운 신규 블록이 들어오면 처리가 가능해야 합니다. 그리고 그 처리한 결과를 신규 DB에 write를 해야합니다. 즉, 아래 그림과 같이 101번을 기준으로 migration이 진행 중이고 후속 블록에 대한 처리가 필요한 경우, 신규 DB는 물론 기존 DB로부터 조회해서 처리를 하도록 해야 합니다.State Migration 결과위의 일련의 과정을 통해 state migration을 한 이후의 storage의 변화를 살펴보겠습니다. 아래와 같이 기존의 Full Node에서 942GB를 차지하던 state trie가 55GB로 약 94%를 줄일 수 있었습니다.Migrated Full node : 294 GB (45131309블록과 이후 128블록마다의 state를 저장하는 node)55G ./statetrie_migrated_4513130992G ./header72G ./body63G ./receipts9.3G ./txlookup4.1G ./misc344K ./bridgeservice294G .State migration 기술적 어려움 및 해결 방법State migration 기술을 개발하면서 아래와 같은 성능 최적화를 통해 보다 빠른 state migration을 구현할 수 있었습니다.각 최적화별로 어떻게 해결을 하였는지 설명드리겠습니다.State migration의 성능/메모리 최적화병렬처리State migration을 PoC로 구현하고 처리 시간을 확인해보니 AWS EC2 m5.4xlarge에서 수십 일이 걸리는 것을 확인하였으며, 이것을 병렬로 DB 복사를 하도록 개선하여 3일로 줄일 수 있었습니다.중복 trie node write 최적화45,131,309 블록 시점에서 전체 state trie는 8억여개로 구성되어 있으나 중복을 제외하면 고유한 4억여개 state trie 가 존재합니다. 이러한 중복을 제외하기 위해 메모리 상에 DB에 이미 write한 모든 state trie의 hash값을 저장하여 중복 DB write를 하지 않도록 하여 소요시간을 1일 정도로 줄일 수 있었습니다.LRU-based key caching중복되는 trie node 처리시 모든 trie node key 값 저장이 필요합니다. 이를 위해 20GB가 넘는 메모리가 필요하였습니다. 하지만 실제 중복 node의 개수는 1억 개 미만으로 이를 2GB LRU cache를 사용함으로써 모두 trie node key값을 저장하여 체크하는 것과 유사한 결과를 얻을 수 있었습니다.State migration의 중단 및 에러 처리State migration이라는 작업 자체가 하루 이상 걸리는 작업이다 보니 사용자가 state migration을 중단시키고 싶거나 예상치 못하는 에러가 발생할 경우에 대한 대비가 필요하였습니다. 이를 위해 아래 그림과 같이 state migration 중에도 신규 블록처리에서 발생한 trie node를 저장하는 경우 기존 DB와 신규 DB에 모두 저장하도록 하였습니다. 따라서, migration 중단 시에는 기존 DB를 유지하고 신규 DB를 삭제하여 중단이 가능합니다. 반대로 migration 완료 시에는 신규 DB를 유지하고 기존 DB를 삭제하여 완료시킬 수 있도록 하였습니다.이렇게 Klaytn의 state migration 기능에 대해서 기술적인 내용을 살펴보았습니다. 이 기능을 통해서 최신 Cypress의 chaindata의 크기를 줄임으로써 Klaytn Node 운영 비용 및 접근성이 더 높아졌으면 하는 바람입니다. 또한 현재의 migration 형태가 아닌 매 블록 처리 시 불필요한 trie node를 즉시 삭제할 수 있는 기술에 대한 연구를 통해서 좀더 지속가능한 state trie 운영 방식을 고려중입니다.state trie migration은 Klaytn v1.5.0 이후 버전의 startStateMigration API의 호출을 통해 적용 가능하니, 필요하신 분들은 이용해 보시기 바랍니다. State migration의 사용 방법이 궁금하신 분은 Klaytn v1.5.0 State Migration: 노드 스토리지 절약하기를 참고 부탁드립니다.Klaytn 팀은 사용자 관점에서 어떤 기능이 더 필요한지를 계속 고민하고 발굴하기 위해 노력하고 있습니다. 앞으로 사용자가 필요로 하는 더 많은 기능을 추가하고 개선할 수 있도록 노력하겠습니다. 감사합니다.Klaytn State Migration : 블록체인의 storage를 줄여보자 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 12. 28

[KAS SDK] KAS API와 통합된 지갑, ...

KAS SDK v1.0.2 에서는 KAS Wallet API와 통합된 지갑인 KASWallet을 소개합니다. KASWallet은 기존 Caver에서 제공되던 편리한 기능들이 KAS Wallet API에 저장되어 있는 Klaytn 계정과 함께 사용되기 위하여 제공되는 기능입니다.이 포스팅에서는 KASWallet의 정의와 사용 방법을 설명합니다.1. KASWallet 이란KASWallet이란 기존 Caver의 `caver.wallet`에서 제공되던 in-memory wallet인 KeyringContainer에 상응하는 기능을 KAS Wallet API를 사용하여 동작하도록 구현된 지갑입니다.Caver의 `caver.contract`, `caver.kct.kip7` 그리고 `caver.kct.kip17`은 `caver.wallet`을 사용하여 내부적으로 생성한 트랜잭션에 서명하고 네트워크에 전송하도록 동작합니다. 그렇기 때문에 이전 KAS SDK에서는 KAS Wallet API에 저장된 Klaytn 계정과 함께 `caver.contract`, `caver.kct.kip7` 혹은 `caver.kct.kip17`에서 제공되는 기능들을 사용하는데에 한계가 있었습니다.KAS SDK v1.0.2부터는 KASWallet을 `caver.wallet`을 통하여 제공함으로써 KAS Wallet API에 저장된 Klaytn 계정을 사용하여 컨트랙트를 쉽게 배포하거나 실행할 수 있게 되었습니다. 또한 Caver에서 제공하는 트랜잭션을 KAS Wallet API에 저장된 Klaytn 계정을 사용하여 서명할 수 있습니다.2. KASWallet 구조위는 KASWallet을 설명하기 위한 다이어그램입니다.`KeyringContainer`와 `KASWallet`은 각각 `IWallet` 인터페이스를 구현하고, `Caver`는 `wallet` 멤버변수에 `KeyringContainer`의 인스턴스를, `CaverExtKAS`는 `KASWallet`의 인스턴스를 `wallet` 변수에 정의하고 있습니다.또한 `wallet` 멤버 변수에 대한 getter인 `getWallet`을 `Caver`와 `CaverExtKAS` 모두 `IWallet`을 리턴하도록 구현해야 합니다. 그래서 `Contract`, `KIP7` 그리고 `KIP17`에서는 getWallet`을 통해 `IWallet` 인터페이스를 구현한 클래스인 `KeyringContainer` 혹은 `KASWallet` 인스턴스를 리턴받아 동작하도록 구현되었습니다. Contract, KIP7 그리고 KIP17이 동작하는 데에 필요한 함수는 모두 IWallet에 정의되어 있습니다.3. KAS Wallet API의 Klaytn 계정과 함께 caver.contract 사용하기KAS SDK의 `caver.wallet`은 KASWallet이기 때문에 KAS SDK의 `caver.contract`를 사용하면 KAS Wallet API 에 저장되어 있는 Klaytn 계정을 사용하여 손쉽게 Klaytn에 컨트랙트를 배포하거나 실행할 수 있습니다. KAS Wallet API의 Klaytn 계정을 사용하여 `caver.contract`를 사용하는 방법은 기존 Caver의 `caver.contract`를 사용하는 방법과 동일합니다.여기서는 간단하게 배포하고 실행하는 방법을 설명합니다. 여기서 스마트 컨트랙트를 배포하고 실행할 때 사용되는 Klaytn 계정은 KAS Wallet API에서 관리되고 있는 계정이며, 이 Klaytn 계정은 트랜잭션을 전송하기 위한 충분한 KLAY를 소유하고 있어야 합니다.3.1. caver-js-ext-kascaver-js-ext-kas의 `caver.contract`를 사용하는 방법은 caver-js의 `caver.contract`를 사용하는 방법과 동일합니다.3.1.1. 스마트 컨트랙트 배포caver-js-ext-kas를 사용하여 스마트 컨트랙트를 배포하는 방법에 대해서 아래에 설명합니다.const contract = new caver.contract(abi)먼저 `caver.contract`를 사용하여 Contract 인스턴스를 생성합니다.const deployed = await contract.deploy({ data: byteCode }).send({ from: '0x{the address of a Klaytn account in KAS Wallet API}', gas: 10000000 })그 이후 contract 인스턴스의 `deploy` 메소드를 호출합니다. `deploy`는 트랜잭션을 네트워크로 전송하는 `send` 함수가 정의된 오브젝트를 리턴합니다.결과로 리턴 받은 오브젝트의 `send` 함수를 호출해야 실제로 네트워크로 트랜잭션이 전송되게 됩니다. 예제에서는 `send`함수를 호출할 때 넘겨주는 파라미터 오브젝트에 `from`과 `gas`를 정의해 주고 있는데, 이 때 from 주소는 KAS Wallet API에 저장되어 있는 Klaytn 계정의 주소이어야 합니다.위의 코드를 실행하면 내부적으로 SmartContractDeploy 트랜잭션을 생성하고 KAS Wallet API에 저장되어 있는 `from`의 계정으로 트랜잭션에 서명한 후 네트워크에 전송합니다. 배포의 결과로는 배포된 컨트랙트의 정보를 포함하고 있는 Contract 인스턴스가 리턴됩니다.3.1.2. 스마트 컨트랙트 실행caver-js-ext-kas를 사용하여 Klaytn에 배포된 스마트 컨트랙트를 실행하는 방법은 아래와 같습니다.const contractAddress = '0x5D3Cd9eB73f00BbECB949DCE08BB26019FcB599f'const contract = new caver.contract(abi, contractAddress)배포할 때와 동일하게 스마트 컨트랙트를 실행하기 위하여 먼저 contract 인스턴스를 생성합니다. 생성자에 전달하는 파라미터로는 스마트 컨트랙트의 ABI와 배포된 컨트랙트의 주소를 넘겨줍니다.const receipt = await contract.methods.set('key', 'value').send({ from: '0x{the address of a Klaytn account in KAS Wallet API}', gas: 5000000 })생성된 contract는 `methods`를 통해 스마트 컨트랙트에 정의되어 있는 함수를 사용할 수 있습니다. 그 이후 `contract.methods`로 컨트랙트에 정의된 함수를 사용할 수 있습니다. 좀 전과 마찬가지로 각 함수를 호출하면 실제 네트워크에 트랜잭션을 전송하는 `send` 함수가 정의된 오브젝트가 리턴이 됩니다.리턴 받은 오브젝트에 정의된 `send`를 호출하여 스마트 컨트랙트를 실행합니다. `send`에 전달되는 오브젝트 파라미터에는 `from`과 `gas`가 정의되어 있으며, `from`은 KAS Wallet API에 저장된 Klaytn 계정의 주소이어야 합니다.위의 코드를 실행하면 내부적으로 SmartContractExecution 트랜잭션을 생성하고 KAS Wallet API에 저장되어 있는 `from`의 계정으로 트랜잭션에 서명한 후 네트워크에 전송합니다. 컨트랙트 실행의 결과로는 트랜잭션 receipt이 리턴됩니다.3.2. caver-java-ext-kas3.2.1. 스마트 컨트랙트 배포caver-java-ext-kas를 사용하여 스마트 컨트랙트를 배포하는 방법에 대해서 아래에 설명합니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");Contract contract = new Contract(caver, ABI);먼저 `Contract`인스턴스를 생성합니다.SendOptions sendOptions = new SendOptions("0x{the address of a Klaytn account in KAS Wallet API}", BigInteger.valueOf(10000000));Contract deployed = contract.deploy(sendOptions, BINARY);그 이후 contract 인스턴스의 `deploy` 메소드를 호출합니다. `deploy`의 파라미터로는 트랜잭션 전송에 필요한 SendOptions, 스마트 컨트랙트의 바이트코드, 그리고 마지막으로 스마트 컨트랙트의 생성자 파라미터를 차례대로 넘겨줍니다. 위 코드는 배포하고자 하는 스마트 컨트랙트의 생성자에서 받는 파라미터가 없으므로 sendOptions와 BINARY만 파라미터로 전달합니다.위 예제에서는 `SendOptions`에 `from`과 `gas`를 정의해 주고 있는데, 이 때 from 주소는 KAS Wallet API에 저장되어 있는 Klaytn 계정의 주소이어야 합니다.위의 코드를 실행하면 내부적으로 SmartContractDeploy 트랜잭션을 생성하고 KAS Wallet API에 저장되어 있는 `from`의 계정으로 트랜잭션에 서명한 후 네트워크에 전송합니다. 배포의 결과로는 배포된 컨트랙트의 정보를 포함하고 있는 Contract 인스턴스가 리턴됩니다.3.2.2. 스마트 컨트랙트 실행caver-java-ext-kas를 사용하여 Klaytn에 배포된 스마트 컨트랙트를 실행하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");String address = "Your contract address";Contract contract = new Contract(caver, ABI, address);배포할 때와 동일하게 스마트 컨트랙트를 실행하기 위하여 먼저 contract 인스턴스를 생성합니다.SendOptions sendOptions = new SendOptions("0x{the address of a Klaytn account in KAS Wallet API}", BigInteger.valueOf(5000000));TransactionReceipt.TransactionReceiptData receiptData= contract.send(sendOptions,"set", "key", "value");생성된 contract에는 스마트 컨트랙트를 실행하는 `send` 함수가 정의되어 있습니다. `send` 함수를 호출할 때 첫 번째 파라미터로는 트랜잭션을 실행할 때 필요한 SendOptions, 실행하고자 하는 스마트 컨트랙트 함수의 이름, 그리고 마지막으로 스마트 컨트랙트 함수의 파라미터를 차례대로 넘겨줍니다.위의 코드를 실행하면 내부적으로 SmartContractExecution 트랜잭션을 생성하고 KAS Wallet API에 저장되어 있는 `from`의 계정으로 트랜잭션에 서명한 후 네트워크에 전송합니다. 컨트랙트 실행의 결과로는 트랜잭션 receipt이 리턴됩니다.4. KAS Wallet API의 Klaytn 계정과 함께 caver.kct 사용하기KAS Wallet API에 저장되어 있는 Klaytn 계정을 사용하여 `caver.kct`를 사용하는 방법은 기존 Caver의 `caver.kct`를 사용하는 방법과 동일합니다.여기서는 간단하게 KIP-7 토큰 컨트랙트와 KIP-17 토큰 컨트랙트를 배포하고 실행하는 방법을 설명합니다. 여기서 토큰 컨트랙트를 배포하고 실행할 때 사용되는 Klaytn 계정은 KAS Wallet API에서 관리되고 있는 계정이며, 이 Klaytn 계정은 트랜잭션을 전송하기 위한 충분한 KLAY를 소유하고 있어야 합니다.4.1. caver-js-ext-kascaver-js-ext-kas의 `caver.kct.kip7`을 사용하는 방법은 caver-js의 `caver.kct.kip7`을 사용하는 방법과 동일합니다.4.1.1. KIP-7 토큰 컨트랙트 배포caver-js-ext-kas를 사용하여 KIP-7 토큰 컨트랙트를 배포하는 방법은 아래와 같습니다.const deployed = await caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000000000000000000'}, '0x{the address of a Klaytn account in KAS Wallet API}')KIP7에서 제공되는 static 함수인 `caver.kct.kip7.deploy`를 사용하여 KIP-7 토큰 컨트랙트를 배포합니다. 파라미터로는 배포하고자 하는 토큰 컨트랙트의 정보, 그리고 배포할 때 사용할 Klaytn 계정의 주소를 넘겨줍니다. 위의 예제에서 배포할 때 사용할 Klaytn 계정의 주소는 KAS Wallet API에 저장되어 있는 계정의 주소이어야 합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-7 토큰 컨트랙트가 배포되며, 배포의 결과로 배포된 KIP-7 컨트랙트의 정보가 담긴 KIP7 인스턴스가 리턴됩니다.4.1.2. KIP-7 토큰 컨트랙트 실행caver-js-ext-kas를 사용하여 Klaytn에 배포된 KIP-7 토큰 컨트랙트를 실행하는 방법은 아래와 같습니다.const contractAddress = '0x42c3809EeED7c5C497067fE4092D1c354D3a01Cb'const kip7 = new caver.kct.kip7(contractAddress)먼저 배포된 KIP-7 컨트랙트 주소를 생성자 파라미터로 전달하여 KIP7 인스턴스를 생성합니다.const receipt = await kip7.transfer('0x{address in hex}', 1, { from: '0x{the address of a Klaytn account in KAS Wallet API}' })그리고 생성된 KIP7 인스턴스의 메소드를 호출하면 됩니다. 예제에서는 `kip7.transfer` 함수를 호출하는데 파라미터로는 실제 KIP-7 토큰 컨트랙트 transfer 함수의 파라미터를 차례대로 전달하고 마지막으로 파라미터로는 트랜잭션 전송에 필요한 정보들이 정의된 오브젝트를 전달합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-7 토큰 컨트랙트가 실행되며, 실행의 결과로 트랜잭션 receipt이 리턴됩니다.4.1.3. KIP-17 토큰 컨트랙트 배포caver-js-ext-kas를 사용하여 KIP-17 토큰 컨트랙트를 배포하거나 실행하는 코드는 KIP-7과 비슷합니다. KIP-17 토큰 컨트랙트를 배포하는 방법은 아래와 같습니다.const deployed = await caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS',}, '0x{the address of a Klaytn account in KAS Wallet API}')KIP17에서 제공되는 static 함수인 `caver.kct.kip17.deploy`를 사용하여 KIP-17 토큰 컨트랙트를 배포합니다. 파라미터로는 배포하고자 하는 토큰 컨트랙트의 정보, 그리고 배포할 때 사용할 Klaytn 계정의 주소를 넘겨줍니다. 위의 예제에서 배포할 때 사용할 Klaytn 계정의 주소는 KAS Wallet API에 저장되어 있는 계정의 주소이어야 합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-17 토큰 컨트랙트가 배포되며, 배포의 결과로 배포된 KIP-17 컨트랙트의 정보가 담긴 KIP17 인스턴스가 리턴됩니다.4.1.4. KIP-17 토큰 컨트랙트 실행caver-js-ext-kas를 사용하여 Klaytn에 배포된 KIP-17 토큰 컨트랙트를 실행하는 방법은 아래와 같습니다.const contractAddress = '0xAD719B194457D0641B410Ce75C4D22442533A781'const kip17 = new caver.kct.kip17(contractAddress)먼저 배포된 KIP-17 컨트랙트 주소를 생성자 파라미터로 전달하여 KIP17 인스턴스를 생성합니다.const receipt = await kip17.mintWithTokenURI('0x{address i hex}', tokenId, tokenURI, { from: '0x{the address of a Klaytn account in KAS Wallet API}' })그리고 생성된 KIP17 인스턴스의 메소드를 호출하면 됩니다. 예제에서는 `kip17.mintWithTokenURI` 함수를 호출하는데 파라미터로는 실제 KIP-17 토큰 컨트랙트 mintWithTokenURI 함수의 파라미터를 차례대로 전달하고 마지막으로 파라미터로는 트랜잭션 전송에 필요한 정보들이 정의된 오브젝트를 전달합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-17 토큰 컨트랙트가 실행되며, 마찬가지로 실행의 결과로 트랜잭션 receipt이 리턴됩니다.4.2. caver-java-ext-kas4.2.1. KIP-7 토큰 컨트랙트 배포caver-java-ext-kas를 사용하여 KIP-7 토큰 컨트랙트를 배포하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");String deployer = "0x{address in hex}";int decimals = 18;BigInteger initialSupply = BigInteger.valueOf(100).multiply(BigInteger.TEN.pow(decimals)); // 100 * 10¹⁸KIP7 kip7 = KIP7.deploy(caver, deployer, "Jasmine", "JAS", decimals, initialSupply);KIP7에서 제공되는 static 함수인 `deploy`를 사용하여 KIP-7 토큰 컨트랙트를 배포합니다. 파라미터로는 CaverExtKAS instance와 배포할 때 사용할 Klaytn 계정의 주소, 그리고 배포하고자 하는 토큰 컨트랙트의 정보를 넘겨줍니다. 위의 예제에서 배포할 때 사용할 Klaytn 계정의 주소는 KAS Wallet API에 저장되어 있는 계정의 주소이어야 합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-7 토큰 컨트랙트가 배포되며, 배포의 결과로 배포된 KIP-7 컨트랙트의 정보가 담긴 KIP7 인스턴스가 리턴됩니다.4.2.2. KIP-7 토큰 컨트랙트 실행caver-java-ext-kas를 사용하여 Klaytn에 배포된 KIP-7 토큰 컨트랙트를 실행하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");String address = "0x42c3809EeED7c5C497067fE4092D1c354D3a01Cb";KIP7 kip7 = new KIP7(caver, address);먼저 배포된 CaverExtKAS instance와, KIP-7 컨트랙트 주소를 생성자 파라미터로 전달하여 KIP7 인스턴스를 생성합니다.SendOptions sendOptions = new SendOptions(baseAccount);String toAccount = "0x{to address}";BigInteger transferAmount = BigInteger.TEN.multiply(BigInteger.TEN.pow(18)); // 10 * 10¹⁸TransactionReceipt.TransactionReceiptData receiptData = kip7.transfer(toAccount, transferAmount, sendOptions);그리고 생성된 KIP7 인스턴스의 메소드를 호출하면 됩니다. 예제에서는 `kip7.transfer` 함수를 호출하는데 파라미터로는 실제 KIP-7 토큰 컨트랙트 transfer 함수의 파라미터를 차례대로 전달하고 마지막으로 파라미터로는 트랜잭션 전송에 필요한 정보들이 정의된 오브젝트를 전달합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-7 토큰 컨트랙트가 실행되며, 실행의 결과로 트랜잭션 receipt이 리턴됩니다.4.2.3. KIP-17 토큰 컨트랙트 배포caver-java-ext-kas를 사용하여 KIP-17 토큰 컨트랙트를 배포하거나 실행하는 코드는 KIP-7과 비슷합니다. KIP-17 토큰 컨트랙트를 배포하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");String deployer = "0x{address in hex}";KIP17 kip17 = KIP17.deploy(caver, deployer, "Jasmine", "JAS");KIP17에서 제공되는 static 함수인 `deploy`를 사용하여 KIP-17 토큰 컨트랙트를 배포합니다. 파라미터로는 CaverExtKAS instance와 배포할 때 사용할 Klaytn 계정의 주소, 그리고 배포하고자 하는 토큰 컨트랙트의 정보를 넘겨줍니다. 위의 예제에서 배포할 때 사용할 Klaytn 계정의 주소는 KAS Wallet API에 저장되어 있는 계정의 주소이어야 합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-17 토큰 컨트랙트가 배포되며, 배포의 결과로 배포된 KIP-17 컨트랙트의 정보가 담긴 KIP17 인스턴스가 리턴됩니다.4.2.4. KIP-17 토큰 컨트랙트 실행caver-java-ext-kas를 사용하여 Klaytn에 배포된 KIP-17 토큰 컨트랙트를 실행하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");String contractAddress = "'0xAD719B194457D0641B410Ce75C4D22442533A781'";KIP17 kip17 = new KIP17(caver, contractAddress);먼저 배포된 CaverExtKAS instance와 KIP-17 컨트랙트 주소를 생성자 파라미터로 전달하여 KIP17 인스턴스를 생성합니다.String from = "0x{from address}";String to = "0x{to address}";String tokenURI = "tokenURI";SendOptions sendOptions = new SendOptions(from);TransactionReceipt.TransactionReceiptData receiptData = kip17.mintWithTokenURI(to, BigInteger.ZERO, tokenURI, sendOptions);그리고 생성된 KIP17 인스턴스의 메소드를 호출하면 됩니다. 예제에서는 `kip17.mintWithTokenURI` 함수를 호출하는데 파라미터로는 실제 KIP-17 토큰 컨트랙트 mintWithTokenURI 함수의 파라미터를 차례대로 전달하고 마지막으로 파라미터로는 트랜잭션 전송에 필요한 정보들이 정의된 오브젝트를 전달합니다.위의 코드가 실행되면 KAS Wallet API에 저장되어 있는 계정을 사용하여 KIP-17 토큰 컨트랙트가 실행되며, 마찬가지로 실행의 결과로 트랜잭션 receipt이 리턴됩니다.5. KAS SDK 에서 KeyringContainer 사용하기KAS SDK에서는 기존 caver의 `caver.wallet`에서 제공되던 in-memory wallet인 `KeyringContainer`을 대신하여 KAS Wallet API를 사용하는 `KASWallet`이 제공됩니다. 그래서 KAS SDK에서 in-memory wallet인 `KeyringContainer`를 사용하고 싶으면 따로 인스턴스화를 해서 사용해야 합니다.또한 caver-js-ext-kas와 caver-java-ext-kas 모두 `caver.contract`와 `caver.kct`에서 컨트랙트를 배포하거나 실행할 때 사용하는 지갑을 지정할 수 있는 `setWallet` 함수가 제공됩니다. 이를 통하여 KAS SDK를 사용할 때 인스턴스 별로 컨트랙트를 배포하거나 실행할 때 사용될 지갑을 유연하게 지정하여 사용할 수 있습니다.5.1. caver-js-ext-kas아래는 caver-js-ext-kas를 사용하여 `KeyringContainer` 인스턴스를 생성하는 방법입니다.const keyringContainer = new caver.keyringContainer()위의 방식으로 생성된 keyringContainer를 `caver.contract`, `caver.kct.kip7` 그리고 `caver.kct.kip17`에서 사용하는 방법은 아래와 같습니다.const contract = new caver.contract(abi, contractAddress)contract.setWallet(keyringContainer)const kip7 = new caver.kct.kip7(contractAddress)kip7.setWallet(keyringContainer)const kip7 = new caver.kct.kip17(contractAddress)kip7.setWallet(keyringContainer)위와 같이 Contract 인스턴스의 setWallet 메소드를 호출하면 contract에서 사용하는 IWallet을 지정할 수 있습니다. 이는 KIP7과 KIP17 모두 동일하게 동작합니다.KIP7과 KIP17에서 제공되는 static 메소드인 deploy함수의 경우에는 마지막 파라미터에 추가적으로 IWallet을 넘겨줌으로써 배포에 사용되는 지갑을 지정할 수 있습니다. 아래는 deploy 함수의 마지막 파라미터에 keyringContainer를 넘겨주는 코드입니다.const kip7 = await caver.kct.kip7.deploy({…}, deployer, keyringContainer)const kip17 = await caver.kct.kip17.deploy({…}, deployer, keyringContainer)위의 코드가 실행되면 SmartContractDeploy 트랜잭션을 서명할 때 keyringContainer 내부에 저장되어 있는 keyring을 사용합니다.5.2. caver-java-ext-kas아래는 caver-java-ext-kas를 사용하여 `KeyringContainer` 인스턴스를 생성하는 방법입니다.KeyringContainer keyringContainer = new KeyringContainer();위의 방식으로 생성된 keyringContainer를 `caver.contract`, `caver.kct.kip7` 그리고 `caver.kct.kip17`에서 사용하는 방법은 아래와 같습니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");KeyringContainer keyringContainer = new KeyringContainer();Contract contract = new Contract(caver, abi, contractAddress);contract.setWallet(keyringContainer);KIP7 kip7 = new KIP7(caver, contractAddress);kip7.setWallet(keyringContainer);KIP17 kip17 = new KIP17(caver, contractAddress);kip17.setWallet(keyringContainer);위와 같이 Contract 인스턴스의 setWallet 메소드를 호출하면 contract에서 사용하는 IWallet을 지정할 수 있습니다. 이는 KIP7와 KIP17 모두 동일하게 동작합니다.KIP7과 KIP17에서 제공되는 static 메소드인 deploy함수의 경우에는 마지막 파라미터에 추가적으로 IWallet을 넘겨줌으로써 배포에 사용되는 지갑을 지정할 수 있습니다. 아래는 deploy 함수의 마지막 파라미터에 keyringContainer를 넘겨주는 코드입니다.CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, "your_access_key", "your_secret_access_key");KeyringContainer keyringContainer = new KeyringContainer();KIP7 kip7 = KIP7.deploy(caver, "0x{address in hex}", "Jasmine", "JAS", decimals, initialValue, keyringContainer);KIP17 kip17 = KIP17.deploy(caver, "0x{address in hex}", "Jasmine", "JAS", keyringContainer);위의 코드가 실행되면 SmartContractDeploy 트랜잭션을 서명할 때 keyringContainer 내부에 저장되어 있는 keyring을 사용합니다.6. Example code아래 예제는 caver-js-ext-kas를 사용하여 Key, Value형태로 데이터를 읽고, 저장하는 smart contract를 배포 및 실행해보는 코드입니다.// js : KAS Wallet API with `caver.contract`const CaverExtKAS = require('caver-js-ext-kas')const caver = new CaverExtKAS()caver.initKASAPI(chainId, accessKeyId, secretAccessKey)const abi = [ { constant: true, inputs: [{ name: 'key', type: 'string' }], name: 'get', outputs: [{ name: '', type: 'string' }], payable: false, stateMutability: 'view', type: 'function', }, { constant: false, inputs: [{ name: 'key', type: 'string' }, { name: 'value', type: 'string' }], name: 'set', outputs: [], payable: false, stateMutability: 'nonpayable', type: 'function', },]const byteCode = '0x608060405234801561001057600080fd5b5061051f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063693ec85e1461003b578063e942b5161461016f575b600080fd5b6100f460048036036020811015610ㅇ05157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610134578082015181840152602081019050610119565b50505050905090810190601f1680156101615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf6004803603604081101561018557600080fd5b81019080803590602001906401000000008111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111640100000000831117156101d657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103cc565b005b60606000826040518082805190602001908083835b602083106102f957805182526020820191506020810190506020830392506102d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b806000836040518082805190602001908083835b6020831061040357805182526020820191506020810190506020830392506103e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061044992919061044e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061048f57805160ff19168380011785556104bd565b828001600101855582156104bd579182015b828111156104bc5782518255916020019190600101906104a1565b5b5090506104ca91906104ce565b5090565b6104f091905b808211156104ec5760008160009055506001016104d4565b5090565b9056fea165627a7a723058203ffebc792829e0434ecc495da1b53d24399cd7fff506a4fd03589861843e14990029'const contract = new caver.contract(abi)const deployed = await contract.deploy({ data: byteCode }).send({ from: '0x{the address of a Klaytn account in KAS Wallet API}', gas: 10000000 })console.log(`Deployed contract address: ${deployed.options.address}`)아래 예제는 caver-js-ext-kas를 사용하여 KIP7을 배포 및 실행해보는 예제 코드입니다.// js : KAS Wallet API with `caver.kct.kip7`const CaverExtKAS = require('caver-js-ext-kas')const caver = new CaverExtKAS()caver.initKASAPI(chainId, accessKeyId, secretAccessKey)const deployed = await caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000000000000000000'}, '0x{the address of a Klaytn account in KAS Wallet API}')console.log(`Deployed contract address: ${deployed.options.address}`)const contractAddress = deployed.options.addressconst kip7 = new caver.kct.kip7(contractAddress)const receipt = await kip7.transfer('0x{address in hex}', 1, { from: '0x{the address of a Klaytn account in KAS Wallet API}' })console.log(receipt)아래 예제는 caver-js-ext-kas를 사용하여 KIP17을 배포 및 실행해보는 예제 코드입니다.// js : KAS Wallet API account with `caver.kct.kip17`const CaverExtKAS = require('caver-js-ext-kas')const caver = new CaverExtKAS()caver.initKASAPI(chainId, accessKeyId, secretAccessKey)const deployed = await caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS',}, '0x{the address of a Klaytn account in KAS Wallet API}')console.log(`Deployed contract address: ${deployed.options.address}`)const contractAddress = deployed.options.addressconst kip17 = new caver.kct.kip17(contractAddress)const receipt = await kip17.mintWithTokenURI('0x{address i hex}', tokenId, tokenURI, { from: '0x{the address of a Klaytn account in KAS Wallet API}' })console.log(receipt)아래 예제는 caver-js-ext-kas에서 KeyringContainer를 통해 KIP7 / 17을 배포 및 실행해보는 예제 코드입니다.// js : Use KeyringContainer with KAS SDKconst CaverExtKAS = require('caver-js-ext-kas')const caver = new CaverExtKAS()caver.initKASAPI(chainId, accessKeyId, secretAccessKey)const keyringContainer = new caver.keyringContainer()const keyring = keyringContainer.keyring.createFromPrivateKey('0x{private key}')keyringContainer.add(keyring)// Use keyringContainer with caver.contractconst contract = new caver.contract(abi, '0x{contract address}')contract.setWallet(keyringContainer)const receipt = await contract.methods.set('key', 'value').send({ from: keyring.address, gas: 5000000 })// Use keyringContainer with caver.kct.kip7const deployed = await caver.kct.kip7.deploy({ name: 'Jasmine', symbol: 'JAS', decimals: 18, initialSupply: '100000000000000000000'}, keyring.address, keyringContainer)const kip7Address = deployed.options.addressconst kip7 = new caver.kct.kip7(kip7Address)kip7.setWallet(keyringContainer)const receiptWithTransfer = await kip7.transfer('0x{address in hex}', 1, { from: keyring.address })console.log(receiptWithTransfer)// Use keyringContainer with caver.kct.kip17const deployed = await caver.kct.kip17.deploy({ name: 'Jasmine', symbol: 'JAS',}, keyring.address, keyringContainer)const kip17Address = deployed.options.addressconst kip17 = new caver.kct.kip17(kip17Address)kip17.setWallet(keyringContainer)const receiptWithMinting = await kip17.mintWithTokenURI('0x{address i hex}', tokenId, tokenURI, { from: keyring.address })console.log(receiptWithMinting)아래 예제는 caver-java-ext-kas를 사용하여 Key, Value형태로 데이터를 읽고, 저장하는 smart contract를 배포 및 실행해보는 코드입니다.import com.klaytn.caver.contract.Contract;import com.klaytn.caver.contract.SendOptions;import com.klaytn.caver.methods.response.TransactionReceipt;import com.klaytn.caver.utils.ChainId;import org.web3j.abi.datatypes.Type;import org.web3j.protocol.exceptions.TransactionException;import xyz.groundx.caver_ext_kas.CaverExtKAS;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.math.BigInteger;import java.util.List;public class SampleContract { static final String BINARY = "608060405234801561001057600080fd5b5061051f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063693ec85e1461003b578063e942b5161461016f575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610134578082015181840152602081019050610119565b50505050905090810190601f1680156101615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf6004803603604081101561018557600080fd5b81019080803590602001906401000000008111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111640100000000831117156101d657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103cc565b005b60606000826040518082805190602001908083835b602083106102f957805182526020820191506020810190506020830392506102d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b806000836040518082805190602001908083835b6020831061040357805182526020820191506020810190506020830392506103e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061044992919061044e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061048f57805160ff19168380011785556104bd565b828001600101855582156104bd579182015b828111156104bc5782518255916020019190600101906104a1565b5b5090506104ca91906104ce565b5090565b6104f091905b808211156104ec5760008160009055506001016104d4565b5090565b9056fea165627a7a723058203ffebc792829e0434ecc495da1b53d24399cd7fff506a4fd03589861843e14990029"; static final String ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]";public static void main(String[] args) throws NoSuchMethodException, TransactionException, IOException, InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException { String accessKey = "your access key"; String secretAccessKey = "your secret access key"; CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, accessKey, secretAccessKey);//The deployer account must be created through the KAS Wallet API. //The deployer must have enough KLAY to deploy the contract String deployer = "0x{address}";//Deploy contract BigInteger gas = BigInteger.valueOf(10000000); SendOptions deploySendOptions = new SendOptions(deployer, gas);Contract sampleContract = new Contract(caver, ABI); sampleContract.deploy(deploySendOptions, BINARY); System.out.println("Deployed contract address: " + sampleContract.getContractAddress());//Connect already deployed contract Contract deployedContract = new Contract(caver, ABI, sampleContract.getContractAddress()); //Execute smart contract's "set" function SendOptions sendOptions = new SendOptions(deployer, BigInteger.valueOf(5000000)); TransactionReceipt.TransactionReceiptData receiptData = deployedContract.send(sendOptions, "set", "key", "value"); System.out.println(receiptData.getTransactionHash());//Execute smart contract's "get" function List<Type> result = deployedContract.call("get", "key"); System.out.println((String)result.get(0).getValue()); }}아래 예제는 caver-java-ext-kas를 통해 KIP7을 배포 및 실행해보는 예제입니다.import com.klaytn.caver.contract.SendOptions;import com.klaytn.caver.kct.kip7.KIP7;import com.klaytn.caver.methods.response.TransactionReceipt;import com.klaytn.caver.utils.ChainId;import org.web3j.protocol.exceptions.TransactionException;import xyz.groundx.caver_ext_kas.CaverExtKAS;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.math.BigInteger;public class SampleKIP7 { public static void main(String[] args) throws NoSuchMethodException, TransactionException, IOException, InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException {String accessKey = "your access key"; String secretAccessKey = "your secret access key"; CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, accessKey, secretAccessKey);//The deployer account must be created through the KAS Wallet API. //The deployer must have enough KLAY to deploy the contractString deployer = "0x{address}"; //deploy contract BigInteger initialSupply = BigInteger.TEN.multiply(BigInteger.TEN.pow(18)); // 10 * 10¹⁸KIP7 kip7 = KIP7.deploy(caver, deployer, "Jasmine", "JAS", 18, initialSupply); System.out.println(kip7.getContractAddress()); //Connect already deployed contract KIP7 deployedKIP7 = new KIP7(caver, kip7.getContractAddress()); //Execute KIP7’s transfer function. String from = deployer; String to = "0x{to address}"; SendOptions sendOptions = new SendOptions(from); BigInteger transferAmount = BigInteger.ONE.multiply(BigInteger.TEN.pow(18)); TransactionReceipt.TransactionReceiptData receiptData = deployedKIP7.transfer(to, transferAmount, sendOptions); System.out.println(receiptData.getTransactionHash()); }}아래 예제는 caver-java-ext-kas를 사용해 KIP-17를 배포 및 실행해보는 샘플 코드입니다.import com.klaytn.caver.contract.SendOptions;import com.klaytn.caver.kct.kip17.KIP17;import com.klaytn.caver.methods.response.TransactionReceipt;import com.klaytn.caver.utils.ChainId;import org.junit.Ignore;import org.web3j.protocol.exceptions.TransactionException;import xyz.groundx.caver_ext_kas.CaverExtKAS;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.math.BigInteger;public class SampleKIP17 {public static void main(String[] args) throws NoSuchMethodException, IOException, InstantiationException, ClassNotFoundException, IllegalAccessException, InvocationTargetException, TransactionException {String accessKey = "your access key"; String secretAccessKey = "your secret access key"; CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, accessKey, secretAccessKey); //The deployer account must be created through the KAS Wallet API. //The deployer must have enough KLAY to deploy the contract String deployer = "0x{address}"; //deploy contract KIP17 kip17 = KIP17.deploy(caver, deployer, "Jasmine", "JAS"); System.out.println(kip17.getContractAddress()); //Connect already deployed contract KIP17 deployedKip17 = new KIP17(caver, kip17.getContractAddress()); //Execute KIP7’s transfer function. String from = deployer; String to = "0x{to address}"; String tokenURI = "tokenURI"; SendOptions sendOptions = new SendOptions(from); TransactionReceipt.TransactionReceiptData receiptData = deployedKip17.mintWithTokenURI(to, BigInteger.ZERO, tokenURI, sendOptions); System.out.println(receiptData.getTransactionHash()); }}아래 예제는 caver-java-ext-kas에서 KeyringContainer를 통해 KIP7 / 17을 배포 및 실행해보는 예제 코드입니다.import com.klaytn.caver.contract.SendOptions;import com.klaytn.caver.kct.kip17.KIP17;import com.klaytn.caver.kct.kip7.KIP7;import com.klaytn.caver.methods.response.TransactionReceipt;import com.klaytn.caver.utils.ChainId;import com.klaytn.caver.wallet.KeyringContainer;import com.klaytn.caver.wallet.keyring.KeyringFactory;import com.klaytn.caver.wallet.keyring.SingleKeyring;import org.junit.Ignore;import org.web3j.protocol.exceptions.TransactionException;import xyz.groundx.caver_ext_kas.CaverExtKAS;import java.io.IOException;import java.lang.reflect.InvocationTargetException;import java.math.BigInteger;public class SampleKeyringContainer { public static void main(String[] args) throws NoSuchMethodException, IOException, InstantiationException, ClassNotFoundException, IllegalAccessException, InvocationTargetException, TransactionException { String accessKey = "your access key"; String secretAccessKey = "your secret access key"; CaverExtKAS caver = new CaverExtKAS(ChainId.BAOBAB_TESTNET, accessKey, secretAccessKey); KeyringContainer container = new KeyringContainer();//deployer must have KLAY to deploy and execute smart contract. String deployerPrivateKey = "0x{private key}"; SingleKeyring deployerKeyring = (SingleKeyring)container.add(KeyringFactory.createFromPrivateKey(deployerPrivateKey)); String deployerAddr = deployerKeyring.getAddress(); String toAddress = "0x{address}";//KIP7 BigInteger initialSupply = BigInteger.TEN.multiply(BigInteger.TEN.pow(18)); // 10 * 10¹⁸ KIP7 kip7 = KIP7.deploy(caver, deployerAddr, "Jasmine", "JAS", 18, initialSupply, container); KIP7 deployedKIP7 = new KIP7(caver, kip7.getContractAddress()); BigInteger transferAmount = BigInteger.ONE.multiply(BigInteger.TEN.pow(18)); SendOptions transferSendOptions = new SendOptions(deployerAddr); TransactionReceipt.TransactionReceiptData receiptData_transfer = deployedKIP7.transfer(toAddress, transferAmount, transferSendOptions);//KIP17 KIP17 kip17 = KIP17.deploy(caver, deployerKeyring.getAddress(), "Jasmine", "JAS", container); KIP17 deployedKIP17 = new KIP17(caver, kip7.getContractAddress()); SendOptions mintSendOptions = new SendOptions(deployerAddr); TransactionReceipt.TransactionReceiptData receiptData_mint = deployedKIP17.mintWithTokenURI(toAddress, BigInteger.ZERO, "tokenURI", mintSendOptions); }}[KAS SDK] KAS API와 통합된 지갑, KASWallet was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 12. 23

Caver를 이용한 IPFS 사용법

Caver v1.5.5부터 IPFS(InterPlanetary File System)에 데이터를 저장하고 불러올 수 있는 기능을 제공합니다. 아래의 포스팅을 통해 Caver에서 IPFS를 어떻게 사용하는지 설명하고자 합니다.IPFS 초기화먼저 Caver를 통해 IPFS를 사용하려면 IPFS 노드와 연결하여야 합니다.아래와 같이 caver.ipfs.setIPFSNode 함수를 사용하여 IPFS 노드 정보를 설정하면 IPFS에 파일을 업로드하거나 IPFS에서 파일을 로드할 수 있습니다.먼저 caver-js를 사용하여 초기화하는 방법을 설명합니다.// Initialize connection with an IPFS Node - caver-jscaver.ipfs.setIPFSNode('IPFS Node URL', 5001, true)첫 번째 파라미터로는 IPFS Node의 url을, 두 번째 파라미터로는 port를 넘겨줍니다. 마지막 파라미터는 사용할 프로토콜을 정의해 줍니다. 전달되는 마지막 파라미터가 true인 경우 https 프로토콜이 사용되며 false인 경우 http가 사용됩니다.caver-java도 마찬가지로 caver.ipfs.setIPFSNode함수를 사용하며 파라미터도 동일합니다.// Initialize connection with an IPFS Node — caver-javacaver.ipfs.setIPFSNode("IPFS Node URL", 5001, true);IPFS로 파일 업로드하기IPFS 노드와 연결을 마쳤다면 caver.ipfs.add 함수를 통하여 IPFS에 파일을 업로드할 수 있습니다. Caver는 파일을 업로드할 때 두 가지 방식을 지원합니다.업로드할 파일 경로를 파라미터로 전달파일 컨텐츠를 파라미터로 전달전자의 경우 파일의 경로를 입력받아 그 파일의 컨텐츠를 IPFS에 업로드하며, 후자의 경우 입력받은 바이트 버퍼를 IPFS에 바로 업로드하게 됩니다. IPFS에 파일 업로드가 성공적으로 완료되면 CID(Content Identifier)를 결과로 리턴합니다.먼저 caver-js를 사용하여 파일 경로를 파라미터로 IPFS에 업로드하는 방법은 아래와 같습니다.// Upload a file to IPFS with a file path - caver-jsconst cid = caver.ipfs.add('./test.txt')caver-java도 마찬가지로 아래와 같이 caver.ipfs.add함수에 파일 경로를 파라미터로 전달하여 업로드 합니다.// Upload a file to IPFS with a file path - caver-javaString cid = caver.ipfs.add("./test.txt");아래 예제는 파일 컨텐츠를 바로 IPFS에 업로드하는 방법에 대해서 설명합니다.먼저 caver-js를 사용하는 방법에 대해서 설명합니다. caver-js는 파일 컨텐츠를 IPFS에 바로 업로드할 때에 Buffer 타입을 사용합니다.// Upload a file to IPFS with a file content - caver-jsconst cid = caver.ipfs.add(Buffer.from('test data'))caver-java는 아래와 같이 파일 컨텐츠를 IPFS에 바로 업로드할 때에는 byte array를 사용합니다.// Upload a file to IPFS with a file content - caver-javaString text = "test data";byte[] data = text.getBytes();String cid = caver.ipfs.add(data);IPFS에서 파일 다운로드 받기IPFS에 업로드 되어 있는 파일을 caver.ipfs.get 함수를 통하여 다운로드할 수 있습니다. 파라미터로는 다운로드할 파일의 CID를 넘겨줍니다.아래의 예제는 caver-js를 사용하여 IPFS에 저장되어 있는 데이터를 다운로드하는 방법을 설명합니다. caver-js는 IPFS에 저장되어 있는 데이터를 Buffer 타입으로 리턴합니다.// Download a file from IPFS - caver-jsconst cid = 'Qmd9thymMS6mejhEDZfwXPowSDunzgma9ex4ezpCSRZGwC'const content = caver.ipfs.get(cid)caver-java로 IPFS에 저장되어 있는 데이터를 다운로드하는 방법은 아래와 같습니다. caver-java는 byte array 타입으로 IPFS에 저장되어 있는 데이터를 리턴합니다.// Download a file from IPFS - caver-javaString cid = "QmYzW1fXbapdxkZXMQeCYoDCjVc18H8tLfMfrxXRySmQiq";byte[] content = caver.ipfs.get(cid);CID와 multihash간의 변환Caver는 CID를 hex 포맷의 multihash로 변환로 변환하거나 multihash를 CID로 변환하는 함수를 제공합니다.먼저 caver-js를 사용하여 CID를 multihash로 변환하는 방법에 대해서 설명합니다.// Convert a CID to multihash - caver-jsconst cid = 'Qmd9thymMS6mejhEDZfwXPowSDunzgma9ex4ezpCSRZGwC'const multihash = caver.ipfs.toHex(cid)caver-java는 아래와 같이 IPFS.toHex를 사용하면 됩니다.// Convert a CID to multihash - caver-javaString cid = "QmYtUc4iTCbbfVSDNKvtQqrfyezPPnFvE33wFmutw9PBBk";String multihash = IPFS.toHex(cid);toHex의 결과로 나온 hex 포맷의 multihash를 트랜잭션을 통해 Klaytn 블록체인에 기록할 수 있습니다.그럼 반대로 hex 포맷의 multihash를 CID로 변환하는 방법에 대해서 설명하겠습니다.아래의 예제는 caver-js의 caver.ipfs.fromHex를 사용하여 multihash를 CID로 변환하는 방법에 대해서 설명합니다.// Convert a multihash to CID - caver-jsconst multihash = '0x1220dc1dbe0bcf1e5f6cce80bd3d7e7d873801c5a1732add889c0f25391d53470dc3'const cid = caver.ipfs.fromoHex(multihash)caver-java는 아래와 같이 IPFS.fromHex 함수를 사용하여 multihash를 CID로 변환할 수 있습니다.// Convert a multihash to CID - caver-javaString multihash = "0x1220dc1dbe0bcf1e5f6cce80bd3d7e7d873801c5a1732add889c0f25391d53470dc3";String cid = IPFS.toHex(multihash);Example code아래 예제는 caver-js를 IPFS에 파일을 업로드하고 CID를 사용하여 IPFS에서 파일을 다운로드하고 Klaytn 블록체인에 파일 해시를 저장하는 코드입니다.// IPFS Test code - caver-jsconst Caver = require('caver-js')const caver = new Caver('https://api.baobab.klaytn.net:8651/')// Set connection with IPFS Nodecaver.ipfs.setIPFSNode('IPFS Node URL', 5001, true)const testFile = './ipfs.txt'// Add a file to IPFS with file pathconst cid = await caver.ipfs.add(testFile)// Add a file to IPFS with file contents// const contents = Buffer.from('IPFS test')// const cid = await caver.ipfs.add(contents)// Download a file from IPFSconst buffer = await caver.ipfs.get(cid)// Convert from CID to multihash(hex formatted)const multihash = await caver.ipfs.toHex(cid)// Add keyring to in-memory walletconst sender = caver.wallet.add(caver.wallet.keyring.createFromPrivateKey('0x{private key}'))// Create ValueTransferMemo transaction// to submit a cid to Klaytn networkconst tx = new caver.transaction.valueTransferMemo({ from: sender.address, to: sender.address, value: 1, input: multihash, gas: 30000,})// Sign to the transactionawait caver.wallet.sign(sender.address, tx)// Send a signed transaction to Klaytnconst ret = await caver.rpc.klay.sendRawTransaction(tx)아래는 caver-java를 사용하여 IPFS를 사용한 예제코드입니다.// IPFS Test code - caver-javaCaver caver = new Caver("https://api.baobab.klaytn.net:8651/");// Set connection with IPFS Nodecaver.ipfs.setIPFSNode("IPFS Node URL", 5001, true);// Add a file to IPFS with file pathString fileName = "./ipfs.txt";String cid = caver.ipfs.add(fileName);// Add a file to IPFS with file contents// String text = "IPFS test";// byte[] data = text.getBytes();// String cid = caver.ipfs.add(data);// Download a file from IPFSbyte[] contents = caver.ipfs.get(cid);SingleKeyring keyring = KeyringFactory.createFromPrivateKey("0x{private key}");caver.wallet.add(keyring);// Convert from CID to multihash(hex formatted)String multihash = IPFS.toHex(cid);// Create ValueTransferMemo transaction// to submit a cid to Klaytn networkValueTransferMemo tx = new ValueTransferMemo.Builder() .setKlaytnCall(caver.rpc.klay) .setFrom(keyring.getAddress()) .setTo(keyring.getAddress()) .setGas(BigInteger.valueOf(25000)) .setValue("0x00") .setInput(multihash) .build();// Sign to the transactioncaver.wallet.sign(keyring.getAddress(), tx);// Send a signed transaction to KlaytnString txHash = caver.rpc.klay.sendRawTransaction(tx).send().getResult();TransactionReceiptProcessor receiptProcessor = new PollingTransactionReceiptProcessor(caver, 1000, 15);TransactionReceipt.TransactionReceiptData receiptData = receiptProcessor.waitForTransactionReceipt(txHash);Caver를 이용한 IPFS 사용법 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 12. 01

Klaytn State Trie Cache Ser...

Klaytn은 블록체인 플랫폼의 성능을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 state trie cache 성능 개선 과정을 살펴보고자 합니다.Cache 문제 원인 파악하기최적의 cache 찾기State trie cache miss 계산하기Cache Size Tuning 하기전 포스팅을 통해 메모리 과사용의 원인이 큰 Heap 할당을 오랫동안 했기 때문이라는 것을 알았습니다. fastcache와 freecache와 같이 Go GC overhead가 적은 cache가 있습니다. 이 포스팅에서는 메모리 과사용이 적은 cache를 찾기 위한 방법에 대해 소개합니다.출처 : https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/위 포스팅에서는 Go에서 빠른 cache는 ristretto, bigcache, freecache, fastcache 가 있다고 합니다. 이 cache들이 Klaytn에 적합한지 확인하기 위해, Klaytn에 적용해 보고 결과를 확인해 보았습니다.KLAY 전송 테스트사용 AWS instance : m5.2xlargeCN 4, PN 4, EN 4, locust slave 4memory size : 32Gcache size : 6GRPS 2000, accounts : 0.5MCache 비교 테스트 결과총 메모리 사용량은 gc를 포함한 전체 메모리 사용량입니다.저장 entry 수는 각 cache에서 제공하는 stat 값을 이용한 것입니다.Bigcache는 기존에 사용하는 cache입니다.Ristretto는 LFU(Least Frequently Used), 즉 최근에 얼마나 자주 사용했는지를 추적하고 관리합니다. 이 때문에 메모리를 많이 사용하여 out of memory가 발생한 것으로 보입니다. 또한, cache miss도 많은 것을 보아 저장하는 entry 수도 적을 것이라 추측할 수 있습니다.Ristretto의 이런 예상 밖의 결과는 Klaytn에서만 나타난 것이 아닙니다. CODASYL에서 발표한 benchmark를 보면, 다른 cache에 비해 현저히 낮은 hit ratio를 확인할 수 있습니다. 이는 데이터 입력 방식에 따라 LRU에 적합한 것과 LFU에 적합한 것이 따로 존재하기 때문입니다. Klaytn은 state trie 생성 방식을 생각해보면, LRU가 더 적합한 것을 알 수 있습니다. 최신 trie를 생성하기 위해서는 최근에 저장한 node들을 다시 접근하는 경우가 많기 때문입니다. 마찬가지로, 위의 throughput 차트에서는 Ristretto가 가장 좋은 성능을 보여주었지만, Klaytn의 실험결과에서는 가장 높은 캐시 미스를 확인할 수 있었습니다.결론적으로, Ristretto는 다른 cache에 비해 안 좋은 성능을 보여주었기에 Klaytn에 적합하지 않다고 판단했습니다.Freecache는 GC overhead를 없애는 새로운 구조를 가지고 있다고 합니다. Bigcache 보다 메모리 사용량이 낮으며 저장 entry수도 많습니다.Fastcache는 기존에 사용하던 Bigcache와 똑같은 구조를 가지고 있으며, 구현을 좀 더 효율적으로 했다고 합니다. 마찬가지로, Bigcache 보다 메모리 사용량이 적고 더 많은 entry를 저장하고 있습니다.Freecache와 Fastcache를 비교해 보면 저장하는 수는 같지만, 메모리 사용량에서 의미있는 차이를 볼 수 있습니다. 따라서, 메모리 사용량이 가장 적은 Fastcache를 Klaytn의 새로운 캐시로 선택하였습니다.Fastcache가 Bigcache보다 얼마나 좋은지 알아보기 위해 좀 더 큰 인스턴스로 TPS를 테스트 해보았습니다. 똑같은 사양의 인스턴스 2 대에 cache의 종류만 다르게 하여 테스트 하였습니다.KLAY 전송 테스트AWS instance : m5.18xlargeCN 4, PN 8, EN 8, locust slave 4memory size : 144GRPS 4000, accounts : 5MBigcache와 Fastcache 비교 테스트메모리 사용량이 98G에서 69G로 약 30% 줄었고, 저장 entry 수도 147M에서 165M로 12% 증가한 것을 확인할 수 있습니다.속도가 향상되었는지 확인하기 위해 Cypress sync 테스트를 진행하였으며, 작은 instance에서도 cache miss로 인해 sync 속도가 차이나는 것을 확인할 수 있습니다.Cypress sync testAWS instance : m5.2xlargememory size : 32Gcache : Bigcache, Fastcachecache Size : 6GB, 9GBBigcache와 Fastcache의 sync test 결과왼쪽 그래프의 실험 결과를 통해, Fastcache가 Bigcache보다 저장하는 entry수가 많아, cache miss가 늦고 낮게 발생하고 있는 것을 확인할 수 있습니다. 또한, 오른쪽 그래프에서는 현재 블럭 넘버를 나타내고 있는데, Fastcache가 Bigcache보다 블럭 넘버가 높은 것을 확인할 수 있습니다. 이것은 Fastcache가 Bigcache보다 더 빠르게 Cypress 블록 정보를 동기화하는 것을 의미합니다.이번 포스트에서는 Bigcache를 대체할 수 있는 여러 캐시들를 찾아보았고, 다양한 실험을 통해 Fastcache가 Bigcache보다 메모리 관리 측면과 성능 측면에서 모두 뛰어난 것을 확인할 수 있었습니다. Klaytn v1.5.0 버전부터는 Fastcache가 적용되었으니, 아직 낮은 버전으로 노드를 운영하고 계시다면 버전을 올려보시기를 권장드립니다.다음 포스트에서 state trie cache miss에 영향을 미치는 요인은 무엇인지 알아보겠습니다.Klaytn State Trie Cache Series #2: 최적의 cache 찾기 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 11. 24

[caver-java] Dynamic ABI lo...

Contract dynamic ABI loader는 Smart Contract ABI(Application Binary Interface)를 런타임에 로딩하여 Contract 배포 및 실행을 쉽게 할 수 있게 해주는 기능으로, caver.contract.Contract에 포함되었습니다. 이 Dynamic ABI Loader를 통해 다양한 컨트랙트들을 좀 더 쉽게 로딩하고 실행할 수 있습니다.새로운 점caver-java 1.5.1 이전 버전에서는 caver-java console 프로그램을 이용하여, 사용하고자 하는 Contract의 abi파일 및 binary data를 넣어 해당하는 .java 파일을 생성 후 프로젝트에 등록해서 사용해야 했습니다. 이 경우, contract가 변경될 때마다 새로운 .java파일을 생성하고 등록하고 컴파일해야 하는 번거로움이 있습니다.하지만 caver-java 1.5.1 부터는 abi파일과 binary data를 동적으로 로딩하여 사용할 수 있도록 Dynamic ABI loader 기능이 추가되었습니다. 아래 튜토리얼에서 사용 방법을 알아보도록 하겠습니다.Dynamic ABI Loader를 통한 Contract 인스턴스 만들기먼저, ABI를 caver-java로 로딩하기 위한 sample contract를 만들어 보겠습니다. ‘test.sol’이라는 이름으로 파일을 만들고 아래 코드를 입력합니다. 이 컨트랙트는 key-value를 저장하고 읽어올 수 있는 기능을 가진 컨트랙트입니다.// test.solpragma solidity ^0.5.6; contract KVStore { mapping(string => string) store; string symbol; constructor(string memory _symbol) public { symbol = _symbol; } function get(string memory key) public view returns (string memory) { return store[key]; } function set(string memory key, string memory value) public { store[key] = value; }}그리고 이 컨트랙트를 solidity compiler를 통해 abi와 binary data를 생성합니다.solc --abi --bin ./test.sol======= ./test.sol:KVStore =======Binary: 608060405234801561001057600080fd5b506040516106763803806106768339810180604052602081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8281019050602081018481111561006157600080fd5b815185600182028301116401000000008211171561007e57600080fd5b5050929190505050806001908051906020019061009c9291906100a3565b5050610148565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e457805160ff1916838001178555610112565b82800160010185558215610112579182015b828111156101115782518255916020019190600101906100f6565b5b50905061011f9190610123565b5090565b61014591905b80821115610141576000816000905550600101610129565b5090565b90565b61051f806101576000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063693ec85e1461003b578063e942b5161461016f575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610134578082015181840152602081019050610119565b50505050905090810190601f1680156101615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf6004803603604081101561018557600080fd5b81019080803590602001906401000000008111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111640100000000831117156101d657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103cc565b005b60606000826040518082805190602001908083835b602083106102f957805182526020820191506020810190506020830392506102d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b806000836040518082805190602001908083835b6020831061040357805182526020820191506020810190506020830392506103e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061044992919061044e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061048f57805160ff19168380011785556104bd565b828001600101855582156104bd579182015b828111156104bc5782518255916020019190600101906104a1565b5b5090506104ca91906104ce565b5090565b6104f091905b808211156104ec5760008160009055506001016104d4565b5090565b9056fea165627a7a72305820cda9307ff998ca73df4fb6024fbb9bff5f5b2fc6293799b12f945d12c6f0d1960029Contract JSON ABI [{"constant":true,"inputs":[{"name":"key","type":"string"}],"name":"get","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"key","type":"string"},{"name":"value","type":"string"}],"name":"set","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"_symbol","type":"string"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"}]아래 코드와 같이 작성하면, JSON타입의 ABI data를 Dynamic ABI loader를 이용해서 Contract 인스턴스를 생성하고, 인스턴스 내 Contract의 어떤 function을 호출 할 수 있는지 확인해볼 수 있습니다.private static final String CONTRACT_ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]";public void loadContractInterface() { try { Caver caver = new Caver(Caver.DEFAULT_URL); Contract contract = new Contract(caver, CONTRACT_ABI);contract.getMethods().forEach((name, method) ->{ System.out.println(method.getType() + " " + ABI.buildFunctionString(method));}); }); } catch (Exception e) { // Handle exceptions. e.printStackTrace(); }}위 코드의 실행 결과는 아래와 같습니다.function set(string,string)function get(string)Contract 배포하기아래와 같이 binary data와 abi파일을 활용하여 contract를 배포할 수 있습니다.private static final String CONTRACT_ABI = "Contract ABI Data";private static final String CONTRACT_BINARY = "Contract BINARY Data";public void deployContract() { try { Caver caver = new Caver(Caver.DEFAULT_URL); SingleKeyring deployer = KeyringFactory.createFromPrivateKey("0x{private key}"); caver.wallet.add(deployer); Contract contract = new Contract(caver, CONTRACT_ABI); //set the send options. SendOptions sendOptions = new SendOptions(deployer.getAddress(), BigInteger.valueOf(650000)); //set the contract's constructor parameter. contract.deploy(sendOptions, CONTRACT_BINARY, "Test"); System.out.println(contract.getContractAddress()); } catch (Exception e) { //handle exceptions. e.printStackTrace(); }}deploy 함수를 호출할 때, 첫 번째 파라미터로는 트랜잭션 전송 옵션을 설정하는 `SendOptions` 타입의 객체를, 두 번째 파라미터로는 컨트랙트 바이너리 데이터를 전달합니다. 그 이후부터는 컨트랙트의 생성자에 입력된 파라미터를 순서대로 전달합니다. deploy 함수는 내부적으로 smart contract deploy transaction type의 instance를 생성합니다.SendOptions는 트랜잭션 생성에 필요한 정보를 저장하는 객체입니다. SendOptions은 from과 gas, value 총 3가지 필드로 정의되며, 각 필드는 아래와 같은 역할을 합니다.fromtransaction instance의 “from”필드의 값으로 사용됩니다. transaction에 서명할 때 caver.wallet에서 이 값을 기준으로 keyring을 검색합니다.gastransaction instance의 “gas”필드의 값으로 사용됩니다.valuetransaction instance의 “value”필드의 값으로 사용됩니다.위의 코드를 실행하면 아래와 같이 Klaytn 네트워크에 배포된 Contract의 address가 출력되는 것을 확인할 수 있습니다.0xc9267c4a39c606f4f90df4bb326ec1d0572d5750배포된 Contract 연결하기이미 배포된 Contract와 연결하기 위해서는, 배포된 Contract의 ABI와 address가 필요합니다. 아래와 같이 코드를 작성하면 배포된 Contract와 연결할 수 있습니다.private static final String CONTRACT_ABI = "Contract ABI Data";public void loadContractInterface() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750"; Caver caver = new Caver(Caver.DEFAULT_URL); Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress);System.out.println(contract.getContractAddress()); } catch (Exception e) { //handle exception. e.printStackTrace(); }}위의 코드를 실행하면 아래와 같이 Contract address가 출력되는 것을 확인할 수 있습니다.0xc9267c4a39c606f4f90df4bb326ec1d0572d5750Contract 함수 호출하기Dynamic ABI Loader를 통해 분석된 ABI 정보들은 Type(Function, Event)에 따라 구분되어 ContractMethod와 ContractEvent의 instance로 만들어지고, Contract instance는 List 자료구조로 ContractMethod와 ContractEvent를 관리합니다.Contract 함수를 호출하는 것은 2가지의 유형이 있습니다.call() : Contract의 상태를 바꾸지 않고 Contract로부터 데이터를 전달 받음. 내부적으로는 JSON-RPC klay_call()을 사용함.send() : Contract의 상태를 바꿈. 내부적으로는 Smart Contract Execution transaction을 사용하여 클레이튼에 트랜잭션을 전송함.Contract 함수를 호출할 때 위 2가지의 타입이 있다는 것을 유의하고 Function의 성격에 맞게 call을 쓸 지, send를 쓸 지 선택하시면 됩니다.send()Contract 함수를 send 한다는 것은 Contract의 상태를 바꾸는 행위를 하는 함수를 호출하는 것입니다.이 send() 함수는 내부적으로 Smart Contract Execution transaction을 발생시키고 그에 따른 Transaction Receipt을 리턴합니다.위에서 생성 및 배포한 KVStore contract에서는 set()이라는 함수가 이에 해당합니다. 아래와 같이 코드를 작성하면 미리 배포된 KVStore contract의 set()이라는 함수를 호출하고 Transaction Receipt을 리턴 받을 수 있습니다.private static final String CONTRACT_ABI = "Contract ABI Data";public void sendTest() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750"; SingleKeyring executor = KeyringFactory.createFromPrivateKey("0x{private key}"); Caver caver = new Caver(Caver.DEFAULT_URL); caver.wallet.add(executor); Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress); SendOptions sendOptions = new SendOptions(executor.getAddress(), BigInteger.valueOf(650000));TransactionReceipt.TransactionReceiptData receiptData = contract.send(sendOptions, "set", "Just", "Test"); System.out.println(receiptData.getTransactionHash()); } catch (Exception e) { //handle exception. e.printStackTrace(); }}send() 호출 시 첫 번째 파라미터로는 `SendOptions`를, 두 번째 파라미터로는 호출할 함수의 이름을 입력합니다. 이후 파라미터는 해당 함수 호출에 필요한 파라미터들을 순서대로 입력합니다. send는 내부적으로 SmartContractExecution transaction을 생성합니다.SendOptions는 트랜잭션 생성에 필요한 정보를 저장하는 객체입니다. SendOptions은 from과 gas, value 총 3가지 필드로 정의되며, 각 필드는 아래와 같은 역할을 합니다.fromtransaction instance의 “from”필드의 값으로 사용됩니다. transaction에 서명할 때 caver.wallet에서 이 값을 기준으로 keyring을 검색합니다.gastransaction instance의 “gas”필드의 값으로 사용됩니다.valuetransaction instance의 “value”필드의 값으로 사용됩니다.위의 코드를 실행하면 transaction hash값이 출력됩니다. 아래의 값은 예시로, 실행할 때마다 트랜잭션 해시는 달라질 수 있습니다.0xe7f81c94d8d06b1229b04ac556f8d8adb468593206e47c727ca2818f7c795c91Contract 함수 call()Contract함수를 call한다는 것은 Contract의 상태를 변화시키지 않고 Contract로 부터 데이터를 반환받는 성격의 함수를 호출하는 것입니다.이 call()함수는 내부적으로 JSON-RPC의 klay_call API를 호출하고 그에 따른 data를 반환받게 됩니다.위에서 생성 및 배포한 KVStore contract에서는 get()이라는 함수가 이에 해당됩니다. 아래와 같이 코드를 작성하면 Contract의 get()이라는 함수를 호출하고 get 함수가 반환하는 데이터를 전달 받을 수 있습니다.private static final String CONTRACT_ABI = "Contract ABI Data";public void callTest() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750";Caver caver = new Caver(Caver.DEFAULT_URL); Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress); List<Type> returnedData =contract.call("get", "Just"); System.out.println((String)returnedDate.get(0).getValue()); } catch (Exception e) { //handle exception. e.printStackTrace(); }}반환되는 값은 Solidity에서 정의된 type들을 구현한 class들 중 return type에 맞는 class instance의 값으로 매핑되며, 이는 List로 표현됩니다.위와 같이 코드를 실행하면 아래와 같이 결과를 얻을 수 있습니다.Test전체 코드위의 전체 소스는 아래와 같습니다. Junit4를 사용하였고, Unit Test를 통해 각각 함수의 실행결과를 확인해보실 수 있습니다.import com.klaytn.caver.contract.Contract;import com.klaytn.caver.contract.ContractDeployParams;import com.klaytn.caver.contract.SendOptions;import com.klaytn.caver.methods.response.TransactionReceipt;import com.klaytn.caver.wallet.keyring.KeyringFactory;import com.klaytn.caver.wallet.keyring.SingleKeyring;import org.junit.Test;import org.web3j.abi.datatypes.Type;import java.math.BigInteger;import java.util.Arrays;import java.util.List;public class ContractTutorial { private static final String CONTRACT_ABI = "[{\"constant\":true,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"}],\"name\":\"get\",\"outputs\":[{\"name\":\"\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"name\":\"key\",\"type\":\"string\"},{\"name\":\"value\",\"type\":\"string\"}],\"name\":\"set\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_symbol\",\"type\":\"string\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"}]"; private static final String CONTRACT_BINARY = "608060405234801561001057600080fd5b506040516106763803806106768339810180604052602081101561003357600080fd5b81019080805164010000000081111561004b57600080fd5b8281019050602081018481111561006157600080fd5b815185600182028301116401000000008211171561007e57600080fd5b5050929190505050806001908051906020019061009c9291906100a3565b5050610148565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106100e457805160ff1916838001178555610112565b82800160010185558215610112579182015b828111156101115782518255916020019190600101906100f6565b5b50905061011f9190610123565b5090565b61014591905b80821115610141576000816000905550600101610129565b5090565b90565b61051f806101576000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063693ec85e1461003b578063e942b5161461016f575b600080fd5b6100f46004803603602081101561005157600080fd5b810190808035906020019064010000000081111561006e57600080fd5b82018360208201111561008057600080fd5b803590602001918460018302840111640100000000831117156100a257600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506102c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610134578082015181840152602081019050610119565b50505050905090810190601f1680156101615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf6004803603604081101561018557600080fd5b81019080803590602001906401000000008111156101a257600080fd5b8201836020820111156101b457600080fd5b803590602001918460018302840111640100000000831117156101d657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192908035906020019064010000000081111561023957600080fd5b82018360208201111561024b57600080fd5b8035906020019184600183028401116401000000008311171561026d57600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506103cc565b005b60606000826040518082805190602001908083835b602083106102f957805182526020820191506020810190506020830392506102d6565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390208054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050509050919050565b806000836040518082805190602001908083835b6020831061040357805182526020820191506020810190506020830392506103e0565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020908051906020019061044992919061044e565b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061048f57805160ff19168380011785556104bd565b828001600101855582156104bd579182015b828111156104bc5782518255916020019190600101906104a1565b5b5090506104ca91906104ce565b5090565b6104f091905b808211156104ec5760008160009055506001016104d4565b5090565b9056fea165627a7a72305820cda9307ff998ca73df4fb6024fbb9bff5f5b2fc6293799b12f945d12c6f0d1960029";@Test public void loadContractInterface() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750"; Caver caver = new Caver(Caver.DEFAULT_URL); Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress);System.out.println(contract.getContractAddress()); } catch (Exception e) { //handle exception. e.printStackTrace(); } }@Test public void deployContract() { try { Caver caver = new Caver(Caver.DEFAULT_URL); SingleKeyring deployer = KeyringFactory.createFromPrivateKey("0x{private key}");caver.wallet.add(deployer); Contract contract = new Contract(caver, CONTRACT_ABI);//set the send options. SendOptions sendOptions = new SendOptions(deployer.getAddress(), BigInteger.valueOf(650000));//set the contract's constructor parameter.contract.deploy(sendOptions, CONTRACT_BINARY, "Test"); System.out.println(contract.getContractAddress()); } catch (Exception e) { //handle exception. e.printStackTrace(); } }@Test public void sendTest() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750"; SingleKeyring executor = KeyringFactory.createFromPrivateKey("0x{private key}");Caver caver = new Caver(Caver.DEFAULT_URL); caver.wallet.add(executor);Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress); SendOptions sendOptions = new SendOptions(executor.getAddress(), BigInteger.valueOf(650000));TransactionReceipt.TransactionReceiptData receiptData =contract.send(sendOptions, "set", "Just", "Test"); System.out.println(receiptData.getTransactionHash()); } catch (Exception e) { //handle exception. e.printStackTrace(); } }@Test public void callTest() { try { String contractAddress = "0xc9267c4a39c606f4f90df4bb326ec1d0572d5750";Caver caver = new Caver(Caver.DEFAULT_URL); Contract contract = new Contract(caver, CONTRACT_ABI, contractAddress);List<Type> returnedData = contract.call("get", "Just"); System.out.println((String)returnedDate.get(0).getValue()); } catch (Exception e) { //handle exception. e.printStackTrace(); } }}caver-java로 Smart Contract를 다루는 더 자세한 내용은 Klaytn Docs의 Getting Started 문서를 통해 확인하실 수 있습니다. 감사합니다.[caver-java] Dynamic ABI loader was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 11. 24

Klaytn State Trie Cache Ser...

Klaytn은 블록체인 플랫폼의 성능을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 state trie cache 성능 개선 과정을 살펴보고자 합니다.Cache 문제 원인 파악하기최적의 cache 찾기State trie cache miss 계산하기Cache Size Tuning 하기이 포스팅에서는 Klaytn에 관련한 실험을 진행하다가 발견한 문제와 문제의 원인이었던 Go 언어의 GC(Garbage Collector)에 대해 살펴보겠습니다. 다음은 Klaytn 테스트 도중 발생한 현상입니다.Prometheus에서 제공하는 API로 메모리 사용량 조회Klaytn binary에서 3500 TPS로 transaction을 처리하였을때 약 100G의 메모리를 사용합니다. 어디서 많이 사용하고 있는지 확인하기 위해 Go언어에서 제공하는 메모리 프로파일링을 이용하여 그 결과를 확인하였습니다.▶ go tool pprof cn-mem0.profFile: kcnBuild ID: 7b45b11c163a99518095ffb64083e4aa61fd321fType: inuse_spaceTime: Mar 26, 2020 at 8:56am (KST)Entering interactive mode (type "help" for commands, "o" for options)(pprof) topShowing nodes accounting for 41.91GB, 96.33% of 43.50GB totalDropped 382 nodes (cum <= 0.22GB)Showing top 10 nodes out of 77 flat flat% sum% cum cum% 30GB 68.97% 68.97% 30GB 68.97% github.com/allegro/bigcache/queue.NewBytesQueue 5.65GB 12.98% 81.95% 5.65GB 12.99% github.com/allegro/bigcache.(*cacheShard).set 1.53GB 3.52% 85.47% 1.53GB 3.52% reflect.New 1.25GB 2.87% 88.35% 2.60GB 5.97% github.com/klaytn/klaytn/ser/rlp.decodeBigInt메모리 프로파일링을 통해 어디서 몇 바이트의 메모리를 사용하고 있는지 확인할 수 있습니다. 위 결과 중 Showing nodes accounting for 41.91GB, 96.33% of 43.50GB total를 통해 kcn binary에서 총 43.5GB를 사용하고 있고, 그 중 96.33%인 41.91GB가 어디서 사용되고 있는지 확인할 수 있습니다. 또한, 30GB 68.97% github.com/allegro/bigcache/queue.NewBytesQueue를 통해 30GB(68.97%)는 bigcache에서 사용하고 있는 것을 확인할 수 있습니다.두 결과에서 이상한 점을 확인할 수 있습니다. Prometheus에서 제공하는 메모리 사용량 library에 의하면 약 100GB를 kcn에서 사용하고 있고, 메모리 프로파일링 결과(43.50GB total)에서는 kcn binary에서 총 43.5GB를 사용하고 있다는 결과를 확인할 수 있습니다. 56.5GB(=100GB - 43.5GB)의 메모리가 어디서 사용하고 있는지 추적할 수 없습니다.메모리 누락의 원인 중 의심되는 것 중 하나는 메모리를 가장 많이 사용하고 있는 Bigcache였습니다. Bigcache가 메모리를 더 많이 사용하고 있는지 확인하기 위해 같은 환경의 서버 2대에 cache size만 30GB, 0GB로 할당하여 테스트를 진행하였습니다. 다음은 두 서버의 top과 메모리 프로파일링 결과입니다.(Top명령의 결과는 GiB, Prometheus에서 제공하는 library의 결과는 GB이며 두 값은 똑같은 값을 나타냅니다.)Cypress sync testAWS Instance : m5.8xlargememory size: 128Gcache size: 30G, 0Gtop 명령어 결과 (좌: cache 30G, 우: cache 0GB)Go Memory Profiling 결과 (좌: cache 30G, 우: cache 0GB)Bigcache를 할당해 준 서버에서는 Top과 메모리 프로파일링에서 총 메모리 사용량이 각각 70GB, 35GB로 35GB의 메모리 누락이 있는것을 확인할 수 있습니다. 반면에 Bigcache를 사용하고 있지 않는 서버에서는 Top과 메모리 프로파일링에서 총 메모리 사용량이 각각 5GB, 2GB로 메모리 누락이 3GB 있는 것을 확인할 수 있습니다.위 실험을 통해, Bigcache를 사용하면 할당해 준 메모리보다 더 많은 메모리를 사용할 수 있다는 것을 유추해 볼 수 있습니다. 또한 Bigcache를 사용하지 않아도 3GB정도의 메모리 누락이 발생하는 것을 확인할 수 있었습니다. GC의 동작 때문에, 어떤 Go 프로그램이 실행되더라도 메모리 프로파일링에서의 사용량과 실제 사용량은 차이가 생길 수 있습니다.또한, 오랫동안 큰 heap 메모리를 잡고 있고, 이를 할당할 때 pointer를 사용하고 있으면 굉장히 많은 메모리가 사용된다는 것을 이 글을 통해 알 수 있었습니다.GC(Garbage Collector)는 프로그램이 동적으로 할당했던 메모리 중 더 이상 사용하고 있지 않는 영역을 찾고, 이를 할당 해제하여 다른 곳에서 메모리를 사용할 수 있도록 합니다. 이를 위해 Go언어의 GC(Garbage Collector)는 사용하고 있지 않은 공간이 할당되어 있는지 확인합니다. 이 때 확인하는 대상은 바로 포인터 입니다. 포인터가 많거나 큰 메모리를 사용하고 있다면, GC에서 이를 탐색하는데 많은 메모리를 사용합니다.따라서, GC가 실행을 시작하기 전에는 메모리 사용량이 44GB이었다가 GC가 동작하면서 메모리 사용량이 100GB만큼 추가적으로 사용되는 것입니다. 또한, 메모리 프로파일링 시점은 GC가 실행을 마친 후이기 때문에, 기존 메모리 사용량인 44GB만 확인할 수 있었던 것입니다. Klaytn과 같이 큰 Bigcache를 할당해 주는 경우에는 GC에서 항상 더 많은 메모리를 사용하고 있었던 것입니다.이러한 추가적인 메모리 사용은 의도치 않은 out of memory 에러를 발생시킬 수 있습니다. Klaytn 처럼 오랜기간 동작해야 하는 프로그램의 경우, 의도치 않은 많은 메모리를 사용하여 프로세스가 종료되는 경우가 발생하지 않아야 합니다. 이 메모리 누락 문제를 어떻게 해결하였는지 다음 포스트에서 알아보겠습니다.Klaytn State Trie Cache Series #1: Cache 문제 원인 파악하기 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 11. 13

Common Architecture of Caver

Caver는 Klaytn을 쉽게 사용하기 위한 SDK입니다. Caver는 v1.5.0에서 Common Architecture를 새롭게 도입하였는데요, 아래의 포스팅을 통해 Caver의 Common Architecture가 무엇인지 간단하게 알아보고자 합니다.자세한 내용은 KIP-34 Klaytn SDK Common Architecture를 참고해 주세요.1. Common Architecture 정의먼저 Common Architecture에 대한 정의에 대해서 말씀드리겠습니다. Common Architecture는 모든 Klaytn SDK에서 공유하는 Klaytn 개발 환경을 위한 새로운 소프트웨어 아키텍처입니다.2. Common Architecture의 필요성현재 Caver는 caver-js와 caver-java 이렇게 두 가지의 언어로 제공되고 있습니다. Common Architecture가 도입되기 이전 Caver는 아래의 몇 가지 문제를 가지고 있었습니다.구조/용어Caver는 공통적으로 공유되는 구조가 없기 때문에 caver-js와 caver-java의 내부에 구현된 구조가 다릅니다. 또한 사용하는 용어조차 언어 별로 통일되어 있지 않았기 때문에 의사소통에 어려움이 있었습니다.사용성내부적으로 구현된 구조와 사용되는 용어가 다르기 때문에 당연히 SDK를 사용하는 사용성도 많이 달랐습니다.언어 확장언어 별로 제공되는 Caver의 사용성이 다르기 때문에 caver-js를 사용하는 데에 익숙한 개발자임에도 불구하고, caver-java를 사용하여 개발하기 위해서는 사용방법을 숙지하기 위한 시간이 따로 필요합니다. 이렇게 사용성이 다르기 때문에 BApp이 다른 언어로 확장하는 데에 한계가 있었습니다.Caver는 Common Architecture를 도입함으로써 위와 같은 문제들을 해결하고자 했습니다. 또한 공통적인 구조를 마련하여 새로운 언어의 Caver가 개발될 수 있는 토대를 마련하고자 했습니다.3. Common Architecture의 구조여기서는 Common Architecture의 구조를 레이어 별로 간단하게 나누어 설명드리겠습니다. 아래는 Common Architecture Layer Diagram입니다.KCT LayerKCT 레이어는 KCT(Klaytn Compatible Token) 컨트랙트를 쉽게 배포하고 실행하기 위한 기능이 제공되는 레이어입니다. 현재는 KIP-7 fungible token standard와 KIP-17 non fungible token standard에 대한 기능이 KCT 레이어에서 제공되고 있습니다.Contract LayerContract 레이어는 스마트 컨트랙트를 쉽게 사용할 수 있는 기능이 제공되는 레이어입니다. 사용자는 스마트 컨트랙트의 ABI(Application Binary Interface)와 byte code를 가지고 있다면 Contract 레이어에서 제공되는 기능을 사용하여 쉽게 Klaytn에 스마트 컨트랙트를 배포하거나 실행할 수 있습니다.ABI LayerABI 레이어는 Application Binary Interface에 대한 기능을 제공하는 레이어로, 스마트 컨트랙트의 ABI를 사용하여 인코딩/디코딩하는 기능을 제공합니다. 스마트 컨트랙트를 사용하기 위해서 필수적으로 사용되는 기능들로 구성되어 있으며, Contract 레이어에서 이를 내부적으로 사용하고 있습니다.Transaction Layer트랜잭션 레이어는 Klaytn에서 사용되는 다양한 트랜잭션 타입들이 개별 클래스로 구현되어 제공되며, 또한 트랜잭션 해시를 구하거나 RLP 인코딩, 디코딩 기능 등 트랜잭션과 관련된 기능들도 함께 제공됩니다.Wallet LayerWallet 레이어는 Caver에서 Klaytn Account를 사용할 수 있는 기능들이 제공됩니다. Wallet 레이어에서는 사용자가 Caver 에서 Klaytn 계정의 주소와 private key들을 담을 수 있는 구조인 Keyring이 제공되며, 또한 이 Keyring을 관리할 수 있는 in-memory wallet 기능을 제공하는 KeyringContainer가 함께 제공됩니다.Account LayerAccount 레이어는 Klaytn Account의 AccountKey를 업데이트할 때에 필요한 데이터 구조와 기능들이 제공되고 있습니다. Account는 Account Update Transaction (AccountUpdate / FeeDelegatedAccountUpdate / FeeDelegatedAccountUpdateWithRatio)에서 사용되며, 내부적으로는 업데이트할 Klaytn Account의 주소, 그리고 새롭게 사용하고자 하는 AccountKey를 포함하고 있습니다.RPC LayerRPC 레이어에서는 Klaytn Node와 RPC 통신을 하는 기능을 제공합니다.Utils LayerUtils 레이어에서는 BApp을 개발할 때에 필요한 유틸리티 함수들을 제공합니다.Common Architecture 구조에 대한 설명은 간단하게 여기서 마치겠습니다. Common Architecture에 대한 자세한 내용은 KIP-34를 참고하세요.이제 Common Architecture가 도입된 Caver를 어떻게 사용하는지 몇 가지 예제를 통해 설명하겠습니다.4. Caver로 KLAY를 전송하는 방법먼저 Caver를 사용하여 KLAY를 전송하는 방법에 대해서 설명합니다. KLAY 전송하기는 아래의 절차 대로 진행됩니다.keyring 생성 → in-memory wallet에 keyring 추가 → transaction 생성 → transaction 서명 → Klaytn 네트워크에 전송각 절차 별로 코드와 함께 설명드리겠습니다.4.1. keyring 생성먼저 KLAY를 전송할 때에 사용될 keyring을 생성합니다. 이 때 사용되는 Klaytn Account는 충분한 KLAY를 소유하고 있어야 합니다. Baobab 네트워크의 테스트넷 KLAY는 Baobab Klaytn Wallet을 통해서 받을 수 있습니다.caver-js는 아래와 같이 `caver.wallet.keyring.decrypt`를 통해 키스토어 파일을 복호화하여 사용할 keyring을 생성합니다.// keyring 생성 - caver-jsconst keystore = fs.readFileSync('keystore.json', 'utf8')const keyring = caver.wallet.keyring.decrypt(keystore, 'password')caver-java도 마찬가지로 키스토어 파일을 복호화하여 keyring을 생성하는데, 이 때에 아래와 같이 `KeyringFactory.decrypt` 함수를 사용합니다.// keyring 생성 - caver-javaFile file = new File('./keystore.json');ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, "password");4.2. in-memory wallet 에 keyring 추가여기서는 위에서 생성한 keyring을 in-memory wallet에 추가합니다.caver-js를 사용하여 in-memory wallet에 추가하기 위해서는 아래와 같이 `caver.wallet.add`함수를 사용하면 됩니다.// in-memory wallet keyring 추가 - caver-jscaver.wallet.add(keyring)caver-java도 동일하게 `caver.wallet.add` 함수를 사용하여 in-memory wallet에 keyring을 추가할 수 있습니다.// in-memory wallet keyring 추가 - caver-javacaver.wallet.add(keyring);4.3. transaction 생성이제 실제로 KLAY를 전송하는 트랜잭션을 생성하면 됩니다. 여기서는 ValueTransfer 트랜잭션이 사용됩니다.caver-js를 사용하여 ValueTransfer 트랜잭션을 생성하는 방법은 아래와 같습니다.// transaction 생성 - caver-jsconst vt = new caver.transaction.valueTransfer({ from: keyring.address, to: '0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d', value: 1, gas: 25000,})caver-java를 사용하여 KLAY를 전송하는 방법은 아래와 같습니다. caver-java의 경우에도 트랜잭션을 생성할 때에 생성자에 파라미터를 차례대로 정의하여 생성할 수 있지만, 파라미터 개수가 많아지고 optional 파라미터가 많으므로 편의성을 위하여 빌더패턴이 제공됩니다. 아래의 예제는 빌더패턴을 사용하여 ValueTransfer를 생성하는 방법입니다.// transaction 생성 - caver-javaValueTransfer vt = new ValueTransfer.Builder().setKlaytnCall(caver.rpc.klay) .setFrom(keyring.getAddress()) .setTo('0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d') .setValue(BigInteger.ONE) .setGas(BigInteger.valueOf(25000)) .build();4.4. transaction 서명이제 생성된 트랜잭션을 키링으로 서명합니다. 생성한 키링을 in-memory wallet에 추가해 주었기 때문에 이 예제에서는 in-memory wallet을 사용하여 서명하는 방법을 설명합니다.caver-js를 사용하여 트랜잭션에 서명하는 방법은 아래와 같습니다.// transaction 서명 - caver-jsawait caver.wallet.sign(keyring.address, vt)caver-java를 사용하여 트랜잭션에 서명하는 방법은 아래와 같습니다.// transaction 서명 - caver-javacaver.wallet.sign(keyring.getAddress(), vt);위의 코드와 같이 in-memory wallet의 sign 함수를 호출하면 첫 번째 파라미터로 전달 받은 주소의 키링을 찾아 해당 키링의 private key(s)로 트랜잭션에 서명합니다. 서명 결과는 트랜잭션 내부의 `signatures` 필드에 저장됩니다.4.5. Klaytn 네트워크에 전송이제 서명된 트랜잭션을 Klaytn 네트워크에 전송하는 일만 남았습니다. RPC 레이어에서 제공하는 기능을 사용하여 Klaytn Node에 트랜잭션을 전송합니다.caver-js를 사용하여 트랜잭션을 전송하는 방법은 아래와 같습니다. caver-js를 사용하여 트랜잭션을 전송하는 경우, 2가지의 형태로 결과를 핸들링할 수 있습니다. Promise을 사용하면 트랜잭션 receipt을 바로 리턴받을 수 있습니다. EventEmitter를 사용하는 경우 `transactionHash`, `receipt` 그리고 `error`에 대해서 이벤트를 처리할 수 있습니다.// transaction 전송 및 receipt 조회 - caver-js// Using Promise - use await or thenconst receipt = await caver.rpc.sendRawTransaction(vt)// Using event emittercaver.rpc.klay.sendRawTransaction(vt) .on('transactionHash', (hash) => {console.log(hash)}) .on('receipt', (r) => {console.log(r)})caver-java를 사용하여 트랜잭션을 전송하는 방법은 아래와 같습니다.// transaction 전송 및 receipt 조회 - caver-javaBytes32 ret = caver.rpc.klay.sendRawTransaction(vt).send();String txHash = ret.getResult();TransactionReceiptProcessor receiptProcessor = new PollingTransactionReceiptProcessor(caver, 1000, 15);TransactionReceipt.TransactionReceiptData receiptData = receiptProcessor.waitForTransactionReceipt(txHash);`caver.rpc.klay.sendRawTransaction`의 실행을 마치면 해당 트랜잭션에 대한 트랜잭션 해시가 리턴됩니다. caver-java에서는 `TransactionReceiptProcessor`를 사용하여 트랜잭션 해시를 통해 트랜잭션의 처리 상태를 조회할 수 있습니다. 네트워크로 전송된 트랜잭션이 처리가 완료되면 실제로 KLAY가 전송되게 됩니다.5. Caver로 나만의 토큰을 만들자이 장에서는 Caver를 사용하여 나만의 토큰을 만들고 이를 사용하는 방법에 대해서 설명합니다. 토큰 만들기는 아래의 절차 대로 진행됩니다.keyring 생성 → in-memory wallet에 keyring 추가 → KIP7 컨트랙트 배포→ 배포된 KIP7 컨트랙트 함수 호출위의 절차를 통하여 토큰 컨트랙트를 네트워크에 배포하고 배포의 결과로 리턴 받은 KIP7 인스턴스를 사용하여 네트워크에 배포된 토큰 컨트랙트를 실행할 수 있습니다.각 절차 별로 코드와 함께 설명드리겠습니다.5.1. keyring 생성 및 in-memory wallet에 keyring 추가토큰을 생성하기 위해서는 사용할 키링을 생성하고 in-memory wallet에 추가해 주어야 합니다. 여기까지의 과정은 4.1. ~ 4.2. 와 동일하므로 자세한 설명은 생략합니다.caver-js로 keyring을 생성하고 in-memory wallet에 추가하는 코드는 아래와 같습니다.// keyring 생성 및 in-memory wallet 추가 - caver-jsconst keystore = fs.readFileSync('keystore.json', 'utf8')const keyring = caver.wallet.keyring.decrypt(keystore, 'password')caver.wallet.add(keyring)caver-java로 keyring을 생성하고 in-memory wallet에 추가하는 코드는 아래와 같습니다.// keyring 생성 및 in-memory wallet 추가 - caver-javaFile file = new File('./keystore.json');ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, "password");caver.wallet.add(keyring);5.2. KIP7 컨트랙트 배포KIP-7 토큰 컨트랙트를 배포하기 위해서는 Caver의 KCT 레이어에서 제공하는 KIP7 클래스의 deploy 메소드를 호출하면 됩니다. 파라미터로는 토큰 컨트랙트를 배포할 때에 필요한 정보들과 배포할 때에 사용할 keyring의 주소를 넘겨주면 됩니다.caver-js를 사용하여 deploy 함수를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 배포 - caver-jsconst initialSupply = new BigNumber('1000000000000000000')const params = { name: 'TestToken', symbol: 'TTK', decimals: 18, initialSupply }const kip7 = await caver.kct.kip7.deploy(params, keyring.address)caver-java를 사용하여 deploy 함수를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 배포 - caver-javaBigInteger initialSupply = new BigInteger("1000000000000000000");KIPDeployParams params = new KIP7DeployParams("TestToken", "TTK", 18, initialSupply);KIP7 kip7 = KIP7.deploy(caver, params, keyring.getAddress());KIP7 의 deploy가 호출되면 내부적으로 아래와 같이 KIP-7 토큰 컨트랙트를 Klaytn 네트워크에 배포하기 위한 일들이 수행됩니다.먼저 deploy 메소드로 넘긴 파라미터를 사용하여 SmartContractDeploy 트랜잭션이 생성되고, in-memory wallet에 저장된 keyring을 사용하여 생성된 트랜잭션에 서명합니다. 그 이후에는 서명된 트랜잭션을 Klaytn 네트워크로 전송하여 KIP-7 토큰 컨트랙트를 배포합니다. 배포한 결과로 KIP7 인스턴스가 반환되며, 내부에는 배포된 컨트랙트의 주소를 포함하고 있습니다. 사용자는 이를 사용하여 네트워크에 배포된 컨트랙트를 실행할 수 있습니다.5.3. 배포된 KIP7 컨트랙트 함수 호출KIP-7 토큰 컨트랙트 배포의 결과로 KIP7 인스턴스를 받은 시점에서 설명을 이어가겠습니다. 사용자는 네트워크에 배포된 KIP-7 토큰 컨트랙트를 실행하기 위해서는 KIP7 인스턴스의 메소드를 호출해 주면 됩니다. 이 때 스마트 컨트랙트의 함수 유형에 따라서 내부적으로 두 가지의 방법으로 동작하게 됩니다.5.3.1. Contract의 정보를 읽어오는 함수Contract의 state를 변경하지 않고 단순히 읽어오는 함수의 경우에는 내부적으로 트랜잭션이 발생되지 않습니다. 여기서는 KIP-7 토큰 컨트랙트의 메타데이터인 name을 리턴하는 함수로 설명합니다.caver-js를 사용하여 name함수를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 컨트랙트의 이름 얻어오기 - caver-jsconst name = await kip7.name()caver-java를 사용하여 name함수를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 컨트랙트의 이름 얻어오기 - caver-javaString name = kip7.name();위와 같이 간단하게 kip7의 name 메소드를 호출하면 실제 KIP-7 토큰 컨트랙트의 name을 읽어올 수 있습니다.5.3.2. Contract의 상태를 변경하는 함수Contract의 state를 변경하는 함수의 경우 사용자는 동일하게 KIP7의 메소드를 호출하는 방식으로 실행할 수 있습니다. 하지만 Contract의 state를 변경하기 위한 트랜잭션을 네트워크에 전송해야하기 때문에 내부적으로는 좀 더 복잡한 절차가 실행됩니다. 사용자가 메소드를 호출하면 전달 받은 파라미터로 SmartContractExecution 트랜잭션을 생성하고, 이를 in-memory wallet에 저장된 keyring을 사용하여 서명한 뒤에 Klaytn 네트워크로 전송합니다.아래에서는토큰을 전송하는 transfer라는 함수를 예로 들어 설명합니다.caver-js로 transfer를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 전송 - caver-jsconst opts = { from: keyring.address }const to = '0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d'const value = 1const receipt = await kip7.transfer(to, value, opts)caver-java로 transfer를 호출하는 방법은 아래와 같습니다.// KIP-7 토큰 전송 - caver-javaSendOptions opts = new SendOptions();opts.setFrom(keyring.getAddress());String to = "0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d"BigInteger value = BigInteger.ONETransactionReceipt.TransactionReceiptData r = kip7.transfer(to, value, opts);caver-js, caver-java 모두 동일하게 마지막 파라미터로는 트랜잭션을 생성할 때에 필요한 정보를 전달해 주어야 합니다. kip7.transfer는 내부적으로 opts.from을 사용하여 SmartContractExecution 트랜잭션의 송신자(sender)를 설정합니다. 트랜잭션 처리가 완료되면 처리 결과가 담겨 있는 receipt이 리턴됩니다.6. 글을 마치며이 포스팅에서는 Common Architecture에 대한 정의, 도입 동기, 사용 예제들을 설명했습니다. Common Architecture를 도입하면서 언어 별로 제공되는 Caver의 사용성이 비슷해졌기 때문에 caver-js 혹은 caver-java를 사용하시는 데에 익숙하신 분들이라면 쉽게 다른 언어의 Caver도 사용할 수 있을 것이라고 기대합니다.아래에는 예제에서 사용된 전체 코드입니다. 아래 코드를 활용하시어 caver의 common architecture를 경험해보시기 바라며, 이 포스팅을 마치겠습니다. 감사합니다.// KLAY 전송하기 - caver-jsconst keystore = fs.readFileSync('keystore.json', 'utf8')const keyring = caver.wallet.keyring.decrypt(keystore, 'password')caver.wallet.add(keyring)const vt = new caver.transaction.valueTransfer({ from: keyring.address, to: '0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d', value: 1, gas: 25000,})await caver.wallet.sign(keyring.address, vt)const result = await caver.rpc.klay.sendRawTransaction(vt)// KLAY 전송하기 - caver-javaFile file = new File('./keystore.json');ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, "password");caver.wallet.add(keyring);ValueTransfer vt = new ValueTransfer.Builder().setKlaytnCall(caver.rpc.klay) .setFrom(keyring.getAddress()) .setTo('0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d') .setValue(BigInteger.ONE) .setGas(BigInteger.valueOf(25000)) .build();caver.wallet.sign(keyring.getAddress(), vt);Bytes32 hash = caver.rpc.klay.sendRawTransaction(vt).send();// 나만의 토큰 만들기 - caver-jsconst keystore = fs.readFileSync('keystore.json', 'utf8')const keyring = caver.wallet.keyring.decrypt(keystore, 'password')caver.wallet.add(keyring)const initialSupply = new BigNumber('1000000000000000000')const params = { name: 'TestToken', symbol: 'TTK', decimals: 18, initialSupply }const kip7 = await caver.kct.kip7.deploy(params, keyring.address)const name = await kip7.name()const opts = { from: keyring.address }const to = '0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d'const value = 1const receipt = await kip7.transfer(to, value, opts)// 나만의 토큰 만들기 - caver-javaFile file = new File('./keystore.json');ObjectMapper objectMapper = ObjectMapperFactory.getObjectMapper();KeyStore keystore = objectMapper.readValue(file, KeyStore.class);AbstractKeyring keyring = KeyringFactory.decrypt(keystore, "password");caver.wallet.add(keyring);BigInteger initialSupply = new BigInteger("1000000000000000000");KIPDeployParams params = new KIP7DeployParams("TestToken", "TTK", 18, initialSupply);KIP7 kip7 = KIP7.deploy(caver, params, keyring.getAddress());String name = kip7.name();SendOptions opts = new SendOptions();opts.setFrom(keyring.getAddress());String to = "0x5b9e34df6b9bf6ced39c02874e041ffd4bef851d"BigInteger value = BigInteger.ONETransactionReceipt.TransactionReceiptData r = kip7.transfer(to, value, opts);Common Architecture of Caver was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 11. 10

Klaytn Improvement Reserve ...

We are officially launching Klaytn Improvement Reserve (KIR).KIR is a KLAY reward system allocated for individuals, teams, or companies committed to maintaining a sustainable Klaytn ecosystem growth. Interested applicants can submit proposals that can support Klaytn infrastructure support, developer experience enhancement, or community building initiatives.Ever since the first announcement of a pilot run of Klaytn Improvement Reserve, we have reviewed four qualified projects and their proposals. As earlier noticed, the first recipient Ozys added new features to Klaytnscope, the block explorer that monitors block activities on the Klaytn platform, which was released on June 29th.Klaytn’s fee delegation policy is also a KIR proposal. Klaytn pays for all transaction fees on behalf of our partner developers and service providers that run applications on Klaytn. This way, developers would be able to deploy or execute smart contracts at no cost.The third project is submitted by Quantstamp, who is building a Real Time Security Monitoring Solution (RT-Monitor) to detect any abnormal transactions for the Klaytn blockchain. Monitored alert types includes token overflow detection, token mints and burns, and token ownership changes.A local tech company S2WLAB also submitted a proposal for a Klaytn on-chain analysis framework called S2_EYEZ, which provides a well-structured development environment for implementing a wide range of on-chain analysis applications. It supports high-performance financial transaction analysis as well as implementation transparency by providing development libraries, sample applications, and benchmark results.We look for any interested projects, teams, and entities that can benefit the larger Klaytn ecosystem, such as building or operating developer tools, infrastructure, educational materials, community building, you name it. You can submit your proposal to the official KIR Forum. Once submitted, Klaytn will do an initial screening and review, and every single Klaytn Governance Council member will each cast a ballot to decide whether or not the project can qualify. The whole review process will be available through the forum.We look for projects that can accelerate the success and growth of the larger Klaytn ecosystem. For more information, visit the official KIR Forum at https://kir.klaytn.com.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and a friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn Official Community]https://medium.com/klaytnhttps://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/Klaytn Improvement Reserve Forum is now open for submissions. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 11. 04

[Notice] Release of KAS SDK...

Today, we are excited to announce that the Software Development Kits(SDKs) of Klaytn API Service(KAS) have just been released. caver-js-ext-kas and caver-java-ext-kas are the extensions of caver-js and caver-java(Klaytn SDKs) and they are designed to offer both Klaytn JavaScript/Java SDK and KAS JavaScript/Java SDK through a single library kit.caver-js-ext-kas and caver-java-ext-kas provide the functions of caver as they are and also the following features of KAS together.`caver.kas.tokenHistory` for KAS Token History APIToken History API is an API to obtain transfer histories of KLAY, FT (KIP-7 and ERC-20), and NFT (KIP-17 and ERC-721). For more information, please refer to https://refs.klaytnapi.com/en/th/latest.After setting authorization through `caver.initTokenHistoryAPI`, you can use features of Token History API with `caver.kas.tokenHistory`.`caver.kas.wallet` for KAS Wallet APIWallet API is an API to create Klaytn accounts and sign transactions with the accounts. For more information, please refer to https://refs.klaytnapi.com/en/wallet/latest.After setting authorization through `caver.initWalletAPI`, you can use features of Wallet API with `caver.kas.wallet`.`caver.kas.anchor` for KAS Anchor APIAnchor API is an API to push data of Klaytn service chain or other blockchain platforms to Baobab or Cypress. For more information, please refer to https://refs.klaytnapi.com/en/anchor/latest.After setting authorization through `caver.initAnchorAPI`, you can use features of Anchor API with `caver.kas.anchor`.Note that KAS Klaytn Node API provides APIs EN (Endpoint Node) serves thereby you can use caver-js/caver-java with an authorization header. Using Klaytn Node API, you can easily access Baobab/Cypress without your operating your own EN. To find out how to use Klaytn Node API, Please refer to https://console.klaytnapi.com/service/node.For detailed information about caver-js-ext-kas, please refer to https://github.com/ground-x/caver-js-ext-kas/releases/tag/v1.0.0.For detailed information about caver-java-ext-kas, please refer to https://github.com/ground-x/caver-java-ext-kas/releases/tag/v1.0.0.You can download the caver-js-ext-kas from https://www.npmjs.com/package/caver-js-ext-kas/v/1.0.0.You can see the dependency of caver-java-ext-kas package from https://bintray.com/gx-devops/maven/caver-java-ext-kas[Notice] Release of KAS SDK(caver-js-ext-kas, caver-java-ext-kas) v1.0.0 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 10. 15

[공지] KAS SDK(caver-js-ext-k...

Klaytn API Service(KAS) Software Development Kits(SDKs)인 caver-js-ext-kas v1.0.0과 caver-java-ext-kas v1.0.0이 릴리즈되었습니다.caver-js-ext-kas와 caver-java-ext-kas는 caver-js/caver-java의 확장 라이브러리로 Klaytn의 JavaScript/Java SDK인 caver-js/caver-java 기능과 KAS JavaScript/Java SDK 기능을 함께 제공합니다.caver-js-ext-kas와 caver-java-ext-kas를 이용하시면 기존 Klaytn SDK 기능을 그대로 사용하면서 아래의 KAS의 API들을 추가적으로 사용할 수 있습니다.KAS의 Token History API를 사용할 수 있는 `caver.kas.tokenHistory`Token History API는 KLAY, FT (KIP-7, ERC-20), NFT (KIP-17, ERC-721)의 전송내역을 조회할 수 있는 API입니다. Token History API에 대한 자세한 설명은 https://refs.klaytnapi.com/ko/th/latest 를 참고하시기 바랍니다.`caver.initTokenHistoryAPI` 함수를 사용하여 Token History API를 사용하기 위한 권한을 설정한 후, `caver.kas.tokenHistory`를 통해 Token History API에서 제공하는 기능들을 사용할 수 있습니다.KAS의 Wallet API를 사용할 수 있는 `caver.kas.wallet`Wallet API는 Klaytn의 계정을 생성하고 트랜잭션 서명 기능을 제공하는 API입니다. Wallet API에 대한 자세한 설명은 https://refs.klaytnapi.com/ko/wallet/latest 를 참고하시기 바랍니다.`caver.initWalletAPI` 함수를 사용하여 Wallet API를 사용하기 위한 권한을 설정한 후, `caver.kas.wallet`을 통해 Wallet API에서 제공하는 기능들을 사용할 수 있습니다.KAS의 Anchor API를 사용할 수 있는 `caver.kas.anchor`Anchor API는 Klaytn 서비스 체인 혹은 다른 블록체인 플랫폼의 데이터를 Baobab이나 Cypress에 기록할 수 있는 API 입니다. Anchor API에 대한 자세한 설명은 https://refs.klaytnapi.com/ko/anchor/latest 를 참고하시기 바랍니다.`caver.initAnchorAPI` 함수를 사용하여 Anchor API를 사용하기 위한 권한을 설정한 후, `caver.kas.anchor`를 통해 Anchor API에서 제공하는 기능들을 사용할 수 있습니다.추가적으로, KAS의 Klaytn Node API는 EN(Endpoint Node)이 제공하는 API를 그대로 제공하기 때문에, caver-js/caver-java에 authorization header만 붙여 사용할 수 있습니다. Klaytn Node API를 이용하면 별도의 EN을 운영할 필요없이 Baobab/Cypress에 손쉽게 접근할 수 있습니다. 자세한 사용 방법은 https://console.klaytnapi.com/service/node 에서 확인하실 수 있습니다.caver-js-ext-kas에 대한 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-js-ext-kas/releases/tag/v1.0.0caver-java-ext-kas에 대한 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/ground-x/caver-java-ext-kas/releases/tag/v1.0.0caver-js-ext-kas 다운로드는 다음 링크를 통해 가능합니다.https://www.npmjs.com/package/caver-js-ext-kas/v/1.0.0caver-java-ext-kas 패키지 의존성 설정은 다음 링크에서 확인하실 수 있습니다.https://bintray.com/gx-devops/maven/caver-java-ext-kas[공지] KAS SDK(caver-js-ext-kas, caver-java-ext-kas) v1.0.0 릴리즈 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 10. 15

Klaytn Governance Council: ...

We are excited to announce that MakerDAO is joining the Klaytn Governance Council.MakerDAO is a decentralized organization dedicated to bringing financial stability and transparency to the world economy. MakerDAO enables the generation of Dai, the world’s first unbiased currency and leading decentralized stablecoin. Dai mitigates volatility through an autonomous system of smart contracts called the Maker Protocol, as well as through decentralized community governance.For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn Official Community]https://medium.com/klaytnhttps://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and a friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.Klaytn Governance Council: MakerDAO was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 10. 15

Ground X Launches Global Bl...

We officially launched our global Blockchain-as-a-Service, KAS to empower enterprises and developers to easily build and operate blockchain services. KAS, short for Klaytn API Service, is the Blockchain-as-a-Service to utilize Klaytn, the public blockchain platform developed by Ground X. KAS provides a set of Application Programming Interfaces that streamline the process of building and operating blockchain applications in a cloud environment. Developers can use the Klaytn network without installing a separate node. They can also reduce development cost and period.Ground X’s BaaS features the following APIs:Klaytn Node API that can store and browse blockchain data in the Klaytn network without installing the Klaytn Endpoint NodeToken History API that handily browses and confirms token information and transaction detailsWallet API that can easily implement a blockchain wallet to manage accounts, transactions, and personal keys, with the help of Ground X’s uniquely developed Key Management SystemAnchor API that improves data stability and transparency by regularly saving private blockchain data on the Klaytn mainnet.Aimed at speeding and simplifying enterprises’ journey to using Klaytn, KAS can be utilized across all industries, catering to a wide range of audiences, from micro startups to enterprise divisions. With KAS, developers can build applications that can meet the needs of various sectors including finance, security, games, and more.Further, customers can benefit from zero transaction fees, which are instead covered by us Klaytn on behalf of all developers and service providers that run applications on Klaytn. In this way, developers would be able to deploy or execute smart contracts at no cost.We also released its technical documentations. The newly updated KAS Docs and Klaytn Docs explain guides and tools with tutorials, with a mission to help developers easily use and adapt to Klaytn.KAS is available today, try it for free at https://klaytnapi.com. Thank you![About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and a friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn Official Community]https://medium.com/klaytnhttps://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/Ground X Launches Global Blockchain-as-a-Service to Simplify Blockchain Development was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 10. 05

[Notice] caver-java v1.5.1 ...

Announcing Caver-java v1.5.2 ReleaseWe are excited today that we are announcing the release of caver-java v1.5.2, a new version of Klaytn Java SDK. In caver-java v1.5.2, we prepared the following new features for you:We improved Contract class served in `caver.contract` package in caver-java. The overloaded functions that have the same number of input arguments are now executed straight based on the type of input arguments they receive.For detailed information about caver-java v1.5.2 itself, please refer to this page.For more information about the package dependency, please refer to this page.Announcing Caver-java v1.5.1 ReleaseWe are excited today that we are announcing the release of caver-java v1.5.1, a new version of Klaytn Java SDK. In caver-java v1.5.1, we prepared the following new features for you:`caver.contract` package as a part of Common ArchitectureYou can interact with a smart contract on Klaytn as it is a Java instance.`caver.abi` package as a part of Common ArchitectureYou can use `caver.abi` to read or write data in a smart contract deployed in Klaytn.`caver.kct` package as a part of Common ArchitectureYou now have `caver.kct` for deploying and executing KIP-7/KIP-17 smart contract on Klaytn.For more information about Common Architecture, please refer to our caver-java v1.5.0 release post.In caver-java v1.5.1, Klaytn SDK team brings about 2 cool features for you: Dynamic ABI (Application Binary Interface) Loader and the packages for interacting with a smart contract on the ground of Common Architecture, just adopted recently. You take Dynamic ABI Loader to load the ABI of a smart contract into a Java object and `caver.contract`/`caver.abi` packages to deploy and execute a contract without much effort.Dynamic ABI Loader?Seen as what it is read like, Dynamic ABI Loader is a module that “dynamically converts” the ABI of a smart contract, written in Solidity, into an instance of `Contract` class in `caver.contract` package in the run-time for the direct handling of a smart contract with a Java object. caver-java v1.4.x required you to convert a smart contract ABI (obtained after compiling that contract) into Java class via Java console. But, Dynamic ABI Loader added in caver-java v1.5.1 saves your precious time and lets you handle a smart contract in Java development environment without a bothersome process by automatically converting this ABI and injecting all information about this contract into `contract instance` of `caver.contract` package.For more information about how to handle packages for a smart contract in caver-java v1.5.1, please refer to this page.For detailed information about caver-java v1.5.1 itself, please refer to this page.For more information about the package dependency, please refer to this page.Stay tuned for more updates by signing up for our Medium and newsletter. Thank you![Notice] caver-java v1.5.1 and v1.5.2 Release was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 08. 20

[Notice] Klaytn v1.5.1 Rele...

[Notice] Klaytn v1.5.1 Release & Public EN UpdateWe announce that Klaytn v1.5.1 has just been released with the following changes:Fixed a bad block issueResolved a race condition of state trie dereference logic.Prevented dereference during commit and reference of the trie node cache.Klaytn v1.5.1 also supports the previous Klaytn versions. For more information, please refer to this link.Additionally, the Klaytn v1.5.1 update of Cypress/Baobab Public Endpoint Node (EN) will be followed up in:10~11 AM (GMT +10), August 20, 2020.Please be cautious that Public EN could be unstable during this update. You can update your EN away from this Public EN update.Stay tuned for more updates by signing up for our Medium and newsletter. Thank you![공지] Klaytn v1.5.1 릴리즈 및 Public EN 업데이트Klaytn v1.5.1이 다음 변경 사항을 포함해 릴리즈되었습니다.- State Trie의 Race Condition을 해결하여 Bad Block 발생을 방지이번 Klaytn v1.5.1은 기존 Klaytn 버전과 호환됩니다. 더 자세한 내용은 다음 링크에서 확인하십시오.Cypress/Baobab Public EN의 Klaytn v1.5.1 업데이트는 아래 일정으로 진행됩니다.2020년 8월 20일 오전 10~11시업데이트를 진행할 때 Public EN이 불안정할 수 있음을 참고하시기 바랍니다. 사용하시는 EN의 업데이트는 본 Public EN 업데이트와 무관하게 진행하실 수 있습니다.클레이튼 관련 업데이트는 미디엄과 뉴스레터를 통해 가장 먼저 확인하실 수 있습니다. 많은 관심 부탁드립니다.[Notice] Klaytn v1.5.1 Release & Public EN Update was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 08. 13

Klaytn v1.5.0 State Migrati...

이 포스팅은 Klaytn v1.5.0의 새로운 기능인 State Migration을 소개합니다. State Migration은 Klaytn 블록체인 노드에서 특정 시점을 기준으로 과거 State Trie를 제거하고 새로운 State Trie만을 노드 스토리지에 저장함으로써 노드 스토리지 사용량을 최대 75% 절약하는 기능입니다.OverviewState Trie란?Klaytn은 모든 Account 정보를 트리 형태 자료 구조(Merkle Patricia Trie)에 저장합니다. 이 트리를 State Trie라고도 하며 트리는 Klaytn Node 스토리지에 저장됩니다.State Trie는 Klaytn 블록체인의 모든 블록마다 존재합니다. 즉, Klaytn의 블록 1개는 Account들의 정보를 저장하는 State Trie 1개를 가집니다.State Migration이란?State Migration이란 어떤 시점을 정하고 그 시점 블록에 있는 State Trie만을 남기고 그 이전 시점 블록들의 State Trie는 노드 스토리지에서 모두 삭제하는 기능입니다. 특정 시점에서 생성된 Block의 State Trie와 이후의 State Trie만 보관하면 EN (Endpoint Node)에는 EN 운영에 필요한 최신 체인 데이터만 남습니다. 따라서, State Migration을 하면 스토리지 공간을 크게 절약할 수 있습니다.State Migration은 아래 단계로 구성됩니다.1. Migration 블록을 결정어떤 블록의 State Trie를 EN 스토리지에 남겨둘지 정합니다. State Trie를 백업하고 싶은 시점과 그 시점의 블록을 결정하는 작업입니다.<그림 1. Klaytn 블록체인 각 블록과 State Trie ><그림 2. Migration 블록을 결정 >2. Migration 블록의 State Trie 복사 시작Migration 블록을 결정했다면 새로운 EN 스토리지를 생성합니다. Migration 블록의 State Trie는 기존 EN 스토리지에 저장되어 있습니다. 이 Migration 블록의 State Trie를 순회하면서 State Trie를 새로운 EN 스토리지로 복사합니다.참고: 이 Migration 블록의 State Trie를 복사하는 동안 새로운 블록은 계속해서 블록체인에 추가됩니다.<그림 3. Migration 블록을 결정 >3. 복사된 State Trie 검증Migration 블록의 모든 State Trie를 새로운 스토리지에 복사했다면 모든 데이터가 제대로 복사되었는지 검증합니다.4. 기존 EN 스토리지 삭제 및 새로운 EN 스토리지에 기록 시작검증이 끝나면 기존 EN 스토리지를 삭제하고 새로운 EN 스토리지에 Migration 블록의 다음 블록부터 State Trie를 저장합니다.<그림 3. Migration 블록을 결정 >권장 사양State Migration 기능을 사용하려면 AWS를 기준으로 최소 m5.4xlarge 이상의 instance가 필요하며 State Migration을 완료하려면 평균적으로 약 50시간이 걸립니다(Klaytn 메인 체인인 Cypress 기준). 이는 최신 블록을 PN (Proxy Node)로부터 받아 이 블록의 트랜잭션을 처리하는 동시에 이 특정 Block의 State Trie를 순회하며 이들을 EN 스토리지에 복사하고 State Trie의 모든 내용이 정확하게 복사되었는지 확인하는 데 걸리는 시간입니다(m5.8xlarge에서는 약 30시간 소요).준비 사항State Migration을 수행하려면 Klaytn을 1.5.0으로 업데이트해야 합니다. Klaytn을 업데이트하기 위해 Klaytn 1.5.0 바이너리를 다운받은 후 기존 EN을 중지하고 1.4.x 바이너리를 1.5.0 바이너리로 교체한 후에 Klaytn을 다시 설치하십시오. Klaytn을 업데이트하는 과정은 사용자 환경에 따라 달라질 수 있습니다. 자세한 내용은 EN 설치 가이드를 확인하십시오.State Migration 시작하기State Migration 실행하기State Migration을 실행하려면 Klaytn API에서 Admin API를 사용해야 합니다. Klaytn에 IPC로 접속하거나 RPC/WS에서 admin API를 임시로 활성화하여 접속합니다. Klaytn 접속 및 Admin API 사용에 관한 자세한 내용은 링크1, 링크2를 확인하십시오.> ken attach ~/datadir/ken.ipcWelcome to the Klaytn JavaScript console!instance: Klaytn/v1.5.0+94c52174fe/linux-amd64/go1.14.1datadir: /data/kend/datamodules: admin:1.0 debug:1.0 governance:1.0 istanbul:1.0 klay:1.0 net:1.0 personal:1.0 rpc:1.0 txpool:1.0 web3:1.0> admin.startStateMigration()nullState Migration을 성공적으로 시작했다면 코드블록admin.startStateMigration()은 null을 반환합니다. State Migration을 시작하면 EN은 블록체인에 추가될 블록들에 담긴 트랜잭션들을 처리하면서, Migration 블록의 State Trie를 순회하며 이를 새로운 EN 스토리지에 복사합니다.State Migration 시작 로그INFO[07/20,20:44:35 +09] [5] State migration is prepared expectedMigrationStartingBlockNumber=29911450…INFO[07/20,20:55:51 +09] [5] State migration is started block=29911450 root=06b082d~60b893INFO[07/20,20:56:06 +09] [44] Add a new stakingInfo to stakingInfoCache and stakingInfoDB blockNum=29894400INFO[07/20,20:56:06 +09] [46] Start setting a new database for state trie migration blockNum=29911450INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/0 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/1 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/2 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] LevelDB configurations path=/data/kend/data/klay/chaindata/statetrie_migrated_29911450/3 levelDBCacheSize=36 openFilesLimit=97 useBufferPool=true compressionType=none compactionTableSize(MB)=2 compactionTableSizeMultiplier=1.000INFO[07/20,20:56:06 +09] [46] Created a new database for state trie migration newStateTrieDB=/data/kend/data/klay/chaindata/statetrie_migrated_29911450State Migration 모니터링State Migration 진행 상태를 로그로 확인하기State Migration을 진행 시 아래와 같이 주기적으로 상태 로그를 확인할 수 있습니다.10초 주기로 출력되는 진행 상태 로그INFO[07/20,20:56:28 +09] [5] State migration progress progress=0% totalRead=2321 totalCommitted=0 pending=37134 read=2321 readElapsed=22.184223002s processElapsed=33.163185ms written=0 writeElapsed=17.257µs elapsed=22.217s totalElapsed=22.21783843s…INFO[07/21,08:44:33 +09] [5] State migration progress progress=64.917% totalRead=106657041 totalCommitted=106654913 pending=13469 read=19456 readElapsed=11h36m47.910769711s processElapsed=5m7.371806884s written=19717 writeElapsed=5m25.733869118s elapsed=10.147s totalElapsed=11h48m26.757580868sState Migration 진행 상태를 RPC API로 확인하기또 아래와 같이 RPC API로 현재 State Migration 진행 상태를 확인할 수 있습니다. 아래 코드는 State Trie 복사가 약 64% 완료되었음을 나타냅니다.> admin.stateMigrationStatus{committed: 106743172,err: "null",isMigration: true,migrationBlockNumber: 29911450,pending: 12036,progress: 64.9169921875,read: 106745105}복사한 State Trie 검증하기State Trie를 복사하면 아래와 같은 로그가 출력됩니다. 이제, State Trie의 모든 내용이 빠짐없이 복사되었는지 검증하는 작업을 진행합니다.검증 진행 상태는 아래와 같은 로그를 통해 파악할 수 있습니다.검증 진행 상태 로그INFO[07/23,11:11:22 +09] [5] State migration progress progress=100% totalRead=368572444 totalCommitted=368572444 pending=0 read=5374 readElapsed=61h36m58.773140567s processElapsed=17m45.115580174s written=6488 writeElapsed=16m36.198342833s elapsed=4.207s totalElapsed=62h15m15.550216445sINFO[07/23,11:11:22 +09] [5] State migration : Copy is done totalRead=368572444 totalCommitted=368572444 totalElapsed=62h15m15.550264864s committed per second=1644.564INFO[07/23,11:11:22 +09] [6] CheckStateConsistencyParallel is started root=0x06b082dd3a077dee8fa7d0016ea9e96f64d8d40f3332ecff44c779b35f60b893 len(children)=16INFO[07/23,11:11:32 +09] [6] CheckStateConsistencyParallel progress cnt=35793...State Migration 종료State Migration 종료 로그 확인하기State Trie 검증이 완료되면 State Migration이 종료됩니다. 아래와 같은 로그가 출력되면 State Migration이 정상 종료된 것입니다.State Migration 종료 로그INFO[07/25,09:20:12 +09] [6] CheckStateConsistencyParallel is done cnt=649698856 err=nilINFO[07/25,09:20:12 +09] [5] State migration is completed copyElapsed=62h15m15.550264864s checkElapsed=46h8m50.500767758s결과 확인: 체인 데이터가 차지하는 스토리지 용량 변화 확인Klaytn 메인 체인인 Cypress의 체인 데이터 용량은 아래와 같습니다.> du -d1 -h651G ./statetrie56G ./body2.7G ./misc240K ./bridgeservice60G ./header6.5G ./txlookup40G ./receipts815G .새로운 EN을 부팅한 후, 이 EN에서 Cypress를 대상으로 State Migration을 실행하면 이 EN에 저장되는 Cypress 체인 데이터 용량은 아래와 같이 줄어듭니다.> du -d1 -h129G ./statetrie_migrated_2991145061G ./body3.0G ./misc240K ./bridgeservice69G ./header7.3G ./txlookup47G ./receipts315G .(State Trie외에 다른 항목에서 용량이 증가한 것은 Migration을 진행하는 동시에 새로운 블록이 생성됨에 따라 증가한 것입니다.)State Migration 실행 시 주의사항State Migration시 주의해야 할 부분들은 아래와 같습니다:Migration 이후에는 이전의 state trie가 삭제됨으로 이전 시점의 account의 상태는 조회가 불가능 합니다.Migration 진행 중에 노드를 재시작하지 마십시오. 노드를 재시작하면 State Migration도 처음부터 다시 진행되어 소요 시간이 늘어납니다.낮은 성능의 Instance에서 State Migration을 실행하면 소요 시간이 매우 늘어날 수 있습니다.(최소 m5.4xlarge 스펙을 권장합니다.)HDD가 아니라 반드시 IOPS 3000이상의 SSD를 사용해야 합니다.(Klaytn은 잦은 IO로 인해 IOPS 요건을 만족해야만 합니다.)결론위와 같이, State Migration을 완료하면 Klaytn EN에 체인 데이터를 저장하는 데 필요한 스토리지 용량을 크게 줄일 수 있습니다. 물론, 이러한 State Migration을 EN 운영자가 일일이 수행하는 것은 운영자 입장에게 부담일 수 있습니다. 그래서, Klaytn Team은 곧 Cypress의 최신 체인 데이터를 Migration하여 공개할 예정입니다.이 공개 데이터를 사용하면, EN 운영자는 State Trie를 직접 복사하고 검증하지 않고도 Cypress의 최신 체인 데이터를 자신의 EN으로 곧바로 Migration할 수 있습니다. Klaytn Team은 언제나 여러분이 Klaytn을 좀 더 빠르고 편리하게 활용할 수 있는 기능을 개발하고자 노력합니다.다음 소식을 기다려주세요~! 감사합니다.Klaytn v1.5.0 State Migration: 노드 스토리지 절약하기 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 08. 04

Klaytn Governance Council: ...

We are excited to announce that global financial technology leader Worldpay from FIS is joining the Klaytn Governance Council.Worldpay will work with the council to develop a blockchain-based omnichannel distribution hub to service global credit and debit card processing for Klaytn and its ecosystem partners including exchanges, traders and custodians.For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn Official Community]https://medium.com/klaytnhttps://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and a friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.Klaytn Governance Council: Worldpay was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 08. 03

클레이튼 런칭 1주년 회고

2019년 6월 24일 클레이튼은 첫번째 블록인 Genesis Block을 찍으면서 블록체인 세상의 항해를 시작했습니다. 그로부터 1년이 지난 지금, 클레이튼은 다양한 경험과 변화를 겪으며 점점 더 탄탄해 지고 있습니다. 그럴 수 있었던 것은 클레이튼을 지지하고 물심양면으로 도움주고 참여해 주신 사용자, 개발자, 파트너, 투자사, 미디어, 관계사 등 여러분 덕분이라 생각합니다. 진심으로 감사드립니다. 이번 글에서는 클레이튼 1년의 항해를 회고하고 앞으로의 다짐을 간단히 공유하고자 합니다.먼저 클레이튼 1년을 숫자로 보자면 (2020년 7월 12일 기준)블록 생성 개수: 32,952,516EOA (주소) 생성 개수: 9,635,000평균 일간 트랜잭션 개수: 253,719 (2020년 6/29–7/12 2주 평균)장애 발생 건수: 1온보딩된 서비스수: 54개 (Dapp.com & STOD 기준)컨센서스 노드수: 28개 (1년전 런칭때 19개에서 9개 증가)보다 상세한 숫자는 Xangle 참고# 글로벌 스케일의 최대 규모 BFT 블록체인 네트워크 운영클레이튼은 설계 때 부터 1초 이내 블록을 생성하는 강력한 요구사항을 만족시키기 위해 PBFT를 합의 알고리즘으로 채택했습니다. 하지만 PBFT + 1초 블록 생성 타임 + 글로벌 노드라는 세 가지 조합은 상당한 기술적인 도전이었습니다. 특히, 글로벌하게 퍼져 있는 합의 노드들 사이 네트워크 지연을 1초 내로 보장하는건 꽤 힘든 일이었습니다. 다행히도 지금까지 1초의 블록 생성 타임을 지키면서 3천만개가 넘는 블록을 만들어 내면서 글로벌 스케일의 PBFT 네트워크가 안정적으로 동작할 수 있다는 것을 증명했습니다.물론 아쉬운 점도 있습니다. 클레이튼 기반의 서비스가 아직 많지 않은 상태라 트랜잭션 수가 클레이튼의 한계를 시험하기엔 부족한게 아쉽습니다. (4,000 TPS까지 수용 가능하지만, 현재는 3~4 TPS 수준) 그리고 PBFT를 글로벌 규모에서 장시간 운영하다보니, 일어날 확률이 낮은 합의 지연이 발생하여 블록 생성이 약 13시간 동안 지체되는 장애가 났습니다. 낮은 확률이라도 미처 고려하지 못한 저희 실책을 인정하며, 재발 방지를 위해 지연 시간을 최소화하는 방안을 적용하고 합의 알고리즘을 개선했습니다. 장애 사건을 통해 기술적으로 자만하지 않는 자세를 가지게 되었으며, 클레이튼을 공동 운영 중인 글로벌 기업들과 소통을 강화하게 된 계기가 되었습니다.# 클레이튼 기반 블록체인 어플리케이션 성과2018년부터 국내외 유망 블록체인 회사들을 접촉하면서 초기 서비스 파트너쉽(ISP)을 맺으며, 클레이튼 런칭 후 온보딩할 것에 대한 협력을 약속했습니다. 덕분에 작년에 클레이튼이 런칭된 후 빠르게 유의미한 서비스들이 올라오면서 거의 제로에 가깝던 트랜잭션 수를 일당 10만개 이상 기록하게 되었습니다. 현재는 ISP가 아니더라도 누구나 블록체인 서비스를 실행할 수 있기 때문에 저희 파트너쉽과 상관없이 자유롭게 서비스가 늘어나고 있습니다. 다른 플랫폼에는 주로 겜블링이나 거래소 등이 주로 상위권에 올라와 있다면, 클레이튼은 실생활 서비스에 초점을 맞추다보니, 소셜이나 Other(기존 분류 이외)로 분류된 서비스들이 대다수를 차지하고 있다는 점이 흥미롭습니다. (Dapp.com 참고)하지만, 블록체인 산업이 한동안 조정기를 겪으면서 블록체인 서비스들이 전반적으로 어려워졌습니다. ISP들 중에도 블록체인 사업을 접은 곳도 있고, 사업 속도를 늦춘 곳들도 있습니다. 안타까운 현실이고, 클레이튼이 좀 더 적극적으로 도와드리지 못해 죄송한 마음입니다. 하지만, 이 과정을 통해 서비스 본질에 대해 성찰할 수 있는 기회가 되고, 블록체인의 진짜 가치와 적용 방법에 대해 깊이 고민할 수 있는 계기가 될거라 생각합니다. 그런 관점에서 클레이튼은 앞으로 나올 서비스들이 더욱 기대되며, 그들이 잘 뛰어 놀 수 있는 플레이그라운드를 만들기 위해 노력하겠습니다.좀 더 쉽게 클레이튼 기반 블록체인 서비스를 만들 수 있도록 KAS(Klaytn API Service)를 개발하고 있습니다. 블록체인을 잘 모르더라도 KAS에서 제공하는 다양한 기능들을 통해 블록체인 기술을 쉽게 사용할 수 있습니다. 현재 제한된 파트너 대상으로 클로즈 베타 테스트를 시행하고 있고 하반기에는 정식으로 오픈해서 블록체인 진입장벽을 낮춰 줄 것으로 기대합니다.# 프라이빗 블록체인 솔루션으로 클레이튼 서비스체인 제공클레이튼 메인넷 런칭과 동시에 동일한 코드 기반의 서비스체인을 제공했습니다. 프라이빗 이더리움과 같이 메인넷의 프라이빗 블록체인 솔루션입니다. 대기업의 경우 퍼블릭 블록체인의 투명성을 수용하기 어려운 케이스가 있어서, 프라이빗 블록체인 구축에 대한 니즈가 있었습니다. 클레이튼은 단순히 프라이빗 솔루션만 제공하는게 아니라, 퍼블릭 메인넷과 연동하여 신뢰도를 높여주는 데이터 앵커링과 체인간 자산이동을 지원합니다. 이로써 프라이빗 솔루션을 사용함에도 퍼블릭 블록체인의 장점을 일부 흡수할 수 있게 되는거죠. 요즘은 타 프라이빗 블록체인을 사용하면서 클레이튼 메인넷에 데이터 앵커링을 하려는 요청들이 늘어나고 있습니다.클레이튼 서비스체인을 통해 구축된 대표적인 사례가 카카오의 리워드 프로그램인 카카오콘입니다. 카카오 내에서 계정 통합, 메일 계정 생성, 아티스트 응원보드 등의 서비스에 이용되고 있습니다. 데이터 앵커링을 통해 주기적으로 메인넷에 데이터 지문을 찍고 있어 데이터 무결성을 보장합니다. 또 다른 사례로 게임에 특화된 블록체인 플랫폼인 위믹스 네트워크가 있습니다. 클레이튼 서비스체인을 활용하여 블록체인 확장성 이슈를 풀고 상호운용성을 제공합니다. 클레이튼 서비스체인은 오픈소스로 누구나 무료로 가져다 사용할 수 있기 때문에 더 많은 기업들 적용사례가 나올 수 있을 것으로 기대합니다. 또한, 하이퍼렛저 등 타 프라이빗 블록체인과 클레이튼 메인넷과의 연동 케이스도 보다 늘어날 것으로 전망합니다.# 클레이튼 생태계의 확장 — 에코 파트너와 데브툴 파트너 확대클레이튼의 생태계를 풍성하게 하기 위해 에코 파트너 프로그램을 통해 지갑, 거래소, OTC, 앱포털 등과 파트너쉽을 추진하고, 클레이튼을 연동하는 작업을 했습니다. 덕분에 20여개에 가까운 에코 파트너가 클레이튼 생태계에 참여하고 있지만, 아직 부족한게 사실입니다. 앞으로 다양한 방면의 에코 파트너를 추가로 확대해 나갈 예정이며, 관심있는 곳들의 참여를 부탁드립니다.특히, 올해부터는 클레이튼 인프라 개발을 함께하는 데브툴(DevTools) 파트너를 확보했으며 하반기에는 더욱 확대할 계획입니다. 대표적으로 오지스(Ozys)에서 Klaytnscope의 개선을 주도하여 최근 리뉴얼 버전을 오픈했습니다. 이번 협업은 오지스가 KIR(Klaytn Improvement Reserve) 프로그램에 개발 제안서를 제출하고 GC들의 승인을 받아 재무적인 지원을 받고 이루어졌다는 점에서 생태계 참여의 좋은 케이스라고 할 수 있습니다. 앞으로 더욱 많은 개발사들과 유사한 방식의 협업 모델을 확대해 나갈 예정입니다.그리고 올해부터 타 메인넷 프로젝트들과 브릿지(인터체인)를 연결하는 논의와 작업을 시작했습니다. 첫 케이스로 글로벌 스테이블코인을 개발하고 있는 셀로(celo) 네트워크와 클레이튼간 상호운용성을 위한 논의를 시작했고, 클레이(KLAY)와 셀로 스테이블코인간 자산의 원할한 활용과 운용을 계획하고 있습니다. 이외에도 다른 메인넷 프로젝트들과도 협업 논의를 하면서 클레이튼의 활동범위를 확대해 나갈 예정입니다.# 클레이튼 거버넌스 실험 진행 중클레이튼은 평판이 있는 믿을만한 국내외 기업들이 컨센서스 노드를 직접 운영하는 컨소시엄 형태로 구성되어 있습니다. 작년 런칭 당시만해도 19개 노드로 시작했는데, 지금은 28개로 늘어 났고, 현재 2개 정도가 더 추가될 예정입니다. 이런 기업들이 거버넌스 카운실(Governance Council, GC)을 구성하며 향후 클레이튼에 관한 중요한 의사결정에 참여할 것입니다. 하지만, 솔직히 아직은 GC들에 의한 거버넌스나 사업화는 부족한 점이 많습니다. GC 참여 기업들이 바쁜 것도 있고 저희가 여유가 부족한 것도 원인인 것 같습니다. 하지만, 하반기부터는 보다 적극적으로 GC와 함께 클레이튼 세상을 만들어보려 합니다.클레이튼 토큰 이코노미의 세 가지 축이 마이닝 리워드, KIR(Klaytn Improvement Reserve), PoC(Proof of Contribution)인데, 마이닝 리워드는 지금까지 문제없이 잘 운영되고 있고, KIR은 최근 3개 정도의 제안을 파일럿으로 운영하면서 하반기 정식으로 오픈할 예정입니다. PoC는 원래 계획했던 것보다는 클레이튼 기여의 범위를 확대해서 적용해 나가려 합니다. 블록체인 서비스가 풍부하지 않은 현 상황에서 필요 이상의 리워드 규모는 오히려 체리픽커를 양산할 가능성만 높일 수 있기에 조심스럽게 설계해서 하반기에 파일럿을 진행하고 이후 정식 실행하려 합니다.GC 기업들의 클레이튼 활용 케이스도 하나하나씩 만들어 가고 있습니다. 아직 공개할 수 없는 곳들도 있고 협의 중인 곳들도 있어 하반기에는 더 많은 협력 케이스를 볼 수 있을 것입니다.카카오: 카카오콘 리워드 서비스카카오페이: 페이 인증의 신뢰도를 높이기 위해 클레이튼 이용카카오게임즈: 클레이튼 NFT 활용하는 게임(크립토드래곤) 런칭FSN: 클레이튼 기반 이미지 저작권 보호 서비스(SNAP) 출시Wemade: 클레이튼 서비스체인 활용하여 위믹스 네트워크 런칭네오플라이: 클레이튼 기반 AR 게임(nBlockHunt) 런칭해시드/오지스: KLAY Staking 서비스 운영# 모두를 위한 클레이튼, Blockchain for All1년이라는 짧은 시간 동안 쉬지 않고 달려 왔습니다. 물론 외부에서 보기에는 아직 부족한 점도 많고 아쉬운 점도 많을 것입니다. 저희도 그런 심정이니까요. 하지만, 이것 하나는 확실히 말씀드릴 수 있습니다. 클레이튼 세상을 완성하기 위해 90여명의 그라운드X 모든 멤버가 땀과 열정을 쏟아 붓고 있습니다. 클레이튼의 커뮤니티 파워는 아직 약하지만, 그라운드X가 기업으로서 클레이튼을 책임감있게 리드해 나갈 것을 약속드립니다.하지만, 클레이튼이라는 글로벌 퍼블릭 블록체인 플랫폼은 그라운드X 혼자서 완성할 수 없습니다. 그라운드X의 책임감 있는 리드 하에 다양한 참여자의 역할을 확대해 나가겠습니다. 자발적인 커뮤니티가 형성될 수 있도록 도움을 드리고, GC가 좀 더 적극적으로 클레이튼 운영과 개선에 참여할 수 있도록 구조를 만들겠습니다. 특히, 클레이튼 개발에 외부에서 참여할 수 있는 기회를 확대하여 함께 만들어 가도록 하겠습니다.그리고 무엇보다, 클레이튼을 활용하는 서비스들이 풍부해 질 수 있게 전방위적으로 노력하겠습니다. 클립을 통해 클레이튼 위에서 다양한 디지털 자산이 발행/유통되도록 하며, 비블록체인 서비스들도 어려움 없이 블록체인의 장점을 이용할 수 있게 하겠습니다. 클레이튼에서 블록체인 서비스를 개발/운영하는 곳들을 위해 앞으로 1년 동안 들어가는 수수료(가스비)를 저희 그라운드X가 대신 내겠습니다. 부담없이 이용하시고 맘껏 아이디어를 펼치면서 블록체인이 바꿀 미래를 클레이튼과 함께 그려보시기 바랍니다.클레이튼 런칭 1주년 회고 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 20

Join us to help children in...

Hello all,Today, Ground X and an international NGO Good Neighbors have together launched the COVID-19 Prevention Good Water Project to raise KLAY-based donations for children in Zambia.This is part of Good Neighbor’s global Good Water Project, in which donations are collected from all over the world to provide children with access to clean and safe water.Ground X has opened up a Klaytn account (0x9173474C222123aC9543DeE64c0F8c09eb547668) to support this Project. Anyone who wishes to support this initiative can simply send KLAY to this account before the end of August 2020. The funds will then be delivered to Good Neighbors and will be used to fund the installation of water facilities and the provision of sanitation kits to children in Zambia. The entire fundraising process will be recorded directly on the Klaytn blockchain platform and will be available transparently.A compelling aspect of this project is the ease in which Klip users can participate with just a few clicks of their smartphones. There have been previous examples in which blockchain technology was applied to support charitable fundraising, yet the ease of usability in these cases was often regarded as problematic. However, thanks to Klip’s improved UX/UI, the user experience in regards to blockchain-related donations has greatly improved. Also, Klip does not charge any transaction fees to its users.In return for the donations, Good Neighbors will be publishing a set of special Non-Fungible Tokens (NFTs).* Please note that these NFTs will be given only to those who have donated through Klip.Ground X believes that by combining the transparency of blockchain technology with the usability of Klip, more people will be encouraged to contribute to this positive initiative. Ground X will continue to work with charitable organizations moving forward and hopes to make a positive social impact by leveraging blockchain technology.Thank you!안녕하세요,그라운드X가 국제구호개발 NGO 굿네이버스와 손잡고 아프리카 잠비아 지역 코로나19 취약 아동을 지원하는 ‘코로나19 예방 굿워터 프로젝트’를 실시합니다.이번 활동은 굿네이버스가 자체 진행 중인 ‘굿워터 프로젝트(Good Water Project)’의 일환으로 기획됐습니다. ‘굿워터 프로젝트’는 개발도상국의 식수 및 위생환경 개선의 필요성을 알리는 활동으로, 올해는 코로나19의 전 세계적인 확산으로 깨끗한 물의 중요성이 그 어느 때보다 높아졌지만, 실제적인 관심과 지원은 줄어든 상황입니다.굿네이버스와 ‘굿워터 프로젝트’의 취지에 공감한 그라운드X는 오늘부터 8월 31일까지 디지털 자산 지갑 서비스 ‘클립(Klip)’에서 기부금을 모금합니다. 카카오톡 모바일 앱 우측 하단의 ‘더보기’ 탭 내 ‘전체 서비스’ 메뉴를 통해 클립에 접속한 후, 메인 화면에 안내된 프로젝트 페이지에서 참여할 수 있습니다.기부는 클립의 대표 디지털 자산인 ‘클레이(KLAY)’로 가능합니다. 기부된 디지털 자산은 아프리카에서도 지원이 시급한 국가인 잠비아 아동의 코로나19 감염 예방을 위한 마스크 및 식수 지원 사업에 사용될 예정입니다.참여자에게는 굿네이버스에서 공식 발행한 기부 인증 카드가 ‘대체 불가능한 토큰(NFT)’의 형태로 지급됩니다. 이벤트 종료 시점까지의 누적 기부 수량에 따라 ▲ 굿 프렌드 카드 ▲ 굿 엔젤 카드 ▲ 굿 히어로 카드 등을 받을 수 있습니다. 모든 카드는 퍼블릭 블록체인 플랫폼 ‘클레이튼(Klaytn)’에 영구 저장되며, 원하는 시점에 언제든지 조회할 수 있습니다.아울러, 7월 19일까지 누적 30 클레이 이상을 기부한 선착순 100명에게는 굿네이버스가 주최하는 ‘제4회 STEP FOR WATER 희망걷기대회’ 초대 혜택을 추가 제공합니다.양사는 이번 캠페인의 모든 과정을 클레이튼 블록체인 플랫폼에 투명하게 기록합니다. 모금 현황은 클레이튼 블록체인 탐색기인 ‘클레이튼스코프(https://scope.klaytn.com/)’에서 누구든지 실시간으로 확인할 수 있습니다. 그라운드X는 블록체인 기술에 익숙하지 않은 참여자를 위해 모금 관련 주요 현황 정보를 프로젝트 페이지를 통해서도 실시간으로 제공합니다.많은 분들의 참여를 기다리겠습니다! 감사합니다.[About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem. For more information, visit https://groundx.xyz.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/Join us to help children in Zambia! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 16

1 year anniversary of our m...

Today we are proud and excited to mark a special moment in our history: the 1 year anniversary of Cypress mainnet launch!On June 27, 2019, we launched our mainnet, which combines the best features of both public (decentralized data & control, distributed governance) and private (low latency, high scalability) blockchains. With a mission to drive the mass blockchain adoption, Klaytn is committed to offering high performance, fast response time, and flexible scalability solutions that cater to a wide spectrum of engineering audience, from micro startups to large-scale enterprises.In celebration of our first anniversary, we are implementing a fee delegation policy, through which we would be paying for all transaction fees on behalf of our partner developers and service providers that run applications on Klaytn. The developers would be able to deploy or execute smart contracts at no cost. Further, any wallet services that support Klaytn’s KLAY and Klaytn-based tokens can also have their transaction fees covered by us so that the users can send or receive tokens at no cost.We will be running the fee delegation policy for the next 1 year. Current Klaytn partners are eligible first. After examining network and security issues, we plan to extend the policy for any interested developers or service providers seeking to use Klaytn to provide services. For upcoming news, stay tuned to our Medium page.We also released our updated media kit. For the latest information on Klaytn and Ground X, visit our official Klaytn homepage to download them, available in both English and Korean languages.To stay up to date with the latest Klaytn news, you can also subscribe to our newsletter. The comprehensive Q2 newsletter will be sent out soon, so make sure to sign up here.Thank you![About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem. For more information, visit https://groundx.xyz.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/1 year anniversary of our mainnet launch 🥳 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 09

[공지] Klaytn v1.5.0, caver-j...

Klaytn v1.5.0 공개Klaytn v1.5.0이 7월 8일에 (GMT +9) 다음과 같은 변경 사항을 포함하여 공개됩니다:- State migration 구현- warm-up trie node cache 구현- bigcache 대신 fastcache로 state trie cache layer변경- 합의 로직 개선더 자세한 내용은 다음 링크를 통해 확인하실 수 있습니다: https://github.com/klaytn/klaytn/releases/tag/v1.5.0추가로, 패키지 다운로드는 다음 링크를 통해 가능합니다: https://docs.klaytn.com/node/download/v1.5.0Klaytn v1.5.0 출시에 따라 Baobab 네트워크는 7월 13일에, Cypress 네트워크는 8월 3~5일에 업데이트 될 예정입니다. 이 업데이트는 기존 버전과 호환성이 유지되기 때문에, EN의 업데이트는 네트워크 업데이트와 무관하게 진행하실 수 있습니다.또한, 업데이트 기간 동안 해당 네트워크가 불안정할 수 있으니 이 점 참고하시기 바랍니다.다음 Klaytn v1.6.0에서는 enterprise-level API 요청을 처리할 수 있는 확장성있는 endpoint node와 internal transaction을 포함한 chain data를 다른 타입의 데이터베이스에 적재할 수 있는 기능이 포함될 예정입니다.caver-java v1.5.0 공개클레이튼의 SDK인 caver-java v1.5.0이 7월 8일에 (GMT +9)에 SDK 공통 아키텍처를 구현하고 공개합니다.Common Architecture는 모든 클레이튼 SDK가 공유하는 새로운 소프트웨어 아키텍처입니다. 이 아키텍처는 통일된 개발 경험과 다른 언어로의 쉬운 확장을 위해 설계되었습니다. 모든 SDK가 동일한 아키텍처를 가지므로 기존의 클레이튼 SDK로 개발한 경험이 있다면 다른 언어로 만들어진 클레이튼 SDK도 쉽게 이용할 수 있습니다.더 자세한 설명은 다음 링크를 참고하시기 바랍니다.https://github.com/klaytn/caver-java/releases/tag/v1.5.0패키지 의존성 설정은 다음 링크에서 확인하실 수 있습니다.https://bintray.com/klaytn/maven/caver-java/1.5.0caver-js와는 다르게, caver-java에는 동적 ABI loader가 지원되지 않아, 해당 기능을 추가로 구현하여 릴리즈할 예정입니다.클레이튼 관련 업데이트는 미디엄과 뉴스레터를 통해 가장 먼저 확인하실 수 있습니다. 많은 관심 부탁드립니다.[공지] Klaytn v1.5.0, caver-java v1.5.0 공개 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 08

[Notice] Release of Klaytn ...

Klaytn v1.5.0 ReleaseKlaytn v1.5.0 is released on Wednesday the July 8 (GMT+9) including the following changes:- Implementation of state migration- Implementation of warm-up trie node cache- Use of fastcache instead of bigcache as a state trie cache layer- Consensus logic improvementFor detailed information, please refer to https://github.com/klaytn/klaytn/releases/tag/v1.5.0. You can also download the Klaytn packages from https://docs.klaytn.com/node/download/v1.5.0.Accordingly, the Baobab testnet will be updated from July 13 (GMT +9), followed by the Cypress mainnet update from August 3 ~ 5 (GMT +9). Since this update does not break backward compatibility, ENs can be updated anytime.Although the network will be fully available, you may experience instability during the update.The next Klaytn v1.6.0 will introduce a scalable endpoint node to serve enterprise-level API requests and chain data export including internal transactions to another type of database.caver-java v1.5.0 Releasecaver-java v1.5.0 is released on Wednesday the July 8 (GMT+9) with SDK Common Architecture.Common Architecture is a new software architecture for Klaytn development environment which is shared by all Klaytn SDKs (caver-js/caver-java). It is designed for your streamlined development experience and ease of extensibility to other programming languages. Common Architecture realizes a much easier implementation of blockchain applications with other languages if you have experiences with the existing Klaytn SDKs, as they all share the same architectural background.For detailed information, please refer to https://github.com/klaytn/caver-java/releases/tag/v1.5.0. You can find a dependency snippet in https://bintray.com/klaytn/maven/caver-java/1.5.0.Since caver-java does not support dynamic ABI loader unlike caver-js, this feature will be implemented soon.Stay tuned for more updates by signing up for our Medium and newsletter. Thank you![Notice] Release of Klaytn v1.5.0 and caver-java v1.5.0 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 08

Klaytn Governance Council: ...

We are excited to announce that Hashed and Ozys, together as a consortium, have joined the Klaytn Governance Council.Hashed is a blockchain accelerator and investment fund, based on Seoul and San Francisco. Founded by a team of serial entrepreneurs and engineers in 2017, Hashed is passionate about enabling the global adoption of blockchain through education, acceleration, and impact investment.Ozys is a Korea-based blockchain project which recently entered into a devtools partnership with Klaytn to build and operate developer tools and services for Klaytn usability optimization. As a part of its first project, Ozys has added new features to Klaytnscope, the block explorer that monitors block activities on the Klaytn platform.For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Hashed-Ozys was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 07. 01

Klaytn Improvement Reserve ...

We are excited today to announce the launch of a pilot program of ‘Klaytn Improvement Reserve(KIR)’ and the first recipient of KIR, Ozys.KIR is a reward system allocated for partners committed to maintaining a sustainable ecosystem growth through enhancing development environment or initiating community building projects.Ozys is Klaytn’s DevTools partner, dedicated to building and operating developer tools and services for Klaytn usability optimization. As a part of its first project, Ozys has added new features to Klaytnscope, the block explorer that monitors block activities on the Klaytn platform. The updated version will be released on the 29th.The renewed Klaytnscope will include ▲event logs viewer, ▲internal transactions analyzer that presents KLAY transfer history based on contract calls, ▲Token Information’ page that presents token transfer history and balance by account or token, ▲Token information viewer (source code, compiler version, etc.) for verified tokens.Klaytn will offer Ozys with a wide range of support. In addition to KLAY reward through KIR, we will also provide development support and co-marketing programs for Ozys. In the meantime, the official KIR program is set to launch later this year. Any interested projects or partners will be able to apply through the official Klaytn website.We will support our partners’ various initiatives towards building infrastructure support, enhancing development environment, and community building initiatives all for a stronger Klaytn ecosystem.Thank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn Improvement Reserve update was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 06. 24

Klip: Making it millennial

It’s been a little over a week since we launched Klip.Thanks to all of your support, we hit 100,000 Klip users within just 21 hours after the first launch. We are still seeing a significant user growth, and we hope our Klip can soon be enjoyed by our global users too once a native application version becomes available.Today we are excited to introduce a new initiative that we are embarking upon: Millennials Digital Asset Group. Called ‘MDAG’ for short, we invite the rising MZ Generation, which encompasses millennials and Generation Z, to explore the potential of digital asset. As the group name suggests, we believe that students and professionals in their 20s and 30s, who grew up as digital natives, attached to their mobile phones and connected to their social networks, can best practice, produce, and utilize digital asset through Klip.The initial members of MDAG consist of local blockchain-focused student societies at some of Korea’s leading universities including Seoul National University, Yonsei University, Korea University, Sungkyunkwan University, Ewha Womans University, Gacheon University, as well as noder, the local blockchain media group. The kickoff meeting took place at Ground X office today. (Following the social distancing guidelines, we conducted temperature checks and guided them to wear masks at all times.)The initial members of MDAG will mainly conduct research on digital asset as well as develop use cases by working towards minting and utilizing various digital asset through our KakaoTalk-embedded Klip. They will also craft social media content to share their new digital asset experiences and introduce exciting tips and benefits of using Klip. In the future, we hope to publish a public report that puts all of researches and activities that MDAG conducts.We believe that our MZ users, already ‘opted-in’ to crypto, can easily utilize and understand digital asset, ultimately becoming ‘digital entrepreneurs,’ leading the digital asset adoption movement.As we continue to explore many ways in which digital asset can be developed or utilized in our daily lives, we are also going to work with various millennials-focused groups or organizations. Stay tuned for more updates.Thank you!안녕하세요.카카오의 블록체인 기술 계열사 그라운드X는 2030세대의 관점에서 디지털 자산의 잠재성 및 활용 가능성을 탐색하고, 이를 기반으로 다양한 활동을 펼칠 ‘밀레니얼 디지털 자산 그룹(Millennials Digital Asset Group, 이하 ‘MDAG’)’을 출범합니다.10일 오후 서울 강남구 삼성동 소재 그라운드X 사무실에서 열린 MDAG 발대식에는 그라운드X 한재선 대표, 카카오 미래전략추진실 박보성 크루, 50여 명의 MDAG 활동가들이 참석하였습니다. 이날 행사는 코로나19 감염 예방을 위해 사전 방역 및 참석자 대상 발열 체크, 좌석 띄워 앉기 등을 준수하여 진행됐습니다.MDAG에는 국내 6개 대학(가천대학교, 고려대학교, 서울대학교, 성균관대학교, 연세대학교, 이화여자대학교) 블록체인 학회 및 블록체인 인사이트 미디어 ‘노더(Noder)’의 구성원들이 초기 멤버로 합류합니다.MDAG 참여자들은 형식이나 방법의 제한 없이 디지털 자산을 주제로 한 다양한 활동을 실시할 예정입니다. 활동 예시로는 ▲ 디지털 자산 관련 연구 및 구현 사례 발굴 ▲ 디지털 자산 관련 콘텐츠 제작 및 소셜 채널을 통해 공유 ▲ 디지털 자산 지갑 ‘클립(Klip)’을 활용한 디지털 자산 발행 및 실생활 활용 등이 있습니다. 그라운드X는 향후 MDAG 활동의 결과물을 공식 리포트 형태로 발간해 일반 대중에게도 공개할 계획입니다.MDAG 활동을 성실히 수행한 참여자에게는 활동 이력이 담긴 NFT(대체 불가능한 토큰) 형태의 인증 카드가 지급됩니다. 이 카드는 글로벌 퍼블릭 블록체인 플랫폼 ‘클레이튼(Klaytn)’ 상에 영구 저장되며, 참여자의 클립 서비스에서 언제든지 확인할 수 있습니다.MDAG는 그라운드X가 아닌 참여하는 2030세대 활동가들이 직접 주도적으로 이끌어 가는 그룹이며 개개인의 적성과 특기를 살린 창의적인 방법으로 디지털 자산의 잠재성과 활용 가능성을 탐색해 주길 기대하고 있습니다.감사합니다.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klip: Making it millennial was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 06. 11

Digital Asset Wallet “Klip”...

We are thrilled to announce the official launch of Klip, a blockchain-based digital asset wallet service.Developed by Ground X, Klip provides a unique opportunity to experience digital assets within KakaoTalk, a mobile messaging application used by more than 90% of the South Korean population.Mobile Wallet for Klaytn-based Digital AssetsKlip users can safely store and easily transfer digital assets obtained from Klaytn-based blockchain applications across different verticals such as social networking, gaming, and e-commerce. As of the launch date, Klip supports 11 Klaytn-based cryptocurrencies (KLAY, BOX, BPT, PIB, HINT, ATT, TEMCO, BNS, PXL, ISR, COSM) as well as a multitude of Non-Fungible Tokens (NFTs). The number of Klaytn-based cryptocurrencies and NFTs that will be supported in Klip will increase gradually over time.Klip is designed to be a wallet for everyone, including those with little to no previous knowledge of blockchain or crypto assets. To achieve this, Klip focuses on optimizing usability, security, and expandability.Klip allows users to send and receive digital assets with their basic KakaoTalk account information, rather than complex wallet addresses typical of most blockchain wallets. The digital asset transfer is as fast as an instant wire transfer yet does not incur additional fees.Klip’s service security is also a key feature of its development. Klip users’ private keys are safely stored in encrypted formats, thanks to the security feature known as Key Management Service. Therefore, users do not need to worry about losing their private keys due to accidents or data breaches.Also, Klip provides a feature that allows partners to issue NFTs of their choice. The wallet will invite creative external partners to explore Klip’s potentialities and to utilize NFTs for their own unique services. In this context, Klip will allow partners of all sizes, from large-scale enterprises to small-sized blockchain startups, and even individuals, to issue NFTs and leverage them in many ways.Targeting Millennials and Generation Z“Klip enables people to experience digital assets, which are the core elements of the next internet paradigm, on the mobile platform that they feel the most comfortable with,” Jason Han, CEO of Ground X says. “We have focused on developing a digital wallet that is easy and convenient enough to be used by those who have no previous experience with blockchain technology.”“Users in their 20s and 30s, already familiar with mobile and online environments, are expected to benefit the most from the Klip service. Ground X also plans to make efforts to educate and publicize content about the potential of digital assets to these Millennials and Generation Z,” Han explains.Business RoadmapMore features will be added to Klip in the coming months. In the second half of the year, Klip will be directly connected to Klaytn-based blockchain applications and following that, a native mobile application of Klip will become available to provide a seamless digital wallet service to users all over the world.Thank you.클레이튼의 개발사이자 카카오의 블록체인 기술 계열사 그라운드X가 블록체인 기반의 디지털 자산을 쉽고 간편하게 경험할 수 있는 모바일 지갑 서비스 ‘클립(Klip)’을 출시했습니다.클립은 카카오톡을 통해 접근할 수 있는 디지털 자산 지갑 서비스입니다. 디지털 자산이란 온라인 환경에서 자산으로 인식될 수 있는 모든 종류의 정보 및 데이터 등을 통칭합니다. 게임 아이템이나 가상 포인트 등이 대표적인데, 최근 블록체인 기술의 발달로 과거에는 가치를 매기거나 소유권을 주장할 수 없었던 온라인 활동 데이터나 개인 제작 콘텐츠 등도 자산 가치를 인정받고 있습니다.클립은 사용자들이 스마트폰에서 쉽게 디지털 자산을 접해 볼 수 있도록 개발됐습니다. 별도의 앱 설치 없이 카카오톡 모바일 앱 우측 하단의 ‘더 보기’ 탭 내 ‘전체 서비스’ 메뉴에서 이용할 수 있습니다. 회원가입과 로그인 역시 카카오 계정을 그대로 이용하면 됩니다.클립 사용자는 소셜, 게임, 쇼핑 등 다양한 분야의 클레이튼(Klaytn) 기반 블록체인 애플리케이션(비앱⬝BApp)에서 획득한 디지털 자산을 보관하거나 카카오톡 친구에게 보낼 수 있습니다. 클레이튼은 그라운드X가 지난해 6월 선보인 글로벌 퍼블릭 블록체인 플랫폼입니다. 클립은 출시일 기준으로 클레이튼의 자체 토큰인 클레이(KLAY)를 포함 총 11종의 가상자산(KLAY, BOX, BPT, PIB, HINT, ATT, TEMCO, BNS, PXL, ISR, COSM)과, 비앱이 발행한 다양한 종류와 속성의 대체 불가능한 토큰(NFT)을 지원합니다. 그라운드X는 클립에 담을 수 있는 디지털 자산의 개수와 종류를 지속해서 늘려갈 계획입니다.클립의 차별화 포인트는 블록체인이나 가상자산을 잘 모르는 일반인도 쉽게 사용할 수 있는 지갑 서비스라는 점입니다. 이를 위해 ▲쉬운 사용성 ▲높은 보안성 ▲광범위한 확장성 등에 주안점을 두고 개발됐습니다.사용자는 클립에서 카카오톡 친구 리스트를 이용해 간편하게 디지털 자산을 주고받을 수 있습니다. 복잡한 블록체인 지갑 주소를 알지 못해도 사용할 수 있습니다. 디지털 자산의 전송 속도 역시 일반적인 모바일 뱅킹 이체만큼 빠르며 수수료도 부과되지 않습니다.안전한 자산 보관을 위해 서비스 보안성도 높였습니다. 그라운드X가 자체 개발한 ‘키 관리 서비스(KMS)’ 기술을 이용해 보안키를 암호화된 형태로 보관합니다. 사용자가 직접 보안키를 관리할 필요가 없어 편리하며, 실수나 해킹에 의해 보안키가 유출될 우려가 없습니다. KMS는 클립을 운영하는 그라운드X조차도 보안키에 접근할 수 없도록 설계됐습니다.또, 클립은 그라운드X뿐만 아니라 파트너사들도 디지털 자산을 발행할 수 있도록 관련 서비스를 제공합니다. 창의적인 외부 업체들이 디지털 자산의 잠재성과 확장성 등을 탐색해보고 이를 기반으로 다양한 활동을 할 수 있도록 지원합니다. 향후에는 블록체인 서비스에 국한하지 않고 일반 모바일 앱이나 개인까지도 디지털 자산을 발행할 수 있도록 서비스를 제공할 계획입니다.그라운드X는 클립 서비스에 대한 지속적인 업데이트도 이어갈 방침입니다. 올 하반기 중에는 클레이튼 기반의 다양한 서비스와 직접 연동 시켜 사용할 수 있는 클립 버전을 선보입니다. 이후에는 클립을 네이티브 모바일 애플리케이션 형태로도 출시해 글로벌 사용자들에게도 서비스를 제공할 계획입니다.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Digital Asset Wallet “Klip” is here! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 06. 02

Klaytn’s New DevTools Partn...

Today we are excited to announce a new partnership program: ‘DevTools Partners.’The first partner to join is Ozys, which has earlier participated in the Klaytn ecosystem to build a decentralized token swap tool called ‘Klaytn Swap’ using its ‘Orbit Chain.’ Through the new devtools partnership, Ozys plans to build various blockchain-based protocols and modules for the Klaytn ecosystem.Ozys will first work on enhancing ‘Klaytnscope,’ the block explorer that monitors block activities on the Klaytn platform. It will also optimize ‘Klaytn IDE,’ the web-based compiler that allows developers to build Klaytn smart contracts without installing a separate development tool. Further, Ozys will develop more protocols that can organically connect Klaytn network, blockchain applications, and users.“We are happy to continue working with Klaytn as its devtools partner, and we will actively participate in and contribute to the Klaytn ecosystem by building useful developer tools and protocols.” — T.K. Park, the CEO of OzysWe will offer active support for Ozys including development support and co-marketing programs.Thank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn’s New DevTools Partnership Announcement was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 05. 28

Klaytn Integrates Chainlink...

Klaytn Partners with Chainlink Oracles for Real-World ConnectivityWe are partnering with Chainlink, the decentralized oracle network. Chainlink can support Klaytn’s smart contracts to connect with resources outside the blockchain (off-chain), enabling applications that are integrated with the real-world data and systems.Blockchains are decentralized infrastructure for processing multi-party transactions with a high degree of integrity. Blockchain transactions, referred to as smart contracts, have basic design logic that stipulates “if x event happens, execute y action.”The problem is that the blockchain can only compute smart contracts using data already stored in the blockchain (on-chain) and much the data about real-world events is stored outside the blockchain (off-chain).An “oracle” is a piece of middleware that allows the blockchain to know what’s happening off-chain in the real world. Oracles attest to the occurrence of events, translate the event data into a readable format, and relay that information to the smart contract on the blockchain. The smart contract then uses the data to execute more advanced actions, such as paying out a crop insurance contract when it rains or settling a financial contract based on the current price of an asset.Since the oracle is an extension of the smart contract, the oracle must be as secure as the underlying blockchain to maintain end-to-end security. Chainlink is a general-purpose framework for building decentralized oracle networks to ensure the integrity of both the data and its delivery to the smart contract.Chainlink can open up a variety of new use cases on Klatyn across a variety of markets.Decentralized Finance (DeFi) — Financial products built on the blockchain need access to market data, such as exchange rates, asset prices, interest rates, and more. Chainlink is able to supply market data to DeFi applications, which can automate the execution of financial products or help provide on-chain audit trails of centralized financial operations.Non Fungible Tokens (NFT) — Developers can use Chainlink to build dynamic NFTs for unique digital items that connect and respond to real-world data. For example, a company could launch an advertising campaign where they mint limited-edition prizes as NFTs based on the results of a competition, such as the first user to scan QR codes from all the sponsored locations unlocks the NFT prize.Insurance — Chainlink can provide developers with access to web APIs and IoT networks, empowering smart contracts for parametric insurance — an agreement that automatically pays out based on a pre-defined event. For example, crop insurance that pays out for certain weather conditions or flight insurance that settles based on flight schedules.Gaming — Blockchain games can augment in-game actions based on real-world data. For instance, Chainlink can connect IoT data, such as a Fitbit, which provides in-game privileges if a user hits a certain exercise threshold. It also provides verifiable randomness as an input to spawn unique in-game items.Global Trade — Global trade requires the tracking of goods, the release of payments, and government compliance. Chainlink can provide a trusted mechanism for feeding the contract data about each event along the trade route: GPS (shipment arrival), customs approval (regulatory approval), IoT (quality control), and payment networks (settlement).“We look forward to providing the Klaytn ecosystem with secure and reliable oracles to enable the development of next-generation decentralized applications. Klaytn can accelerate towards its goal of blockchain mass adoption with the addition of real-world connectivity made possible by Chainlink oracles.” — Sergey Nazarov, the Co-Founder of Chainlink[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn Integrates Chainlink Oracles for Real-World Connectivity was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 05. 18

Klaytn joins the Celo Allia...

Today we are excited to announce that we have joined the Celo Alliance for Prosperity, a mission-aligned network of organizations fostering social impact and financial inclusion through the use of blockchain technology.As the new Alliance member, we are joining other global leading member organizations including Andreessen Horowitz, Coinbase Ventures, and B12, to work towards building an open monetary system that creates conditions of prosperity for all.We share a mutual vision with Celo Alliance in making digital assets more accessible and useful in our everyday lives, and we will specifically work on extending the usability of KLAY and securing the usability of Celo stablecoins. Further, we will together perform a research on interoperability of the two blockchain protocols so that we can stimulate sustainable growth and bring meaningful use cases.“We are excited to see Klaytn select Celo as the first external blockchain it will interoperate with. By building a bridge between Klaytn and Celo, Klaytn will expand its own ecosystem, and make it simple for people in Korea and across Asia to send and save with Celo.” — Chuck Kimble, the Head of Celo Alliance for Prosperity.클레이튼이 미국 블록체인 금융서비스 전문 기업 셀로(Celo)가 주도하는 글로벌 금융 혁신 연합 ‘셀로 얼라이언스(Celo Alliance)’에 참여하게 되었습니다.얼라이언스 포 프로스퍼리티(Alliance for Prosperity·번영을 위한 협의체)는 셀로 재단의 비영리 커뮤니티로, 금융 서비스에서 소외된 사람들에게 쉽고 편리한 모바일 금융 서비스를 제공하여 블록체인 기반의 오픈 암호화폐 시스템 수립을 목표로 합니다.얼라이언스 회원들은 금융 생태계 확대를 위해 블록체인 기반의 금융 인프라 개발, 기술 협력, 커뮤니티 확대 등 다양한 방식으로 커뮤니티를 지원하고 거버넌스에 참여하게 됩니다.클레이튼과 셀로는 이번 협약을 통해 두 블록체인 네트워크 간 상호운용성을 위한 공동 연구를 진행하고자 합니다. 더불어, 클레이튼의 클레이(KLAY)와 셀로에서 발행하는 스테이블코인 사용성 확보 등 디지털 자산의 활성화 확대에 집중할 예정입니다.감사합니다.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain affiliate of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn joins the Celo Alliance for Prosperity to Enhance the Usability of Digital Assets was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 05. 08

Klaytn Partners Meeting

Today we invited our service partners to join us for an exclusive Klaytn partners meeting.Following the social distancing guidelines, we held the meeting both online and offline for the participating service partners. A majority of them attended via Google Hangouts while a number of them visited our Ground X office.Dedicated to providing user-friendly blockchain experience for users, Klaytn has partnered with over 50 blockchain projects in various industry domains including payment, finance, healthcare, entertainment, gaming, etc. For detailed information on Klaytn BApps, you can refer to State of the DApps or Dapp.com.Klaytn is also partnering with various players that enhance the usability of Klaytn BApps including software/hardware wallets, device manufacturers, financial institutions, global NFT (Non Fungible Tokens), marketplaces, etc. to further expand the blockchain ecosystem. Through this, we plan on improving the variety and convenience of accessing Klaytn-based blockchain services. For more information on our partners, you can refer to the recently released media kit.At the gathering today, Jason shared the vision and roadmap of Klip, the digital asset wallet service set to launch in a few months via KakaoTalk messenger service. Klip allows users to store and transfer digital assets including Klaytn’s token KLAY and Klaytn compatible tokens, along with NFT’s. Users can also browse a number of Klaytn BApps through Klip.Jason also introduced the blockchain API service that would considerably lower the hurdle for building blockchain applications. Typically, the developers need to utilize the Smart Contract programming to build blockchain applications; however, our blockchain API service can alleviate such difficulties by offering various functions in the cloud computing service for developers to easily utilize. In the first half of the year, Ground X will release a Klip-focused internal version, with further plans to release the official by the second half of the year.The event ended with Q&As and discussions between partners and the Klaytn team.We seek to continue enhance the development environment for developers to easily build and operate blockchain applications. And together with our partners, we look forward to producing user-friendly blockchain services. We will also continue building more partnerships to trigger the mass-adoption of blockchain experience for millions of users across the world.Further, we seek to continue holding more meetings to further strengthen communication and also lead our journey together toward driving mass blockchain adoption.Thank you.[About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem. For more information, visit https://groundx.xyz.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn Partners Meeting was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 04. 22

An A to Z of Ground X

The media kit is now available in English: https://www.klaytn.com/GroundX_Klaytn_MediaKit_EN.pdfWe initially published the Korean version in February, and we now offer you the English version for our larger community across the globe to learn more about Ground X and its Klaytn.This media kit provides a comprehensive overview of Ground X, including its vision and goal, as well as the achievements from the past year and the roadmaps going forward. You can also take a look at our blockchain services and products we are building that will guide us lead the journey to the next Internet, including the recently released Kaikas.We are planning to update the media kit, both versions, every quarter, so that you can access the most up-to-date information about Ground X and Klaytn. We hope this publication can assist you thrive in building our community and the greater ecosystem.For more information, visit the official Klaytn website. Also, make sure to sign up for our newsletter.Thank you.[About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem. For more information, visit https://groundx.xyz.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/An A to Z of Ground X was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 04. 21

Analysis on Consensus Delay...

Analysis on Consensus Delay at Cypress Block 24,002,380 on March 29thOn March 29, 2020, Cypress experienced a consensus delay at block number 24,002,380.This article explains the reasons for the delay, how Klaytn Team and Core Cell Operators (CCOs) responded to the problem, and, finally, how we can improve the Klaytn blockchain based on the lessons learned.Cause of Block Consensus DelayWe conclude that the March 29 incident happened mainly due to two factors:Unstable condition of proposer CN and network communicationRepetitive selection of unlocked proposal at a low probability (approximately 0.000000013%)¹Klaytn ConsensusKlaytn uses a variant of the Practical Byzantine Fault Tolerance (PBFT) consensus algorithm and forms a blockchain network consisting of twenty-six Consensus Nodes (CNs). For each second, a randomly selected committee of twenty-two CNs runs the consensus algorithm to produce a block.RoundsWhen a committee is formed, it produces a block within the so-called ‘rounds.’ Each round has a proposer, a randomly picked committee member who decides which transactions go into the next block. A round outputs a block only if more than two-thirds of the committee members agree on the block proposed by the proposer.Round ChangeRound Change is a mechanism that can replace the current block proposer with the next one in case the present proposer fails to propose a block within the given time limit. While several reasons can cause a proposer to fail, a successful Round Change makes sure that another CN (from the same committee) can continue the block generation as a new proposer.Situation Analysis and ActionThe proposer for the 24,002,380th block proposed the block, B, late. By the time B is proposed, a Round Change already started among the participating CNs. Since the CNs operate in different locations, they received B at different times and started acting differently. Based on our investigation, there were two groups of CNs as follows:Group 1 (total of eight CNs): accepted B (locked), and moved on to the next roundGroup 2 (total of fourteen CNs): moved on to the next round (not accept B)For the next fifteen rounds, the CNs repeated the following steps:A new proposer, randomly selected from Group 2 proposes a new block, B’, which is different from B that the CNs in Group 1 acceptedCNs in Group 1 do not agree with B’Since the fifteen CN’s did not agree on the B’, the committee fails to exceed the quorum (15, ⅔+1 of 22) and moves on to the next roundRecall that each round has a different time limit. At block 24,002,380, the committee went to the fifteenth round, which times out after 2+2¹⁵ seconds — roughly 9 hours. The CCOs then restarted the CN.Q&AQ: Can block generation ever stop?No, in the consensus algorithm, it can always produce a block unless there are ⅓ CN problems. On March 29, however, we experienced a long delay, and if we were to wait longer, we would have reached the consensus. However, since the wait time doubles as each round changes, the block consensus delay occurs as the round prolongs.Q: For round changes, does the Klaytn blockchain have to wait until a specific CN gets selected as a proposer?Not necessarily. If the group is not divided or if a group has less than 7 CN’s, then the consensus can be reached regardless of which proposer is selected in the next round.Q: Does a committee always get separated into groups for round changes?No. Although it did happen this time, this is a highly unlikely event that can occur only when two different events occur concurrently (e.g., receiving a block vs. round change).Q: Was the block delay correlated to the recently released Klaytn v1.4.0?No, the block delay and the Klaytn v1.4.0 release are not related. Further, the block delay occurred before applying the release to CN.Q: Is there a chance for this kind of delay to happen again?Based on this given algorithm, this kind of delay may happen again at a low probability. However, if we were to adopt the following tasks, as written below, by enhancing the lock mechanism and enhancing proposer selection during round changes, we may be able to prevent the block delay.Conclusion and Future WorksAll Byzantine Fault Tolerance (BFT) algorithms require a sufficient number of agreements from the participating nodes to safely produce blocks. While this prevents network forks that can be observed in some blockchains, for some cases, BFT consensus takes a long time to agree on a block.The Klaytn Team plans to do the following tasks to improve the system and minimize the consensus delay:Control and mitigate consensus delaysIncrease round timeout to suppress round changesAutomatic detection of long delay case and reconsensus at an initial round.Implement a quick round change mechanismImprove consensus algorithm tailored to the Klaytn network configurationEnhance the lock mechanism during round changesEnhance proposer selection during round changesWe sincerely hope this article helps you clearly understand what happened on March 29. We will continue to work towards the advancement of Klaytn’s performance as well as the enhancement of the platform’s stability. Thank you for your support for Klaytn.[1]: This number is calculated based on the probability of the occurrence of round change in the past 9 months and the probability of 8 CN’s being locked in a round change, and the repetitive selection of unlocked CN occurs for 15 rounds. (For a numerical calculation, we took into account the following assumptions.)Assumption 1: The staking weight of all CN’s is the same, thus every CN is given the same chance of block proposal.Assumption 2: The organization of 22 committee is never changed.Assumption 3: The probability of CN being locked is the same in the initial round based on the network condition.Note: We presume that the round change started to increase in the past month of March ‘20 due to network congestion.-3/29 Cypress 24,002,380 블록 합의 지연 분석지난 3/29에 Cypress의 #24,002,380 블록 합의의 시간이 1초를 넘어 장시간 지연되는 상황이 발생하였습니다.본 글에서는 블록 합의 지연이 발생한 자세한 원인과 Klaytn 팀, CCOs (Core Cell Operators)가 대응한 내용, 그리고 앞으로 어떻게 블록 합의 지연을 개선해 나갈지 공유드리고자 합니다.블록 합의 지연의 원인블록 합의 과정이 길어지게 된 원인은 다음과 같습니다.Proposer CN과 네트워크 통신의 불안정한 상태낮은 확률 (약 0.000000013%)¹로 발생되는 round change시 lock되지 못한 proposal의 연속 선정Klaytn 합의 방식Klaytn은 PBFT (Practical Byzantine Fault Tolerance) 합의 알고리즘을 기반으로 하여 현재 총 26개의 CN (Consensus Node) 중 매 블록마다 랜덤하게 선정된 22개 (N)의 CN이 합의를 이루면서 동작되고 있습니다.RoundsKlaytn의 합의 알고리즘에서는 매 초마다 블록을 생성하기 위해 22개 CN들의 합의가 필요한데, 이 합의를 이루는 과정을 라운드 (Round)라고 표현합니다. 매 라운드마다 하나의 CN이 랜덤하게 Block proposer로 선정 되고, ⅔+1 이상의 CN들이 해당 블록을 동의해야만 블록의 생성이 완료됩니다.Round Change불안정한 CN 또는 통신으로 인해서 해당 블록의 Proposer가 블록 생성 및 합의를 한정된 시간 내에 못할 경우, 새로운 라운드가 시작되며 다른 CN이 block proposer로 선정되어 블록을 생성하고 합의를 이룰 수 있도록 하고 있습니다.블록 합의 지연 상황 분석 및 대응24,002,380 번째 블록의 Proposer로 선정된 CN이 블록을 제시간에 생성하지 못함지연 생성된 블록의 합의와 Round Change가 동시에 발생아래와 같은 2개의 그룹으로 CN들의 상태가 나뉘어짐Group 1: 블록 수용 (Lock) 후, Round Change 수행 (8개 CN)Group 2: Round Change 수행 (블록 미수용) (14개 CN)이후 1 ~ 15 라운드 동안 아래 과정 반복Group 2에 속한 CN 중 하나가 Proposer로 선정되어 새로운 블록을 제안Group 1에 속한 CN들은 기존에 수용한 블록과 제안된 블록이 달라 합의를 거부새로운 블록에 동의한 CN들의 개수가 15 (합의를 이루기 위한 CN들의 최소 개수, 22의 ⅔+1)개를 만족하지 못하여 다음 Round로 전환Group 1에 속한 CN이 Proposer로 선정되면 합의가 가능한 상황이었으나 Round Change의 시간이 과도하게 길어져(라운드 15의 경우 대기 시간이 약 9시간) CCO들의 CN들을 재시작함Q&AQ: 블럭 생성이 완전히 멈추는 경우가 발생할 수 있는가?컨센서스 알고리즘에서는 ⅓ CN의 문제가 생기지 않는 한 발생하지 않습니다. 이번 지연의 경우에도 블럭 생성시간이 지나치게 지연되는 문제였으며, 더 오랜 시간을 기다렸다면 최종적으로 합의는 이루어졌을 것입니다. 다만, Round가 변할 때마다 대기 시간이 2배씩 증가하기에 Round가 길어지면 장시간의 블럭 생성지연이 발생합니다.Q: Round change가 발생하면 위와 같이 특정 CN이 Proposer가 될 때까지 기다려야 하는가?대부분은 그렇지 않습니다. Group이 나누어지지 않거나 한 Group에 7개 이하의 CN이 포함되었으면, 다음 Round에 어떤 Proposer가 선정되어도 합의를 이룰 수 있습니다.Q: Round change 발생하면 위와 같이 항상 Group이 나누어지는가?그렇지 않습니다. Group이 나누어지는 것은 Block 수용과 Round change가 발생하는 시간이 동시에 발생하면 낮은 확률로 발생할 수 있습니다.Q:지난 Klaytn v1.4.0 릴리즈와 어떤 관계가 있는가?지난 Klaytn v1.4.0의 변경점과 관련된 내용은 없습니다. 또한 해당 release를 CN에 업데이트 하기 전의 발생된 상황으로 해당 Release와 본 상황은 관계가 없습니다.Q:해당 합의 지연과 같은 경우가 다시 발생될 가능성이 있나요?현재 알고리즘/구현으로는 다시 해당 지연과 같은 상황이 낮은 확률로 발생될 수 있습니다. 다만 아래에 제시한 개선책을 적용한다면 긴 시간의 합의 상황을 먼저 인지하고 빠르게 초기 round로 합의를 시도함으로써 장시간 블록생성지연을 방지할 수 있을 것으로 보입니다.결론 및 개선 방향BFT 알고리즘의 경우 안전한 블록 생성을 위해서 충분한 CN들의 합의를 얻어야 합니다. 이로 인해 다른 합의 알고리즘에서 나타나는 Fork 현상이 발생하지 않는 대신 특정 상황에서는 합의 시간이 길어질 수 있는 특성을 갖습니다. 이번 블록 합의 지연 상황은 BFT 알고리즘의 특성상 합의 시간이 길어진 사례에 해당합니다.Klaytn 팀에서는 위와 같은 블록 생성이 지연되는 경우를 최소화하고 보다 근본적인 원인을 해결하고자 아래와 같이 개선을 해 나가고자 합니다.합의 지연상황 발생 억제 및 지연시간 최소화Round change 발생 억제를 위한 초기 Round Timeout 시간 증가합의 지연시간을 감소시키기 위해 장기지연 자동 감지 및 초기 round로 재 합의 시도빠르게 Round를 전환할 수 있는 방안 추가Klaytn의 네트워크 특성을 반영하여 합의 알고리즘 및 구현 개선Round change중 lock 기능에 대한 개선Round change중 proposal 선정 방식 개선본 포스팅을 통해 지난 3/29에 Cypress에서 발생한 블록 합의 지연 사건에 대해서 분석한 내용을 공유드렸습니다. Klaytn 팀은 Klaytn이 고성능을 달성하면서도 블록 생성 시간에도 더 안정적인 블록체인이 되도록 많은 노력을 기울이겠습니다.[1]: 해당 확률은 최근 9개월간 통계적인 round change의 발생 확률과 round change시 8개의 CN이 lock 되고, lock되지 않은 CN이 proposal로 연속 선정됨에 따라 15 round까지 합의를 못할 경우의 수로 계산된 확률입니다. (수치적 계산을 위해 실제와 다른 아래 가정을 하였습니다.)가정1) 모든 CN의 staking weight는 같아 동일한 block proposal 기회를 얻는다고 가정함.가정2) 22개의 committee 구성은 변경되지 않는다.가정3) 초기 round에서 통신 상태에 따라서 lock이 걸리는 CN의 경우의 수는 모두 같은 확률로 가정함.참고) 2020년 3월에 round change의 발생이 증가하였으며, 네트워크 환경의 혼잡도가 높아진 것으로 추정 중Analysis on Consensus Delay at Cypress Block 24,002,380 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 04. 03

[Notice] Release of Klaytn ...

Klaytn v1.4.0 ReleaseKlaytn v1.4.0 is released on Friday the March 27 (GMT +9) including the following changes:Storage trie optimizationAdjustment of state trie cache parameter to boost performanceKeystore V4 supportAccordingly, the Baobab testnet will be updated from April 1 to 2 (GMT +9), followed by the Cypress mainnet update from April 9 to 14 (GMT +9). Detailed schedules for updates are as follows:Baobab Network3/30 ~ 3/31 Baobab EN update (All Baobab ENs are recommended to update to Klaytn v1.4.0)3/30 14:00–16:00 Public Baobab EN (https://api.baobab.klaytn.net) update4/1 ~ 4/2 Baobab CC update2. Cypress Network3/30 ~ 4/8 Cypress EN update (All Cypress ENs are recommended to update to Klaytn v1.4.0)3/30 14:00–16:00 Public Cypress EN (https://api.cypress.klaytn.net) update4/9 ~ 4/14 Cypress CC updateAlthough the network will be fully available, you may experience instability during the update.For detailed information, please refer to https://github.com/klaytn/klaytn/releases/tag/v1.4.0. You can also download the Klaytn packages from https://docs.klaytn.com/node/download/v1.4.0.The next Klaytn v1.5.0 will introduce the state trie pruning to reduce the storage cost of Klaytn nodes.caver-js v1.4.0 ReleaseAlong with the Klaytn v1.4.0 release, caver-js v1.4.0 is also released on Friday the March 27 (GMT +9) including the following changes:APIs support for KIP-7/KIP-17caver.klay.KIP7 for KIP-7 fungible token contractcaver.klay.KIP17 for KIP-17 non-fungible token contractFor detailed information, please refer to https://github.com/klaytn/caver-js/releases/tag/v1.4.0. You can also download the caver-js from https://www.npmjs.com/package/caver-js/v/1.4.0.The next caver-js v1.5.0 will introduce the common architecture of the Klaytn SDK, caver. By establishing the common architecture, we can expect:Establishment of a language-independent structure of the SDKEstablishment of the common terminology of the SDKUsability improvements of the SDKIntroduction of Klaytn Improvement Proposals (KIPs)We started Klaytn Improvement Proposals (KIPs) to receive suggestions that can accelerate the advancement of Klaytn blockchain platform and its ecosystem. If you have ideas for the betterment of Klaytn and its ecosystem, you can submit them to the KIPs GitHub page at https://github.com/klaytn/kips. The description and the submission guide of the KIPs are available at the GitHub page as well as https://kips.klaytn.com/, and we welcome all new ideas. In the meantime, you can find the following proposals that are filed:KIP-3: Klaytn Keystore FormatKIP-7: Fungible Token StandardKIP-13: Interface Query StandardKIP-17: Non-fungible Token StandardStay tuned for more updates by signing up for our Medium and newsletter. Thank you!Klaytn v1.4.0 공개Klaytn v1.4.0이 3월 27일에 (GMT +9) 다음과 같은 변경 사항을 포함하여 공개됩니다:Storage trie 최적화성능 향상을 위한 State trie 캐시 파라미터 조절Keystore V4 지원Klaytn v1.4.0 출시에 따라 Baobab 네트워크와 Cypress 네트워크 또한 업데이트 될 예정입니다.자세한 업데이트 일정은 아래와 같습니다.Baobab 네트워크3/30 ~ 3/31 Baobab EN 업데이트 (모든 Baobab EN에 대하여 Klaytn v1.4.0으로 업데이트 하는 것을 추천합니다).3/30 14:00–16:00 Public Baobab EN (https://api.baobab.klaytn.net) 업데이트4/1 ~ 4/2 Baobab CC 업데이트2. Cypress 네트워크3/30 ~ 4/8 Cypress EN 업데이트 (모든 Cypress EN에 대하여 Klaytn v1.4.0으로 업데이트하는 것을 추천합니다).3/30 14:00–16:00 Public Cypress EN (https://api.cypress.klaytn.net) 업데이트4/9 ~ 4/14 Cypress CC 업데이트업데이트 기간 동안 해당 네트워크가 불안정할 수 있으니 이 점 참고하시기 바랍니다.더 자세한 내용은 다음 링크를 통해 확인하실 수 있습니다: https://github.com/klaytn/klaytn/releases/tag/v1.4.0추가로, 패키지 다운로드는 다음 링크를 통해 가능합니다: https://docs.klaytn.com/node/download/v1.4.0다음 Klaytn v1.5.0에서는 Klaytn node의 스토리지 비용을 줄일 수 있는 state trie pruning 기능이 포함될 예정입니다.caver-js v1.4.0 공개마찬가지로 3월 27일에 (GMT +9) caver-js v1.4.0 또한 다음과 같은 변경 사항을 포함하여 공개됩니다:KIP-7/KIP-17 token contract를 위한 API 지원KIP-7 fungible token contract를 위한 caver.klay.KIP7KIP-17 non fungible token contract를 위한 caver.klay.KIP17자세한 내용은 다음 링크를 참고하시기 바랍니다: https://github.com/klaytn/caver-js/releases/tag/v1.4.0패키지 다운로드는 다음 링크를 통해 가능합니다: https://www.npmjs.com/package/caver-js/v/1.4.0다음 caver-js v1.5.0에서는 Klaytn SDK의 common architecture에 대한 내용이 소개될 예정입니다. Common architecture 정립을 통하여 아래와 같은 효과를 기대할 수 있습니다:언어에 종속되지 않는 SDK common architecture 정립SDK common terminology 정립SDK 사용성 개선클레이튼 개선 제안서 (Klaytn Improvement Proposals·KIPs) 소개Klaytn 블록체인 플랫폼 및 생태계의 지속적인 발전을 위해 클레이튼 개선 제안서(Klaytn Improvement Proposals·KIPs) 프로그램을 시작했습니다. 더 나은 클레이튼과 클레이튼 생태계를 위한 아이디어가 있으신 분은 KIPs 깃허브 페이지에 (https://github.com/klaytn/kips) 제안을 부탁드립니다. 해당 페이지와 https://kips.klaytn.com/에서 KIPs에 대한 설명과 함께 기여 방법도 확인하실 수 있습니다. 또한, 아래의 제안들이 등록되어 있으니 많은 관심 부탁드립니다:KIP-3: Klaytn Keystore FormatKIP-7: Fungible Token StandardKIP-13: Interface Query StandardKIP-17: Non-fungible Token Standard클레이튼 관련 업데이트는 미디엄과 뉴스레터를 통해 가장 먼저 확인하실 수 있습니다. 많은 관심 부탁드립니다.감사합니다.[Notice] Release of Klaytn and caver-js v1.4.0 and Introduction of KIPs was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 03. 27

Kaikas now available in Chr...

We are excited to share the official launch of Kaikas, a browser extension wallet for the Klaytn platform.Available in Google Chrome and Mozilla Firefox, Kaikas provides a secure and usable means to interact with the Klaytn network via web browser.Download Kaikas from Chrome Web StoreDownload Kaikas from Firefox Add-on StoreWith Kaikas, you are able to store and transact with your KLAY and Klaytn-based tokens. You can also sign requests from web-based Klaytn BApps (Blockchain Applications) in real-time.Below is a summary of Kaikas’ key features:1) PC web browser-based decentralized HD walletKaikas is a web browser extension available in Chrome and Firefox. It is optimized for the desktop environment.Kaikas requires users to manage their own accounts and keys. All transactions are transparently recorded on the Klaytn blockchain, so anybody can access the transaction history by using Klaytnscope.Kaikas is a Hierarchical Deterministic (HD) wallet, meaning that it generates a hierarchical tree-like structure of private/public keys indefinitely from a single seed phrase. The seed phrase consists of mnemonic code words, which are easier to remember than random alphanumerics. Users’ private keys are encrypted and stored in their own browsers.With the features described above, Kaikas has improved the security, transparency, and user-friendliness of the current blockchain experience. However, it is vital that users be responsible for their personal account management. (E.g. if a user does not remember his/her seed phrase, there is no other way to restore his/her accounts.)2) Supporting various Klaytn networks and tokensKaikas allows you to store and transact with all Klaytn-based tokens including KLAY. Tokens that are not listed by default can be inserted by pasting in their contract address. You can even store and transact your own unique Klaytn-based custom tokens on Kaikas!Kaikas supports Klaytn’s Baobab testnet as well as the Cypress mainnet. Moreover, those developing Klaytn-based blockchain applications may connect to their private networks to test the applications.3) Signing web-based BApp transactionsKaikas can be connected with web-based Klaytn BApps. You can use your Kaikas account to sign all types of transactions/data presented to you by the applications.Kaikas can also be used to handle fee delegation. By using Kaikas, BApp developers and operators can sign the fee transactions.Image: Kaikas screenshotsFrequently Asked Questions on Kaikas:1) What is the difference between Kaikas and Klip?Klip is a mobile digital wallet that will be functioning on KakaoTalk, Korea’s largest messenger application. Klip is for everyone, even those with little or no understanding of blockchain technology. Users will be able to send and receive KLAY and Klaytn-based tokens with no previous experience in using wallet addresses or private keys.Kaikas, on the other hand, is a browser extension wallet available in Chrome and Firefox. With Kaikas, users can not only store and transact KLAY and Klaytn-based tokens but also sign the transactions/data requested from web-based BApps. It is for those who have some working knowledge of the blockchain. Kaikas is offered in both Korean and English language.2) Is there any transaction/gas fee to exchange tokens on Kaikas?Yes. The amount of transaction fee is presented on the bottom of the send screen.3) How to report questions, comments, or any bug?You can send us a message via Kaikas’ main screen > settings > About Kaikas > Email us.안녕하세요,웹 브라우저 확장 프로그램 형태의 Klaytn 지갑 ‘Kaikas(카이카스)’가 출시됐습니다. 지금 크롬 웹 스토어와 파이어폭스 Add-on 스토어에서 Kaikas를 설치하실 수 있습니다.Kaikas 크롬 버전 다운로드 바로가기Kaikas 파이어폭스 버전 다운로드 바로가기Kaikas를 이용해 KLAY를 비롯한 Klaytn 기반 토큰(KCT)을 보관하거나 주변 지인에게 전송할 수 있습니다. 웹 기반의 Klayn 블록체인 애플리케이션(BApp)과 실시간 연동해 트랜잭션 서명을 대신 수행할 수도 있습니다.Klaytn 플랫폼을 더욱 강력하고 안전하게 할 Kaikas의 주요 특징은 아래와 같습니다.1) PC 웹 브라우저 기반의 탈중앙화 HD월렛Kaikas는 크롬과 파이어폭스 웹 브라우저의 확장 프로그램 형태로 작동됩니다. Kaikas는 PC 데스크톱 브라우저 환경에 최적화되어 있습니다.Kaikas는 단일 시드 구문(seed phrase)으로 트리 구조의 키를 무한대로 생성하는 ‘계층 결정적(Hierarchical Deterministic)’ 지갑으로 개발됐습니다. 시드 구문은 니모닉 코드 단어(mnemonic code words)들로 구성되어, 일반적인 숫자 및 알파벳 조합의 프라이빗 키 대비 기억하고 보관하기 쉽습니다. 생성된 프라이빗 키는 암호화된 형태로 사용자 웹 브라우저에 저장됩니다.Kaikas의 모든 트랜잭션 내역은 Klaytn에 투명하게 기록되며, Klaytn 네트워크의 블록 탐색기인 ‘Klaytnscope(클레이튼스코프)’를 통해 누구나 확인할 수 있습니다.Kaikas는 위와 같은 구조를 통해 지갑의 사용성과 편의성은 물론 투명성과 보안성을 높였습니다. 하지만 동시에 사용자로부터 일정 수준 이상의 책임이 요구됩니다. (예를 들어 사용자가 키 복구에 필요한 시드 구문을 기억하지 못하는 경우, 관리자가 이를 대신 복구해 드릴 수 없습니다)2) 다양한 클레이튼 네트워크 환경과 토큰 지원Kaikas는 KLAY를 포함한 모든 종류의 KCT를 지원합니다. Kaikas에 기본으로 탑재되지 않은 코인이라면 토큰 어드레스를 등록해 이용하실 수 있습니다. 그뿐만 아니라, 사용자가 직접 개발한 클레이튼 기반의 커스텀 토큰을 Kaikas에 추가할 수도 있습니다.Kaikas는 Klaytn의 Baobab testnet과 Cypress mainnet 환경을 모두 지원합니다. 자체 BApp을 개발하고 관리하는 분들은 프라이빗 네트워크를 연결해 BApp을 자유롭게 테스트해볼 수 있습니다.3) 웹기반 BApp에서 요청하는 트랜잭션 서명 수행Kaikas를 웹 기반의 Klaytn BApp과도 연동해 이용할 수 있습니다. BApp에서 요청하는 모든 종류의 트랜잭션을 Kaikas를 이용해 대신 서명할 수 있습니다.Klaytn의 주요 특징인 ‘수수료 대납(fee delegation)’도 Kaikas에서 처리할 수 있습니다. BApp 개발자나 운영자라면 수수료 대납 트랜잭션에 대한 서명을 요청하거나, 수수료 납부를 위한 서명을 Kaikas로 할 수 있습니다.첨부 이미지: 카이카스 스크린샷Kaikas 관련 자주 묻는 질문:1) Kaikas와 Klip은 무엇이 다른가요?Klip은 카카오톡과 연동해 모바일 환경에서 구현될 디지털 자산 지갑입니다. 블록체인에 익숙하지 않은 사용자들도 쉽고 간편하게 자신의 스마트폰으로 Klaytn 기반 토큰과 NFT 등을 주고받을 수 있습니다. 지갑 주소나 프라이빗 키 등을 알지 못해도 블록체인 지갑의 다양한 기능을 이용할 수 있습니다.Kaikas는 크롬과 파이어폭스의 PC 웹 브라우저 확장 프로그램으로 구동됩니다. 단순한 토큰 전송과 수신을 넘어 Klaytn 기반 BApp과의 연동을 통한 서명, 수수료 대납 등의 추가 기능도 지원합니다. 지갑 주소나 프라이빗 키 등 블록체인의 기본적인 이해가 있는 사용자들을 위한 지갑입니다. 출시 시점부터 국문과 영문 서비스를 모두 제공합니다.2) Kaikas에서 토큰을 주고받을 때 수수료가 발생하나요?네, 토큰을 전송할 때 수수료가 발생합니다. 수수료는 토큰 전송 화면 가장 하단에 표시됩니다.3) Kaikas를 이용하면서 버그를 발견하거나 추가 궁금한 사항이 있으면 어디로 문의하면 되나요?‘Kaikas 메인 화면’ > ‘설정’ > ‘Kaikas 정보’ > ‘이메일 보내기’ 메뉴를 통해 문의해 주시기 바랍니다.Kaikas now available in Chrome and Firefox! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 03. 19

Let’s stay in touch.

We are launching our email newsletter.Our inaugural issue in Korean was sent out at the beginning of this month, and we will be regularly — every quarter — creating content, in both English and Korean, for our readers across the globe. We might send out surprise emails (!) when we have some major announcements to share.In our correspondence, sent from Ground X, we will do curated briefings of stories that you can find in this Medium blog. What’s more, we will cover content that do not necessarily fit into this blog structure, including our activities within the larger Ground X community, or even stories about us that are published elsewhere. The goal with this newsletter is to equip you with the most accurate, up-to-date information about us to assist you thrive in building our community and the greater ecosystem.We chose a quarterly schedule — with some surprises in between —to ensure that our email is never overwhelming and that the stories delivered are conclusive and relevant. You will have access to what we Klaytn and Ground X have been building, thinking, and dreaming.We hope this will be a welcome addition to your inbox. You can sign up by visiting the official Klaytn website. Or you can simply click here.Thank you![About Ground X]Ground X is the blockchain affiliate of the leading South Korean Internet company, Kakao. With a mission to trigger the mass adoption of blockchain experience for millions of users, Ground X is developing a public blockchain platform, Klaytn. Ground X invites businesses to not only offer cutting-edge blockchain-based services through Klaytn but also collectively operate the platform. Ground X is committed to making blockchain technology easy to reach and use, paving the road for a wider audience to appreciate its value. In doing so, Ground X also focuses on leveraging blockchain to drive social impact and creating a stable blockchain ecosystem. For more information, visit https://groundx.xyz.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Let’s stay in touch. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 03. 11

Kaikas: Experience the Klay...

안녕하세요.웹 브라우저에서 클레이튼(Klaytn) 기반 디지털 자산을 관리할 수 있는 지갑 ‘카이카스(Kaikas)’가 3월 출시됩니다.카이카스는 클레이(KLAY) 및 클레이튼 기반 토큰(KCT)들의 관리와 전송을 가능케 하는 디지털 지갑 서비스로, 크롬 및 파이어폭스 등의 웹 브라우저 확장 프로그램으로 동작합니다. 바오밥 테스트넷과 사이프러스 메인넷 외 사설 네트워크 연결을 통해 디지털 자산을 안전하고 빠르게 주고 받을 수 있습니다. 뿐만 아니라, 클레이튼 기반 블록체인 웹 애플리케이션에서 요청하는 모든 타입의 트랜잭션을 카이카스를 통해 대신 서명할 수 있습니다.카이카스에 대한 좀 더 자세한 정보는 추후 미디엄 페이지 및 그라운드X 공식 뉴스레터를 통해 다시 공개될 예정입니다.감사합니다.Today we are excited to share a sneak preview of Kaikas, a browser extension providing a secure means to interact with the Klaytn network.Kaikas is a digital wallet functioning as an extension in your Chrome or Firefox browser. You can connect to the Baobab testnet or the Cypress mainnet, or even your private network to manage your Klaytn-based assets including KLAY and Klaytn-based tokens. Kaikas also allows you to sign requests from Klaytn-based web BApps (Blockchain Applications).Stay tuned to our official Medium page and newsletter for more information on the upcoming Kaikas.Thank you.-[Klaytn에 대하여]Klaytn은 한국 최대의 모바일 플랫폼 카카오의 블록체인 전문 계열사인 그라운드X가 개발한 퍼블릭 블록체인 플랫폼이다. 블록체인 기술의 가치와 유용성을 증명해 블록체인 기술을 대중화하는 것을 목표로 하고 있다. 이를 위해 이용자들이 쉽게 블록체인 기술을 접할 수 있도록 기존 블록체인 플랫폼이 가지고 있는 이용자 경험(UX)의 한계점을 개선하고, 직관적이고 쉬운 개발 환경을 만들고자 한다. 또한, 수백만명 이상의 이용자들을 대상으로 하는 블록체인 기술 기반의 다양한 서비스들이 시장에 나올 수 있도록 뛰어난 성능을 갖춘 플랫폼으로 개발되었다.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.facebook.com/groups/klaytndevelopers/https://www.linkedin.com/company/klaytnKaikas: Experience the Klaytn wallet in your browser was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 03. 04

넥스트 인터넷을 향한 그라운드X의 항해를 시작하며

안녕하세요 그라운드X 제이슨(한재선)입니다.3월이면 그라운드X를 설립한지 만 2년이 됩니다. 블록체인 업계는 롤러코스터처럼 많은 변화를 겪었고 그라운드X도 짧은 시간동안 응축된 경험을 하였습니다. 작년까지 그라운드X의 목표는 실용적인 블록체인 플랫폼을 런칭하고 기반 환경을 다지는 것이었습니다. 작년 6월 클레이튼(Klaytn)을 정식 런칭하고 70여개 이상의 서비스 파트너를 확보하면서 블록체인 사업을 위한 기반 환경은 성공적으로 구축했습니다. 올해는 그 기반 위에 본격적으로 실용적인 케이스들이 등장하는 원년이 될 것입니다. 이번 글에서는 2020년 그라운드X의 사업 방향에 대해 큰 그림을 설명드리겠습니다. 그 전에 지금까지 그라운드X의 성과에 대해 정리한 미디어킷을 공유드리고자 합니다.그라운드X 클레이튼 미디어킷 발행 — 2년간의 집대성, 그리고 향후 방향올해는 그라운드X 사업이 국내외에 본격적으로 알려지는 원년이 될 것입니다. 그 첫번째 결과물이 지금까지 2년의 성과를 집대성한 그라운드X 미디어킷을 발행하는 것입니다. 클레이튼 소개부터, 거버넌스 카운실 현황, 서비스 파트너 현황, 클레이튼 커뮤니티 구축을 위한 노력, 소셜 임팩트 활동 등 그라운드X가 수행했던 거의 모든 활동을 하나의 파일로 모았습니다. 또한, 올해 주요한 사업 계획도 함께 공개합니다. 앞으로 미디어킷을 정기적으로 업데이트해서 발행하도록 하겠습니다.미디어킷 다운로드 링크: https://www.klaytn.com/GroundX-Klaytn-MediaKit-2020Q1.pdf그라운드X 뉴스레터 발행 — 그라운드X와 클레이튼에 대한 가장 공신력있는 채널두번째 노력으로 그라운드X 뉴스레터를 발행합니다. 그라운드X 개발과 사업 현황에 대해 정기적으로 업데이트하고, 주요 뉴스나 행사가 있을 때 가장 빠르게 소식을 전해 드릴 예정입니다. 그라운드X 공식 뉴스 채널이기 때문에 클레이튼이나 여러 사업에 대해 가장 정확한 정보를 받아 볼 수 있습니다. 그라운드X와 클레이튼에 관심있는 분들은 아래 링크 통해서 뉴스레터에 가입하시기 바랍니다.뉴스레터 가입 주소: https://www.groundx.xyz/news/subscribe블록체인 대중화, 긴 여정의 시작작년까지 그라운드X의 목표는 블록체인의 대중화(Mass Adoption)였습니다. 블록체인이 가진 잠재력에 비해 블록체인 기술의 보급이 더뎠습니다. 여러 가지 이유가 있겠지만, 1) 기술의 진입장벽이 높고, 2) 사용자 접점이 부족하며, 3) 가치를 증명할 서비스가 부재한 것이 주요한 원인이라 생각합니다. 이 세가지 요인은 서로서로 물리면서 닭과 달걀의 문제를 안고 있어 풀기 쉽지 않았습니다. 그라운드X는 작년까지 구축한 클레이튼 환경을 기반으로 세 가지 문제를 풀어보려고 합니다. 2020년을 블록체인 대중화의 원년으로 만들 것입니다. 하지만, 새로운 기술의 수용은 공급자만의 노력으로 될 수 있는 것이 아니라 사용자 행동의 변화, 사회 요구와의 부합 등 여러 요인들에 의해 차근차근 진행되는 것입니다. 블록체인의 대중화도 어느 순간 뚝딱하고 완료되는 것이 아니라 수년에 걸쳐 진행될거라 생각합니다. 돌이켜보면 블록체인 사업이라는 롤러코스터를 타고 있다보니 왜곡된 시간 감각에 조급함이 앞서지 않았나 회고해 봅니다. 이제는 현실에 발을 붙이고 좀 더 긴 안목으로 블록체인 사업을 바라볼 때입니다.Building The Next Internet by Blockchain — 그라운드X 비전지난 2년의 여정을 마치고 앞으로 좀 더 긴 호흡으로 블록체인 여정을 생각하며 새롭게 그라운드X의 이정표를 정했습니다. Building The Next Internet by Blockchain. 블록체인으로 새로운 인터넷을 구축하는 것입니다. 인터넷은 전 세계의 정보와 데이터를 엮어서 글로벌 단일 네트워크를 만들고 모든 사람과 기업, 서비스, 기기들이 연결되는 온라인 세상을 열었습니다. 하지만 현재 온라인 세상은 많은 문제를 안고 있습니다. 익명성으로 인한 가짜 뉴스와 악성 댓글 문제, 온라인 순위 조작 이슈, 데이터 집중으로 인한 데이터 유출과 프라이버시 문제 등 단편적인 해결책 보다 인터넷의 근본적인 구조까지 재검토하는 노력이 필요한 때입니다.블록체인은 인터넷의 한계를 극복할 수 있는 잠재력을 가지고 있습니다. 블록체인은 인터넷에 신뢰 계층을 더해 익명성 우려를 개선할 수 있고, 가치 전송 계층을 추가해 글로벌로 초연결된 온라인 세상을 열어 줄 수 있습니다. 또한 블록체인과 암호학을 통해 데이터 프라이버시를 강화하며 데이터 산업을 활성화할 수 있습니다. 이것은 현재의 인터넷을 다른 차원의 넥스트 인터넷으로 안내할 것입니다.그라운드X는 블록체인이 구축할 넥스트 인터넷 세상을 주도할 것입니다. 지금까지 클레이튼 출시를 비롯해 블록체인의 기반 환경을 구축하는데 집중해 왔습니다. 앞으로 클레이튼 위에서 넥스트 인터넷을 이끌기 위한 계층과 서비스를 개발하는데 주력할 것입니다. 크게 세 가지 방향으로 진행합니다.클립(Klip) — 블록체인의 핵심 클라이언트로 진화할 디지털 자산 관리 지갑 서비스 출시KAS(Klaytn API Service) — 클레이튼 기반으로 블록체인 서비스 개발을 쉽게 만들어 다양한 블록체인 응용 기술 확산블록체인 애플리케이션 — 넥스트 인터넷의 기본 프로토콜을 구현하는 다양한 블록체인 애플리케이션 제공Toward The Next Internet with Klaytn클립(Klip) — 디지털 자산 관리 지갑 서비스클립은 사용자의 디지털 자산을 쉽고 편리하게 관리해 주는 개인 디지털 지갑 서비스입니다. 클립은 카카오톡을 통해 손쉽게 접속할 수 있고, 메신저만큼 쉬운 사용자 경험을 제공합니다. 그리고 개인키 관리를 클립이 대신 하면서 블록체인 지식없이도 쉽게 사용할 수 있습니다. 클레이튼에서 생산되는 다양한 디지털 자산(가상자산과 가상 아이템 등)을 모으고 소비할 수 있으며, 클레이튼 기반의 다양한 블록체인 서비스를 경험해 볼 수 있습니다. 클립은 메신저를 통해 사용자 접점을 확대하여 블록체인 업계의 새로운 활력을 불어 넣어 줄 것입니다.클립은 올해 상반기에 카카오톡과 연동된 웹 애플리케이션 형태로 처음 출시됩니다. 이후 카카오톡과 독립된 모바일앱도 출시하여 웹과 모바일 버전 양쪽을 지원할 예정입니다. 또한, 브라우저 확장 지갑인 카이카스(Kaikas)도 상반기 내로 출시하여 웹 기반의 서비스를 지원할 것입니다. 하반기에는 글로벌 클립을 출시하면서 해외 시장으로 진출할 것입니다.KAS(Klaytn API Service) — Make Blockchain InvisibleKAS는 클레이튼 기반에서 블록체인 서비스 개발 허들을 대폭 낮춘 블록체인 API 서비스입니다. 일반적으로 블록체인을 활용하기 위해서 스마트 컨트랙트라는 새로운 형태의 프로그래밍을 해야 하고, 블록체인 플랫폼 환경에 익숙해져야 합니다. 하지만 KAS를 이용하면 블록체인 서비스 개발의 어려움을 해소해 쉽게 블록체인 서비스를 개발할 수 있습니다. 궁극적으로 블록체인의 여러 기능을 클라우드 서비스화하여, 블록체인 기술을 몰라도 블록체인을 활용할 수 있는 단계로 진화할 것입니다.상반기에는 클립을 중심으로 내부 버전으로 출시할 예정입니다. 클립도 클레이튼을 사용하는 블록체인 서비스로 KAS가 필요하기 때문에, 클립을 타깃 서비스로 하여 실용적인 KAS를 구현할 계획입니다. 또한, 외부 서비스 파트너와 협력하여 제한적으로 베타 버전을 출시합니다. 하반기에 정식으로 선보여 누구나 사용할 수 있는 환경을 제공할 것입니다. 동시에 2021년을 목표로 글로벌 출시를 준비하고 있습니다.Blockchain Applications — 넥스트 인터넷을 위한 기반 프로토콜그라운드X는 블록체인 플랫폼과 지갑과 같은 기반 환경을 제공하는데 멈추지 않습니다. 넥스트 인터넷을 위한 기반 프로토콜을 추가해 나갈 것입니다. 이것은 그라운드X 단독으로 할 수 없는 일이며, 그라운드X가 모두 할 필요도 없습니다. 클레이튼 생태계의 파트너들과 커뮤니티와 함께 할 때 가능하다고 믿습니다. 블록체인이 만들어 내는 넥스트 인터넷의 서비스에는 다음과 같은 후보들이 있습니다.넥스트 인터넷의 신뢰 계층을 더하는 ID/인증 서비스입니다. DID(Decentralized Identity)라는 표준이 만들어지고 있고, 온라인 아이디를 넘어 신분 증명, 자격 증명 등의 인증까지 확대된 신뢰 기반 서비스를 인터넷에서 만날 수 있습니다.넥스트 인터넷의 즉각적인 가치 전송 계층을 더하는 디지털 자산 서비스입니다. 가치를 정의하는 표준적인 포맷과 스마트 컨트랙트를 통한 표준화된 프로세스를 통해 글로벌 규모의 디지털 자산 거래를 가능하게 합니다.넥스트 인터넷의 데이터 프라이버시 계층을 더하는 데이터 주권 서비스입니다. 데이터 소유권과 이용권을 사용자가 통제하고, 데이터 보안을 강화하여 프라이버시가 전제된 데이터 산업을 만들어 낼 것입니다.위 애플리케이션은 예시일 뿐입니다. 이것보다 다양한 애플리케이션이 시도될 것이고, 그 중 일부는 넥스트 인터넷을 구성하는 기본 프로토콜로 자리 잡을 것입니다. 다만, 인터넷이나 웹이 그랬듯이 블록체인 역시 시간이 걸릴 것입니다. 그라운드X는 다음 세대를 위한 넥스트 인터넷을 만들기 위해 긴 호흡으로 퍼즐을 하나하나 맞춰갈 것입니다. 넥스트 인터넷을 만드는 원대한 항해에 함께 하실 크루를 모집하고 있습니다. 어서 승선하시기 바랍니다.그라운드X 합류하기[채용 중인 포지션]프론트앤드(Frontend) 개발자 (시니어)모바일앱(Android, iOS) 개발자백앤드(Backend) 개발자블록체인 플랫폼 개발자블록체인 플랫폼 SDK 개발자클립(블록체인 지갑 서비스) 서비스 기획자프로덕트 매니저(Product Manager)Technical Writer넥스트 인터넷을 향한 그라운드X의 항해를 시작하며 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 02. 18

Klaytn Governance Council: ...

Established in 1945, Amorepacific is the leading Korea-based beauty company with a portfolio of over 20 cosmetics, personal care, and healthcare brands. The company’s research hubs located around the world are dedicated to developing sustainable R&D that combine that best of natural Asian ingredients and advanced bio-technology.“Together with the Council members, Amorepacific will work towards further strengthening the Klaytn platform as well as creating innovative blockchain use cases to trigger the growth of the blockchain ecosystem.” — Pilbong Jang, the Technical Planning Team LeaderFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Amorepacific was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 02. 13

Klaytn Governance Council: ...

Huobi, the leading global blockchain and digital assets business, provides a secure and convenient trading platform and management services for millions of users across over 130 countries.“The new partnership advances Huobi’s mission to make blockchain technology more accessible to users across the globe. We look forward to working closely with other Council members to accelerate the growth of the whole blockchain ecosystem.” — Ciara Sun, the Vice President of Global BusinessFor more information on Klaytn Governance Council, visit our Council pageon our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Huobi was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 02. 10

caver-js로 내 계정의 키를 바꾸는 방법 #...

caver-js로 내 계정의 키를 바꾸는 방법 #3 — AccountKeyRoleBasedKlaytn에서는 키와 주소를 분리하였기 때문에, 계정에서 사용하는 키를 변경할 수 있습니다. 아래의 포스팅을 통해 caver-js로 계정의 키를 바꾸는 다양한 방법들에 대해 알아보고자 합니다.caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPubliccaver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSigcaver-js로 내 계정의 키를 바꾸는 방법 #3 — AccountKeyRoleBased이 포스팅에서는 caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPublic과 caver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSig에 이어, 마지막으로 caver-js를 사용하여 계정의 키를 AccountKeyRoleBased로 변경하는 방법에 대해서 설명합니다. 다양한 AccountKey에 대한 설명은 Klaytn Docs를 참고하세요.이 문서는 실습을 위주로 설명되며, 실습을 위한 환경이 모두 갖춰진 상태에서 설명이 진행됩니다. 실습 환경이 아직 구축되지 않았다면 caver-js Getting Started — Prerequisites 을 참고하세요.각 파트에서는 코드의 일부분을 설명하며, 전체 예제 코드는 10.예제코드에서 확인할 수 있습니다.1. 계정 만들기먼저 실습에서 사용될 계정을 생성합니다. 이 계정은 트랜잭션을 실제로 전송하여 네트워크에 저장된 계정의 키를 업데이트하기 때문에 충분한 KLAY를 가지고 있어야 합니다. 이 실습은 Baobab Testnet에서 진행되므로, Klaytn Wallet의 Baobab Faucet을 통하여 testnet KLAY를 받을 수 있습니다.2. caver-js in-memory wallet에 계정 추가하기이 실습에서는 caver-js의 in-memory wallet을 사용합니다. caver-js의 in-memory wallet에 계정이 추가되어 있으면, 트랜잭션에 서명할 때 따로 사용할 키를 지정해 주지 않아도 in-memory wallet 내부의 계정의 키로 서명하여 결과를 리턴합니다.그럼 in-memory wallet에 계정을 추가하기 위해 위에서 생성한 계정의 address와 private key를 사용하여 아래와 같이 Account 인스턴스를 생성합니다.let account = caver.klay.accounts.createWithAccountKey('0x{address}', '0x{private key}')Account 인스턴스를 생성했다면 caver.klay.accounts.wallet.add를 사용하여 간단하게 in-memory wallet에 계정을 추가할 수 있습니다.caver.klay.accounts.wallet.add(account)3. 새로운 개인키 오브젝트 생성하기AccountKeyRoleBased로 업데이트하기 위해서는 각 역할별로 새롭게 사용할 키를 정의해야 합니다. 여기서는 caver.klay.accounts.create()를 통해 랜덤한 private key를 사용합니다. 만약 따로 사용하고자 하는 private key들이 있는 경우, 이를 사용해도 됩니다.caver.klay.accounts.create()는 기본적으로 주소와 키가 decoupling되지 않은 계정을 생성하므로, keys 프로퍼티는 하나의 private key string을 리턴합니다. 아래와 같이 caver.klay.accounts.create를 사용하여 각 역할에 대해서 사용할 하나 혹은 여러 개의 private key를 생성할 수 있습니다.const newKeyObject = { transactionKey: [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys, caver.klay.accounts.create().keys], updateKey: caver.klay.accounts.create().keys, feePayerKey: [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys],}위의 예제를 보면, newKeyObject 내부에 역할에 대해서 각각 다른 키를 정의합니다. 역할은 먼저 일반 트랜잭션에 서명할 때에 사용되는 transactionKey, 계정을 업데이트하는 트랜잭션에 서명할 때에 사용되는 updateKey 그리고 마지막으로 수수료를 대납 할 때에 사용되는 feePayerKey 이렇게 3가지에 대해서 정의할 수 있습니다.4. AccountForUpdate 인스턴스 만들기AccountForUpdate 클래스는 계정을 업데이트할 때에 필요한 정보들을 포함하는 클래스입니다. AccountKeyRoleBased로 업데이트하는 경우, 계정의 주소, 그리고 각 역할 별로 하나의 키를 사용하는 경우에는 하나의 public key, 또는 여러 개의 키를 사용하는 경우에는 그 키의 threshold와 weight가 정의된 여러 개의 public key가 필요합니다.계정의 주소와 위에서 역할 별로 정의한 키들이 있으니, 추가적인 정보가 필요한 역할에 대해서 threshold와 weight를 정의하기 위한 options 오브젝트를 아래와 같이 생성해 줍니다.const options = { transactionKey: { threshold: 2, weight: [1,1,1] }, feePayerKey: { threshold: 2, weight: [1,1] },}newKeyObject에서 여러 개의 키를 사용하는 역할은 transactionKey와 feePayerKey이므로 이 2개의 역할에 대해서 추가적으로 threshold와 각 키의 weight를 정의한 것을 알 수 있습니다.아래와 같이 계정의 주소와 역할 별로 정의된 키, 그리고 options 오브젝트를 사용하여 AccountForUpdate 인스턴스를 생성할수 있습니다.const key = caver.klay.accounts.createAccountForUpdate(account.address, newKeyObject, options)만약 새롭게 정의한 키 오브젝트에서 여러 개의 private key를 사용하는 역할이 있는데, 해당 역할에 대한 options를 정의하지 않고 AccountForUpdate 인스턴스를 생성하려고 한다면 아래와 같은 에러가 발생합니다.Error: For AccountKeyMultiSig, threshold and weight should be defined in options object.생성된 AccountForUpdate 인스턴스를 console.log로 출력하면 아래와 같이 keyForUpdate에 3가지 역할에 대해서 필요한 정보들이 저장되어 있는 것을 확인할 수 있습니다.AccountForUpdate { address: '0x756d4de778ab1b53e82a785d330845e8e9fe6b94', keyForUpdate: { roleTransactionKey: { multisig: { threshold: 2, keys: [ { weight: 1, publicKey: '0x1a836...' }, { weight: 1, publicKey: '0x9b776...' }, { weight: 1, publicKey: '0xd2924...' } ] } }, roleAccountUpdateKey: { publicKey: '0x4851a...' }, roleFeePayerKey: { multisig: { threshold: 2, keys: [ { weight: 1, publicKey: '0x1a836...' }, { weight: 1, publicKey: '0x9b776...' } ] } } }}5. 트랜잭션 만들기AccountForUpdate 인스턴스를 생성했다면, 이를 사용하여 아래와 같이 ‘ACCOUNT_UPDATE’ 타입의 트랜잭션을 간단하게 생성할 수 있습니다.const accountUpdateTx = { type: ‘ACCOUNT_UPDATE’, from: account.address, key, gas: 150000,}이제 생성된 트랜잭션을 실제로 네트워크로 전송하는 작업만 남아있습니다!6. 트랜잭션 전송하기트랜잭션을 생성했다면, 이를 실제로 네트워크에 전송해 봅시다. 이 트랜잭션이 네트워크에서 처리되면 계정의 키가 변경되므로, 기존의 키는 더이상 사용할 수 없습니다. 새롭게 사용하고자 하는 역할 별로 정의된 키를 분실한다면, 더이상 해당 계정을 사용할 수 없으니 주의해야 합니다.아래와 같이 caver.klay.sendTransaction을 사용하여 트랜잭션을 네트워크에 전송할 수 있습니다.const receipt = await caver.klay.sendTransaction(accountUpdateTx)위의 코드가 실행되면 트랜잭션 처리 결과가 transaction receipt 형태로 아래와 같이 리턴됩니다.{ blockHash: ‘0xbbfb42228ef98c5992bb8f3ad29fb6dbce2ff9b5d4ccf2e233e3266e6887a35d’, blockNumber: 15517722, contractAddress: null, from: ‘0xe8a2de42c012ea9cb7cb60036671523439a44135’, gas: ‘0x249f0’, gasPrice: ‘0x5d21dba00’, gasUsed: 141000, key: ‘0x05f8e8b87204f86f02f86ce301a10351c7ea98ed4f8bb03a06b5cc352067f1d8e44ed4c986c8d2694a3e48c7731563e301a1038f3da8157319d015b624b616628fe2ba7dbe4a73c5a37fd52b83d794223f3c8ae301a102768b55fca7f16be732a03252fbaf0dc621bfefeb54f03bf197f4a2ee144ebccca302a103ca12e0bf5f5ab12da7337fc0089d243013f7d55fc5d594a736feb74a2ebec87bb84e04f84b02f848e301a103c9dcaa2fb6b2fbbacf734db904a54e9881ed834b823d9d0afcf5389e303b347ae301a1034c80e98e24fd790d01f6bcc29ee29f7fcf8e01f9a1b3685a2e872ab28bcba69d’, … status: true, transactionHash: ‘0x8e93859a980ddb3aff80718d223e8ad0a998a0ad1bdcef697cc1931246a2558a’, transactionIndex: 0, type: ‘TxTypeAccountUpdate’, typeInt: 32,}위의 receipt을 보면 status가 true로 트랜잭션이 성공적으로 처리되었으며, 트랜잭션의 타입은 TxTypeAccountUpdate이고 key필드에는 새롭게 업데이트한 AccountKeyRoleBased가 인코딩 된 형태로 리턴되는 것을 확인할 수 있습니다.7. AccountKey 확인하기트랜잭션이 성공적으로 처리되었다면 네트워크에 저장된 계정의 키가 변경됩니다. caver.klay.getAccountKey를 사용하여 이를 확인할 수 있습니다.const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address)위의 결과를 출력하면 아래와 같이 Klaytn 네트워크에 저장된 계정의 키를 알 수 있습니다. 계정의 키를 AccountKeyRoleBased으로 업데이트 하였으므로, caver.klay.getAccountKey 결과의 keyType은 5로 출력되는 것을 확인할 수 있습니다. Account Key Type ID에 대한 자세한 내용은 Klaytn Docs를 참고해 주세요.{ keyType: 5, key: [ { keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: ‘0x19cb3…’, y: ‘0x71970…’ } }, { weight: 1, key: { x: ‘0x760ac…’, y: ‘0x4465f…’ } }, { weight: 1, key: { x: ‘0xd35b1…’, y: ‘0x58525…’ } }, ], }, }, { keyType: 2, key: { x: ‘0x462ce…’, y: ‘0xf8f64…’ }, }, { keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: ‘0x3a47e…’, y: ‘0xea492…’ } }, { weight: 1, key: { x: ‘0x4b4c1…’, y: ‘0xd5b08…’ } }, ], }, }, ],}8. in-memory key 업데이트트랜잭션이 성공적으로 처리되어 계정의 키가 업데이트 되었다면, 이제 트랜잭션에 서명할 때에 업데이트된 키를 사용해야 합니다.지금 in-memory wallet의 계정에서 사용하는 키는 업데이트되기 전의 키이므로, 트랜잭션을 전송하면 실패하게 됩니다. in-memory wallet의 계정에서 사용하는 키가 업데이트되지 않은 상태에서 트랜잭션을 전송하게 되면 아래와 같은 에러가 발생하게 됩니다.Error: Returned error: invalid transaction v, r, s values of the sender그렇기 때문에 계정의 키를 업데이트 했다면 따로 in-memory wallet에 저장된 계정의 키도 업데이트해야 합니다.아래와 같이 caver.klay.accounts.wallet.updateAccountKey를 사용하여 in-memory 내 계정에서 사용하는 key를 업데이트 합니다.caver.klay.accounts.wallet.updateAccountKey(account.address, newKeyArray)9. 업데이트된 계정으로 트랜잭션 전송하기계정의 키가 정상적으로 업데이트된 것을 확인했다면, 이제 업데이트된 계정으로 트랜잭션을 전송해 볼까요?네트워크에 저장되는 계정의 키가 업데이트 되었기 때문에, 트랜잭션을 전송할 때 업데이트된 키를 사용하여 서명해야 합니다. 8.in-memory key 업데이트에서 in-memory wallet에 있는 계정의 키도 업데이트 했으므로, 트랜잭션을 전송하면 새롭게 업데이트된 키로 서명하여 전송됩니다.그럼 아래와 같이 트랜잭션을 정의해 볼까요? 여기서는 ‘VALUE_TRANSFER’타입의 트랜잭션을 전송합니다. 다양한 타입의 트랜잭션에 대한 전송 방법은 Klaytn Docs를 참고하세요.const valueTransferTx = { type: ‘VALUE_TRANSFER’, from: account.address, to: account.address, value: 1, gas: 70000,}그럼 위에서 생성한 트랜잭션을 caver.klay.sendTransaction을 사용하여 전송할 수 있습니다.const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx)10. 예제 코드아래는 이 문서에서 설명한 전체 코드입니다. testAddress와 testPrivateKey를 위에서 생성한 계정의 정보로 변경한 후 실행해볼 수 있습니다.const Caver = require('caver-js')const caver = new Caver('https://api.baobab.klaytn.net:8651/')const testAddress = '0x{addresss}'const testPrivateKey = '0x{private key}'test()async function test () { console.log(`=====> Example for account key update to AccountKeyRoleBased`) // Add account to in-memory wallet let account = caver.klay.accounts.createWithAccountKey(testAddress, testPrivateKey) caver.klay.accounts.wallet.add(account) // Create new private key object const newKeyObject = { transactionKey: [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys, caver.klay.accounts.create().keys], updateKey: caver.klay.accounts.create().keys, feePayerKey: [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys], } console.log(`new private key object =>`) console.log(newKeyObject) // Create options object for defining threshold and weight const options = { transactionKey: { threshold: 2, weight: [1,1,1] }, feePayerKey: { threshold: 2, weight: [1,1] }, } // Create AccountForUpdate instance const key = caver.klay.accounts.createAccountForUpdate(account.address, newKeyObject, options) console.log(`AccountForUpdate instance => `) console.log(key) // Create transaction object const accountUpdateTx = { type: 'ACCOUNT_UPDATE', from: account.address, key, gas: 150000, } // Send transaction const receipt = await caver.klay.sendTransaction(accountUpdateTx) console.log(`Account Update Transaction receipt => `) console.log(receipt) // Get accountKey from network const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address) console.log(`Account address => ${account.address}`) console.log(`accountKeyFromNetwork =>`) console.log(accountKeyFromNetwork) // Update account's key in in-memory wallet caver.klay.accounts.wallet.updateAccountKey(account.address, newKeyObject) const valueTransferTx = { type: 'VALUE_TRANSFER', from: account.address, to: account.address, value: 1, gas: 70000, } const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx) console.log(`After account update value transfer transaction receipt => `) console.log(valueTxReceipt)}위의 실습을 통하여 계정의 키를 AccountKeyRoleBased로 변경하는 방법에 대해서 이해가 되셨나요?이 포스팅을 마지막으로 계정의 키를 업데이트하는 방법에 대해서 설명을 마칩니다. 다음 포스팅은 새로운 주제에 대해서 말씀드릴 예정입니다. 혹시 이 문서의 실습을 따라하는 데에 어려움이 있거나 질문이 있다면 이 포스팅에 댓글 부탁드리겠습니다.caver-js로 내 계정의 키를 바꾸는 방법 #3 — AccountKeyRoleBased was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 02. 04

caver-js로 내 계정의 키를 바꾸는 방법 #...

caver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSigKlaytn은 키와 주소를 분리하여 계정에서 사용하는 키를 변경할 수 있습니다. 아래의 포스팅을 통해 caver-js로 계정의 키를 바꾸는 다양한 방법들에 대해 알아보고자 합니다.caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPubliccaver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSigcaver-js로 내 계정의 키를 바꾸는 방법 #3 — AccountKeyRoleBased이 포스팅에서는 caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPublic에 이어, caver-js를 사용하여 계정의 키를 AccountKeyWeightedMultiSig로 변경하는 방법에 대해서 설명합니다. 다양한 AccountKey에 대한 설명은 Klaytn Docs를 참고하세요.이 문서는 실습을 위주로 설명되며, 실습을 위한 환경이 모두 갖춰진 상태에서 설명이 진행됩니다. 실습 환경이 아직 구축되지 않았다면 caver-js Getting Started — Prerequisites 을 참고하세요.각 파트에서는 코드의 일부분을 설명하며, 전체 예제 코드는 10.예제코드에서 확인할 수 있습니다.1. 계정 만들기먼저 실습에서 사용될 계정을 생성합니다. 이 계정은 트랜잭션을 실제로 전송하여 네트워크에 저장된 계정의 키를 업데이트하기 때문에 충분한 KLAY를 가지고 있어야 합니다. 이 실습은 Baobab Testnet에서 진행되므로, Klaytn Wallet의 Baobab Faucet을 통하여 testnet KLAY를 받을 수 있습니다.2. caver-js in-memory wallet에 계정 추가하기이 실습에서는 caver-js의 in-memory wallet을 사용합니다. caver-js의 in-memory wallet에 계정이 추가되어 있으면, 트랜잭션에 서명할 때 따로 사용할 키를 지정해 주지 않아도 in-memory wallet 내부의 계정의 키로 서명하여 결과를 리턴합니다.먼저 in-memory wallet에 계정을 추가하기 위해 위에서 생성한 계정의 address와 private key를 사용하여 아래와 같이 Account 인스턴스를 생성합니다.let account = caver.klay.accounts.createWithAccountKey('0x{address}', '0x{private key}')Account 인스턴스를 생성했다면 caver.klay.accounts.wallet.add를 사용하여 간단하게 in-memory wallet에 계정을 추가할 수 있습니다.caver.klay.accounts.wallet.add(account)3. 새로운 개인키 배열 생성하기AccountKeyWeightedMultiSig로 업데이트하기 위해서는 새롭게 사용할 여러 개의 private key가 필요합니다. 여기서는 caver.klay.accounts.create()를 통해 랜덤한 private key를 사용합니다. 만약 따로 사용하고자 하는 private key들이 있는 경우, 이를 사용해도 됩니다.caver.klay.accounts.create()는 기본적으로 주소와 키가 decoupling되지 않은 계정을 생성하므로, keys 프로퍼티는 하나의 private key string을 리턴합니다. 아래와 같이 caver.klay.accounts.create를 사용하여 여러 개의 private key를 생성할 수 있습니다.const newKeyArray = [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys, caver.klay.accounts.create().keys]4. AccountForUpdate 인스턴스 만들기AccountForUpdate 클래스는 계정을 업데이트할 때에 필요한 정보들을 포함하는 클래스입니다. AccountKeyWeightedMultiSig로 업데이트하는 경우, 계정의 주소, threshold, 그리고 weight가 정의된 여러 개의 public key가 필요합니다.계정의 주소와 위에서 정의한 새로운 private key 배열이 있으니, 추가적으로 threshold와 weight를 정의하기 위한 options 오브젝트를 아래와 같이 생성해 줍니다.const options = { threshold: 2, weight: [1,1,1] }위와 같이 정의하면, 해당 AccountKeyWeightedMultiSig는 threshold가 2이며, 각 키는 1만큼의 weight를 가지게 됩니다. 즉, 2-of-3 multisig 계정이 만들어지게 됩니다.아래와 같이 계정의 주소와 private key 배열, 그리고 options 오브젝트를 사용하여 AccountForUpdate 인스턴스를 생성할수 있습니다.const key = caver.klay.accounts.createAccountForUpdate(account.address, newKeyArray, options)만약 options를 정의하지 않고 AccountForUpdate 인스턴스를 생성하려고 한다면 아래와 같은 에러가 발생합니다.Error: For AccountKeyMultiSig, threshold and weight should be defined in options object.생성된 AccountForUpdate 인스턴스를 console.log로 출력하면 아래와 같이 keyForUpdate에 threshold와 각각 weight가 정의된 publicKey가 저장되어 있는 것을 확인할 수 있습니다.AccountForUpdate { address: '0x756d4de778ab1b53e82a785d330845e8e9fe6b94', keyForUpdate: { multisig: { threshold: 2, keys: [ { weight: 1, publicKey: '0x1a836...' }, { weight: 1, publicKey: '0x9b776...' }, { weight: 1, publicKey: '0xd2924...' } ] } }}5. 트랜잭션 만들기AccountForUpdate 인스턴스를 생성했다면, 이를 사용하여 아래와 같이 ‘ACCOUNT_UPDATE’ 타입의 트랜잭션을 간단하게 생성할 수 있습니다.const accountUpdateTx = { type: 'ACCOUNT_UPDATE', from: account.address, key, gas: 90000,}이제 생성된 트랜잭션을 실제로 네트워크로 전송하는 작업만 남아있습니다!6. 트랜잭션 전송하기트랜잭션을 생성했다면, 이를 실제로 네트워크에 전송해 봅시다. 이 트랜잭션이 네트워크에서 처리되면 계정의 키가 변경되므로, 기존의 키는 더 이상 사용할 수 없습니다. 새롭게 사용하고자 하는 여러 개의 private key를 분실한다면, 더이상 해당 계정을 사용할 수 없으니 주의해야 합니다.아래와 같이 caver.klay.sendTransaction을 사용하여 트랜잭션을 네트워크에 전송할 수 있습니다.const receipt = await caver.klay.sendTransaction(accountUpdateTx)위의 코드가 실행되면 트랜잭션 처리 결과가 transaction receipt 형태로 아래와 같이 리턴됩니다.{ blockHash: '0x489ee0096022ecfa257dacf34ab747d508501fc378738752ee83dbc0815d2492', blockNumber: 15517192, contractAddress: null, from: '0x756d4de778ab1b53e82a785d330845e8e9fe6b94', gas: '0x15f90', gasPrice: '0x5d21dba00', gasUsed: 81000, key: '0x04f86f02f86ce301a1024270cad67838903e54ddd6b5e27981f490bc3de64f8cbd41aafe50b9e35a7d19e301a1028db97931f14c0cfe62b06823bd919bf9b422ad37fef72f8dc7b4d3c3c80f7777e301a102e1c98602222ea13676e4f02ad569955cbfe6190f014551c4aa92e261c839187e', ... status: true, transactionHash: '0x50a9f...', transactionIndex: 0, type: 'TxTypeAccountUpdate', typeInt: 32,}위의 receipt을 보면 status가 true로 트랜잭션이 성공적으로 처리되었으며, 트랜잭션의 타입은 TxTypeAccountUpdate이고 key필드에는 새롭게 업데이트한 AccountKeyWeightedMultiSig가 인코딩 된 형태로 리턴되는 것을 확인할 수 있습니다.7. AccountKey 확인하기트랜잭션이 성공적으로 처리되었다면 네트워크에 저장된 계정의 키가 변경됩니다. caver.klay.getAccountKey를 사용하여 이를 확인할 수 있습니다.const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address)위의 결과를 출력하면 아래와 같이 Klaytn 네트워크에 저장된 계정의 키를 알 수 있습니다. 계정의 키를 AccountKeyWeightedMultiSig으로 업데이트 하였으므로, caver.klay.getAccountKey 결과의 keyType은 4로 출력되는 것을 확인할 수 있습니다. Account Key Type ID에 대한 자세한 내용은 Klaytn Docs를 참고해 주세요.{ keyType: 4, key: { threshold: 2, keys: [ { weight: 1, key: { x: '0x9447c...', y: '0x1d09c...' } }, { weight: 1, key: { x: '0xb439e...', y: '0x9849a...' } }, { weight: 1, key: { x: '0xd1a96...', y: '0x385a0...' } }, ], },}8. in-memory wallet의 key 업데이트트랜잭션이 성공적으로 처리되어 계정의 키가 업데이트 되었다면, 이제 트랜잭션에 서명할 때에 업데이트된 키를 사용해야 합니다.지금 in-memory wallet의 계정에서 사용하는 키는 업데이트되기 전의 키이므로, 트랜잭션을 전송하면 실패하게 됩니다. in-memory wallet의 계정에서 사용하는 키가 업데이트되지 않은 상태에서 트랜잭션을 전송하게 되면 아래와 같은 에러가 발생하게 됩니다.Error: Returned error: invalid transaction v, r, s values of the sender그렇기 때문에 계정의 키를 업데이트 했다면 따로 in-memory wallet에 저장된 계정의 키도 업데이트해야 합니다.아래와 같이 caver.klay.accounts.wallet.updateAccountKey를 사용하여 in-memory 내 계정에서 사용하는 key를 업데이트 합니다.caver.klay.accounts.wallet.updateAccountKey(account.address, newKeyArray)9. 업데이트된 계정으로 트랜잭션 전송하기계정의 키가 정상적으로 업데이트된 것을 확인했다면, 이제 업데이트된 계정으로 트랜잭션을 전송해 볼까요?네트워크에 저장되는 계정의 키가 업데이트 되었기 때문에, 트랜잭션을 전송할 때 업데이트된 키를 사용하여 서명해야 합니다. 8.in-memory wallet의 key 업데이트에서 in-memory wallet에 있는 계정의 키도 업데이트 했으므로, 트랜잭션을 전송하면 새롭게 업데이트된 키로 서명하여 전송됩니다.그럼 아래와 같이 트랜잭션을 정의해 볼까요? 여기서는 ‘VALUE_TRANSFER’타입의 트랜잭션을 전송합니다. 다양한 타입의 트랜잭션에 대한 전송 방법은 Klaytn Docs를 참고하세요.const valueTransferTx = { type: 'VALUE_TRANSFER', from: account.address, to: account.address, value: 1, gas: 60000,}그럼 위에서 생성한 트랜잭션을 caver.klay.sendTransaction을 사용하여 전송할 수 있습니다.const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx)10. 예제 코드아래는 이 문서에서 설명한 전체 코드입니다. testAddress와 testPrivateKey를 위에서 생성한 계정의 정보로 변경한 후 실행해볼 수 있습니다.const Caver = require('caver-js')const caver = new Caver('https://api.baobab.klaytn.net:8651/')const testAddress = '0x{address}'const testPrivateKey = '0x{private key}'test()async function test () { console.log(`=====> Example for account key update to AccountKeyWeightedMultiSig`) // Add account to in-memory wallet let account = caver.klay.accounts.createWithAccountKey(testAddress, testPrivateKey) caver.klay.accounts.wallet.add(account) // Create new private key array const newKeyArray = [caver.klay.accounts.create().keys, caver.klay.accounts.create().keys, caver.klay.accounts.create().keys] console.log(`new private key array=> ${newKeyArray}`) // Create options object for defining threshold and weight const options = { threshold: 2, weight: [1,1,1] } // Create AccountForUpdate instance const key = caver.klay.accounts.createAccountForUpdate(account.address, newKeyArray, options) console.log(`AccountForUpdate instance => `) console.log(key) // Create transaction object const accountUpdateTx = { type: 'ACCOUNT_UPDATE', from: account.address, key, gas: 90000, } // Send transaction const receipt = await caver.klay.sendTransaction(accountUpdateTx) console.log(`Account Update Transaction receipt => `) console.log(receipt) // Get accountKey from network const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address) console.log(`Result of account key update to AccountKeyWeightedMultiSig`) console.log(`Account address => ${account.address}`) console.log(`accountKeyFromNetwork =>`) console.log(accountKeyFromNetwork) // Update account's key in in-memory wallet caver.klay.accounts.wallet.updateAccountKey(account.address, newKeyArray) const valueTransferTx = { type: 'VALUE_TRANSFER', from: account.address, to: account.address, value: 1, gas: 60000, } const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx) console.log(`After account update value transfer transaction receipt => `) console.log(valueTxReceipt)}위의 실습을 통하여 계정의 키를 AccountKeyWeightedMultiSig로 변경하는 방법에 대해서 이해가 되셨나요?다음 포스팅에서는 마지막으로 계정의 키를 AccountKeyRoleBased로 변경하는 방법에 대해서 설명할 예정입니다. 과정은 거의 동일하나, 역할에 대한 내용만 추가되므로 이 문서의 실습을 따라하고 이해하는 데에 문제가 없으셨다면 다음 포스팅도 쉽게 따라 하실 수 있습니다.caver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSig was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 01. 17

caver-js로 내 계정의 키를 바꾸는 방법 #...

caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPublicKlaytn은 키와 주소를 분리하여 계정에서 사용하는 키를 변경할 수 있습니다. 아래의 포스팅을 통해 caver-js로 계정의 키를 바꾸는 다양한 방법들에 대해 알아보고자 합니다.caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPubliccaver-js로 내 계정의 키를 바꾸는 방법 #2 — AccountKeyWeightedMultiSigcaver-js로 내 계정의 키를 바꾸는 방법 #3 — AccountKeyRoleBased이 포스팅에서는 caver-js를 사용하여 계정의 키를 AccountKeyPublic으로 변경하는 방법에 대해서 설명합니다. 다양한 AccountKey에 대한 설명은 Klaytn Docs를 참고하세요.이 문서는 실습을 위주로 설명되며, 실습을 위한 환경이 모두 갖춰진 상태에서 설명이 진행됩니다. 실습 환경이 아직 구축되지 않았다면 caver-js Getting Started — Prerequisites 을 참고하세요.각 파트에서는 코드의 일부분을 설명하며, 전체 예제 코드는 10.예제코드에서 확인할 수 있습니다.1. 계정 만들기먼저 실습에서 사용될 계정을 생성합니다. 이 계정은 트랜잭션을 실제로 전송하여 네트워크에 저장된 계정의 키를 업데이트하기 때문에 충분한 KLAY를 가지고 있어야 합니다. 이 실습은 Baobab Testnet에서 진행되므로, Klaytn Wallet의 Baobab Faucet을 통하여 testnet KLAY를 받을 수 있습니다.2. caver-js in-memory wallet에 계정 추가하기이 실습에서는 caver-js의 in-memory wallet을 사용합니다. caver-js의 in-memory wallet에 계정이 추가되어 있으면, 트랜잭션에 서명할 때 따로 사용할 키를 지정해 주지 않아도 in-memory wallet 내부의 계정의 키로 서명하여 결과를 리턴합니다.그럼 in-memory wallet에 계정을 추가하기 위해 위에서 생성한 계정의 address와 private key를 사용하여 아래와 같이 Account 인스턴스를 생성합니다.let account = caver.klay.accounts.createWithAccountKey('0x{address}', '0x{private key}')Account 인스턴스를 생성했다면 caver.klay.accounts.wallet.add를 사용하여 간단하게 in-memory wallet에 계정을 추가할 수 있습니다.caver.klay.accounts.wallet.add(account)3. 새로운 개인 키 생성하기AccountKeyPublic으로 업데이트하기 위해서는 새롭게 사용할 private key가 필요합니다. 여기서는 caver.klay.accounts.create()를 통해 랜덤한 private key를 사용합니다. 만약 따로 사용하고자 하는 private key가 있는 경우, 이를 사용해도 됩니다.caver.klay.accounts.create()는 기본적으로 주소와 키가 decoupling되지 않은 계정을 생성하므로, keys 프로퍼티는 하나의 private key string을 리턴합니다.const newKey = caver.klay.accounts.create().keys4. AccountForUpdate 인스턴스 만들기AccountForUpdate 클래스는 계정을 업데이트할 때에 필요한 정보들을 포함하는 클래스입니다. AccountKeyPublic으로 업데이트하는 경우, 계정의 주소와 새롭게 사용하고자 하는 public key가 필요합니다.계정의 주소와 위에서 정의한 새로운 private key를 사용하여 AccountForUpdate 인스턴스를 아래와 같이 생성할수 있습니다.const key = caver.klay.accounts.createAccountForUpdate(account.address, newKey)생성된 AccountForUpdate 인스턴스를 console.log로 출력하면 아래와 같이 keyForUpdate에 newKey가 publicKey의 형태로 변환되어 저장되어 있는 것을 확인할 수 있습니다.AccountForUpdate { address: '0x1754cf7a609767399d140e715345cbf78d573323', keyForUpdate: { publicKey: '0x96112…' }}5. 트랜잭션 만들기AccountForUpdate 인스턴스를 생성했다면, 이를 사용하여 아래와 같이 ‘ACCOUNT_UPDATE’ 타입의 트랜잭션을 간단하게 생성할 수 있습니다.const accountUpdateTx = { type: 'ACCOUNT_UPDATE', from: account.address, key, gas: 50000,}이제 생성된 트랜잭션을 실제로 네트워크로 전송하는 작업만 남아있습니다!6. 트랜잭션 전송하기트랜잭션을 생성했다면, 이를 실제로 네트워크에 전송해 봅시다. 이 트랜잭션이 네트워크에서 처리되면 계정의 키가 변경되므로, 기존의 키는 더이상 사용할 수 없습니다. 새롭게 사용하고자 하는 private key를 분실한다면, 더이상 해당 계정을 사용할 수 없으니 주의해야 합니다.아래와 같이 caver.klay.sendTransaction을 사용하여 트랜잭션을 네트워크에 전송할 수 있습니다.const receipt = await caver.klay.sendTransaction(accountUpdateTx)위의 코드가 실행되면 트랜잭션 처리 결과가 transaction receipt 형태로 아래와 같이 리턴됩니다.{ blockHash: '0x278e8c...22e706', blockNumber: 15516504, contractAddress: null, from: ‘0x1754cf7a609767399d140e715345cbf78d573323’, gas: '0xc350', gasPrice: '0x5d21dba00', gasUsed: 41000, key: '0x02a102...60cae91', … status: true, transactionHash: '0xf1622...', transactionIndex: 1, type: 'TxTypeAccountUpdate', typeInt: 32,}위의 receipt을 보면 status가 true로 트랜잭션이 성공적으로 처리되었으며, 트랜잭션의 타입은 TxTypeAccountUpdate이고 key필드에는 새롭게 업데이트한 AccountKeyPublic이 인코딩 된 형태로 리턴되는 것을 확인할 수 있습니다.7. AccountKey 확인하기트랜잭션이 성공적으로 처리되었다면 네트워크에 저장된 계정의 키가 변경됩니다. caver.klay.getAccountKey를 사용하여 이를 확인할 수 있습니다.const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address)위의 결과를 출력하면 아래와 같이 Klaytn 네트워크에 저장된 계정의 키를 알 수 있습니다. 계정의 키를 AccountKeyPublic으로 업데이트 하였으므로, caver.klay.getAccountKey 결과의 keyType은 2로 출력되는 것을 확인할 수 있습니다. Account Key Type ID에 대한 자세한 내용은 Klaytn Docs를 참고해 주세요.{ keyType: 2, key: { x: '0x9c200…', y: '0xa9e89…' },}8. in-memory key 업데이트트랜잭션이 성공적으로 처리되어 계정의 키가 업데이트 되었다면, 이제 트랜잭션에 서명할 때에 업데이트된 키를 사용해야 합니다.지금 in-memory wallet의 계정에서 사용하는 키는 업데이트되기 전의 키이므로, 트랜잭션을 전송하면 실패하게 됩니다. in-memory wallet의 계정에서 사용하는 키가 업데이트되지 않은 상태에서 트랜잭션을 전송하게 되면 아래와 같은 에러가 발생하게 됩니다.Error: Returned error: invalid transaction v, r, s values of the sender그렇기 때문에 계정의 키를 업데이트 했다면 따로 in-memory wallet에 저장된 계정의 키도 업데이트해야 합니다.아래와 같이 caver.klay.accounts.wallet.updateAccountKey를 사용하여 in-memory 내 계정에서 사용하는 key를 업데이트 합니다.caver.klay.accounts.wallet.updateAccountKey(account.address, newKey)9. 업데이트된 계정으로 트랜잭션 전송하기계정의 키가 정상적으로 업데이트된 것을 확인했다면, 이제 업데이트된 계정으로 트랜잭션을 전송해 볼까요?네트워크에 저장되는 계정의 키가 업데이트 되었기 때문에, 트랜잭션을 전송할 때 업데이트된 키를 사용하여 서명해야 합니다. [8.in-memory key 업데이트]에서 in-memory wallet에 있는 계정의 키도 업데이트 했으므로, 트랜잭션을 전송하면 새롭게 업데이트된 키로 서명하여 전송됩니다.그럼 아래와 같이 트랜잭션을 정의해 볼까요? 여기서는 ‘VALUE_TRANSFER’타입의 트랜잭션을 전송합니다. 다양한 타입의 트랜잭션에 대한 전송 방법은 Klaytn Docs를 참고하세요.const valueTransferTx = { type: 'VALUE_TRANSFER', from: account.address, to: account.address, value: 1, gas: 25000,}그럼 위에서 생성한 트랜잭션을 caver.klay.sendTransaction을 사용하여 전송할 수 있습니다.const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx)10. 예제 코드아래는 이 문서에서 설명한 전체 코드입니다. testAddress와 testPrivateKey를 위에서 생성한 계정의 정보로 변경한 후 실행해 볼 수 있습니다.const Caver = require('caver-js')const caver = new Caver('https://api.baobab.klaytn.net:8651/')const testAddress = '0x{address}'const testPrivateKey = '0x{private key}'test()async function test () { console.log('=====> Example for account key update to AccountKeyPublic') // Add account to in-memory wallet let account = caver.klay.accounts.createWithAccountKey(testAddress, testPrivateKey) caver.klay.accounts.wallet.add(account) // Create new private key const newKey = caver.klay.accounts.create().keys console.log('new private key: ${newKey}') // Create AccountForUpdate instance const key = caver.klay.accounts.createAccountForUpdate(account.address, newKey) console.log('AccountForUpdate instance => ') console.log(key) // Create transaction object const accountUpdateTx = { type: ‘ACCOUNT_UPDATE’, from: account.address, key, gas: 50000, } // Send transaction const receipt = await caver.klay.sendTransaction(accountUpdateTx) console.log('Account Update Transaction receipt => ') console.log(receipt) // Get accountKey from network const accountKeyFromNetwork = await caver.klay.getAccountKey(account.address) console.log('Result of account key update to AccountKeyPublic') console.log('Account address: ${account.address}') console.log('accountKeyFromNetwork =>') console.log(accountKeyFromNetwork) // Update account’s key in in-memory wallet caver.klay.accounts.wallet.updateAccountKey(account.address, newKey) const valueTransferTx = { type: 'VALUE_TRANSFER', from: account.address, to: account.address, value: 1, gas: 25000, } const valueTxReceipt = await caver.klay.sendTransaction(valueTransferTx) console.log('After account update value transfer transaction receipt => ') console.log(valueTxReceipt)}위의 실습을 통하여 계정의 키를 AccountKeyPublic으로 변경하는 방법에 대해서 이해가 되셨나요?다음 포스팅에서는 계정의 키를 AccountKeyWeightedMultiSig로 변경하는 방법에 대해서 설명할 예정입니다. 과정은 거의 동일하나, 새롭게 사용할 키의 종류만 변경되므로 이 문서의 실습을 따라하고 이해하는 데에 문제가 없으셨다면 다음 포스팅도 쉽게 따라 하실 수 있습니다.caver-js로 내 계정의 키를 바꾸는 방법 #1 — AccountKeyPublic was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

20. 01. 02

Klaytn 사용성 개선 Series #5: 명시...

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.키와 주소의 분리플랫폼에서의 멀티시그 지원대납 기능플랫폼에서의 Role-based key 지원명시적인 타입 도입지난 포스팅에서는 role-based key에 대해서 알아보았습니다. Role-based key를 이용하여 계정의 권한을 분산함으로써 다양한 서비스 개발 시나리오가 만들어질 수 있다고 생각합니다. 이번 포스팅에서는 명시적인 타입(explicit types)에 대해서 알아보겠습니다.앞의 네 가지 기능들은 사용자 또는 서비스 개발사의 입장에서 필요한 기능이라면, 명시적인 타입은 플랫폼 개발자의 사용성을 개선하기 위하여 설계되었습니다. 기본적으로 자료구조에 타입이라는 필드를 명시하게 되면, 각 타입별 자료구조를 다른 형태로 가져갈 수 있습니다. 이러한 설계는 자료구조의 유연함을 가져오고, 따라서 미래에 기존 자료구조와 호환성을 유지하면서 새로운 형태의 자료구조를 쉽게 추가하고 유지할 수 있다는 장점이 있습니다. 하지만 당연히 단점도 존재합니다. 타입을 먼저 해석하고 자료구조를 해석해야 하는 로직이 들어가게 되고, 이는 성능에 영향을 끼치게 됩니다.저희는 타입 분석 로직에 대한 오버헤드보다 자료구조의 유연함을 가져가는 것이 더 중요하다고 생각했습니다. 앞으로 계속 Klaytn이 발전하고 개발이 계속 될 예정인데, 이러한 유연함을 미리 설계해 놓지 않으면 나중에 유지보수가 더 어렵다고 판단했습니다.이러한 고민을 통해 명시적인 타입이 설계되고 구현되었습니다. 현재 명시적인 타입은 세 가지 자료구조에 반영이 되어 있습니다: 계정(account), 계정 키(account key), 트랜잭션(transaction).계정(account)계정은 기본적으로 사용자 계정(user account)와 컨트랙트 계정(contract account)로 구분됩니다. 사용자 계정에는 code hash나 storage root같이 컨트랙트와 연관된 데이터는 가지고 있을 필요가 없습니다. 명시적인 타입을 도입하면 이러한 데이터를 제거하여 저장 공간을 절약할 수 있습니다. 사용자 계정이 컨트랙트 계정보다는 많이 생성되기 때문에, 이러한 저장 공간 절약이 큰 효과를 발휘할 수 있습니다. 실제로 이더리움의 경우에도 2019년 9월 기준 전체 계정의 80%가 사용자 계정이었습니다. 또한, 앞으로 새로운 형태의 계정이 필요해지더라도 쉽게 추가해 나갈 수 있습니다.아래의 그림은 컨트랙트 계정과 사용자 계정이 가지고 있는 자료구조를 보여주고 있습니다. 더 자세한 정보는 KlaytnDocs에서 확인하실 수 있습니다.계정 키(account key)계정 키는 계정 자료구조 내 키를 저장하기 위한 자료구조이며, 이 키도 다양한 종류를 지원하기 때문에 명시적인 타입을 도입하였습니다. 이 계정 키 타입을 통해 한 계정에서 다양한 키 형태(single public key, multisig, role-based key)를 지원할 수 있습니다. 더 자세한 정보는 KlaytnDocs에서 확인하실 수 있습니다.트랜잭션(Transaction)트랜잭션은 Klaytn network의 상태를 변화시키는 기본 동작 단위입니다. 상태를 변화시키는 기능은 아래 테이블에서 볼 수 있듯이 다양합니다. 각 기능에 대한 설명은 KlaytnDocs에서 확인하실 수 있습니다. 이러한 다양한 기능들을 명시적인 타입으로 분리하면 다양한 장점이 있습니다.첫번째는 최적화가 가능하다는 점입니다. 각 트랜잭션 타입이 명확하게 한 가지 일을 수행하기 때문에 그에 맞는 최적화가 가능합니다. 예를 들어, KLAY를 전송하는 트랜잭션의 경우에는 컨트랙트를 실행하는 기능이 필요없기 때문에, 이 부분을 제거하는 최적화가 가능해집니다.두번째는 새로운 트랜잭션 기능을 만들기 쉽다는 점 입니다. 다른 파라미터가 필요한 새로운 트랜잭션 기능이 필요하다고 할 때, 새로운 트랜잭션 타입을 추가하여 쉽게 구현이 가능합니다. 예를 들어, 트랜잭션 풀에 들어 있는 트랜잭션을 취소시키고 싶을 때, 이 기능을 수행할 수 있는 새로운 트랜잭션 타입(TxTypeCancel)을 정의할 수 있습니다. 또는, 서비스 체인을 위한 별도의 트랜잭션 타입(TxTypeChainDataAnchoring)을 정의할 수도 있습니다. 물론, 각 트랜잭션 타입이 필요한 필드들만 가지도록 설계하는 것도 가능합니다.트랜잭션의 경우, 매 블록마다 여러번 실행되기 때문에, 실행 성능이 중요합니다. 타입을 도입하더라도 실행성능이 크게 저하되지 않아야 합니다. 아래 도표에서는 타입이 없던 기존의 트랜잭션 자료구조와 타입을 도입한 자료구조 간의 실행 성능을 비교하였습니다. 트랜잭션 타입 분석 로직에 대한 오버헤드와 계정 키에 따른 확인 로직에 대한 오버헤드로 인해 성능이 저하되었으나, 그 비율은 10% 미만으로 매우 작은 수준임을 확인할 수 있습니다.이번 포스팅에서는 명시적인 타입을 도입하여 각 자료구조 별로 어떻게 반영했는지 알아보았습니다. 명시적인 타입 도입을 통해 자료구조의 유연함과 확장성, 그리고 저장공간의 최적화를 얻어낼 수 있었습니다. 반면, 타입 분석 로직이 추가되어 성능 오버헤드를 발생시키지만 그것은 매우 작은 수준임을 확인했습니다.이 포스팅으로 Klaytn 사용성 개선 시리즈는 마치도록 하겠습니다. 이후 Klaytn의 다양한 기술들에 대해 설명할 수 있는 문서들을 계속 추가해 나가도록 하겠습니다. 감사합니다.Klaytn 사용성 개선 Series #5: 명시적인 타입 도입 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 24

Klaytn 사용성 개선 Series #4: 플랫...

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.키와 주소의 분리플랫폼에서의 멀티시그 지원대납 기능플랫폼에서의 Role-based key 지원명시적인 타입지난 포스팅에서는 대납 기능을 알아보았습니다. 대납 기능을 통해 기존 서비스와 동일한 사용자 경험을 지니는 블록체인 서비스가 개발될 수 있을 것이라고 기대합니다. 이번 포스팅에서는 role-based key에 대해 알아보겠습니다.Klaytn의 한 계정은 아래와 같이 다양한 기능을 수행합니다.KLAY 전송스마트 컨트랙트 배포스마트 컨트랙트 실행계정 정보 업데이트대납 기능그렇다면, 기능 별로 서로 다른 키를 사용할 수 있다면 어떨까요? 특히, Klaytn에서 추가한 기능들에 대해서는 별도의 키를 사용하게 한다면 다양한 새로운 사용 시나리오가 만들어질 수 있다고 생각합니다. Klaytn에서는 이를 위해 role-based key라는 기능을 설계하고 구현하였습니다. 아래 표와 같이 각 기능에 해당하는 역할(role)을 부여하였고, 각 역할 별로 서로 다른 키를 설정할 수 있도록 설계하였습니다. Role-based key에 대한 더 자세한 설명은 KlaytnDocs에서 확인하실 수 있습니다.대납만 가능한 키서비스 개발사는 Klaytn의 대납 기능을 이용해 사용자들의 트랜잭션 수수료를 대신 납부하는 것을 고려할 수 있습니다. 이 경우, 대납 기능을 운영하는 운영자에게 해당 계정의 잔고를 이체할 수 있는 권한까지 부여해야 하기 때문에, 잔고가 많은 계정을 그대로 운영자에게 제공할 수 없습니다. 따라서 대납 계정을 별도로 운영하고 계속 적당한 양의 잔고를 채워주는 것이 제일 간단한 해결책이 됩니다.하지만 이 방법은 별도의 계정을 운영해야 하는 점, 잔고를 주기적으로 확인하고 채워줘야 하는 점 등 상당히 불편한 사용성을 가집니다. Klaytn의 role-based key를 이용하면 하나의 계정만 이용하여 대납 계정을 운영할 수 있습니다. 아래 그림을 통해 어떻게 가능한지 좀 더 자세히 알아보겠습니다.먼저 계정의 관리자는 RoleTransaction에 대한 키를 가져갑니다. 이 키는 해당 계정의 잔고를 이체할 수 있는 권한이 있습니다. RoleFeePayer에 대한 키는 대납 기능 운영자에게 제공합니다. 이 키는 트랜잭션의 수수료를 대신 납부할 수 있는 권한이 있기 때문에, 사용자의 트랜잭션을 받아서 수수료를 대신 납부하는 기능만을 대납 기능 운영자에게 부여할 수 있습니다. 하지만, 이 키는 계정의 잔고를 이체할 수 있는 권한은 없기 때문에, 잔고를 다른 사람에게 보내는 것은 불가능합니다. 이렇게 구현하게 되면 별도의 계정을 운영할 필요도 없고, 따라서 잔고를 주기적으로 확인해야 하는 불편함도 사라지게 됩니다.사용자 계정 복구블록체인 플랫폼의 사용성이 어렵다고 이야기하는 것 중 가장 대표적인 것이, 개인이 키를 관리해야 한다는 문제입니다. Role-based key를 이용하면 사용자 계정을 복구할 수 있는 시나리오를 만들어 낼 수 있습니다. 아래 그림을 통해 좀 더 자세히 살펴보겠습니다.먼저 서비스 개발사는 개인들의 계정을 발급하면서 RoleAccountUpdate에 대한 키를 가져갑니다. 사용자에게는 RoleTransaction에 대한 키를 제공합니다. 사용자는 RoleTransaction 키를 이용해 토큰 전송, 스마트 컨트랙트 실행 등의 기능을 이용할 수 있습니다. 만약 사용자가 키를 잃어버렸을 경우, 서비스 개발사는 RoleAccountUpdate 키를 이용해 RoleTransaction 키를 재발급합니다. 재발급한 키를 다시 사용자에게 제공하면, 사용자는 기존의 계정에서 이용하던 서비스를 해당 계정에서 계속 이용할 수 있습니다.위에서 Role-based key를 이용한 두 가지 사례를 살펴보았습니다. 추가적으로, 여러 다른 다양한 서비스에서 role-based key를 이용해, 또 다른 다양한 사례들을 만들어 낼 수 있다고 생각합니다. 이 role-based key를 이용해 블록체인을 보다 쓰기 쉽게 제공하는 다양한 서비스들이 만들어지기를 기대합니다.이번 포스팅에서는 role-based key에 대해 알아보았습니다. 다음 포스팅에서는 이런 다양한 기능을 구현하기 위해 타입을 어떻게 설계했는지 알아보도록 하겠습니다.Klaytn 사용성 개선 Series #4: 플랫폼에서의 role-based key 지원 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 23

Next Starts Here — TXGX 2019

Next Starts Here — TXGX 2019Back on November 29, we successfully held our second annual technology forum TXGX in Seoul, Korea. TXGX, short for Tech Forum by Ground X, invites our partners, developers, and Klaytn community members to discuss Klaytn technology and exchange ideas about the potential this wider blockchain industry holds.This year’s forum featured some of our own Klaytn engineers to speak on topics including Service Chain solutions, Klaytn architecture, and developer tools that enhance blockchain application development.Jason Han, the CEO of Ground X (left) and Sangmin Seo, the Head of Technology (right)The forum kicked off with opening speeches from Jason, the CEO of Ground X and Jun Cho, the Fellow at Ground X, delineating the accomplishment of Klaytn during the past five months since its mainnet launch this past June. Sangmin Seo, the Head of Technology, also identified the limitations of mass blockchain adoption owing to technical challenges that inhibit the growth of services and users, as well as non-technical challenges including regulation and public perception.Some of our partners, including Nitpick, Wemade Tree, Spin Protocol, TEMCO, Zikto, and Rootone Soft also delivered presentations on how they are leveraging the Klaytn platform to offer their services. For example, Suk Hwan Kim, the CEO of Wemade Tree discussed the ways in which Wemade Tree is utilizing the Klaytn Service Chain. With Klaytn’s high performance of over 3,000 TPS, scalability, and low gas fee, Wemade is able to develop its gaming services, which particularly accrue massive user base.We look forward to building more use cases to further strengthen the Klaytn ecosystem across diverse industry domains including IT, finance, commerce, insurance, gaming, entertainment, and more. And we also hope to deliver more exciting updates and announcements at next year’s TXGX 2020.In the meantime, visit our official TXGX website at http://txgx.io to check back on all of the presentations.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Next Starts Here — TXGX 2019 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 18

Shaping the Future of Enter...

Shaping the Future of Enterprise Blockchain — Klaytn Governance Council Summit 2019With a mission to kick-start Klaytn’s journey to becoming Asia’s leading enterprise-oriented public blockchain platform, we held the inaugural Klaytn Governance Council Summit on November 28 in Seoul, Korea. Over 100 large enterprise professionals, from 11 nations across Asia, covering all key verticals, from finance, IT to gaming and content, gathered to participate.The Klaytn Governance Council — An Asia-Focused Enterprise Blockchain ConsortiumThe Summit kicked off with opening speeches from Mason Yeo, the CEO of Kakao, and Jason Han, the CEO of Ground X, detailing the importance of the Klaytn Governance Council, its role in shaping the future of the Klaytn platform and the Council’s potential in facilitating new business opportunities and partnerships for member enterprises.Mason Yeo, the CEO of Kakao (left) and Jason Han, the CEO of Ground X (right)The Klaytn Governance Council, currently consisting of 27 large enterprises spread across Asia, was established as the steering and governing body of the Klaytn platform, shaping the features and economy of the Klaytn ecosystem. As the Council continues to grow, it has become more than a regional consortium, harboring the clout to not only foster the Klaytn ecosystem, but also establish Klaytn as the de-facto regional blockchain platform.Seeking Synergies and Developing New OpportunitiesThe Council’s potential and scope were put on display as 6 Council members from China, Japan, Korea, and the Philippines took the stage to share current blockchain initiatives and business proposals with the remaining members. From the Union Bank of the Philippines’ initiatives in low-cost cross border remittances to Hanwha Systems’ blockchain-based authenticity platform designed specifically for collectable art and auctions, each of the 6 members drove home the importance of real use cases in advancing enterprise blockchain adoption.The Summit also proved to be a day of proposals and networking as members proactively shared their ideas for co-working, regional expansion and partnerships all made possible by Klaytn’s potential as a facilitating protocol for cross-border and cross-entity transactions and engagement.Ownership & GovernanceUltimately, the Klaytn Governance Council was established to help grow and govern the Klaytn ecosystem and platform, a core responsibility that was outlined in detail during the Summit. Moving forward, the Klaytn Governance Portal will be launched in the near future, allowing member enterprises to submit and vote on various proposals, from future protocol functionality to economic policies that will guide the KLAY token economy. The key takeaway for members was the realization that they were now solidified as the founding stakeholders of the Klaytn platform, thus taking on the responsibilities of not just securing the platform, but also working with other members to expand Klaytn’s reach across the region to maintain its position as one of the word’s foremost enterprise public blockchains.The Road to Mass Enterprise AdoptionWith 27 large enterprises securing the Klaytn blockchain, Klaytn is easily one of the world’s largest consortium blockchains. The number of Council members will continue to expand in 2020, with a new group of members expected to join the Governance Council, made up of not just large enterprises but global non-profit organizations and institutions, to elaborate Klaytn’s commitment to leveraging blockchain technology to improve social impact sectors.The Klaytn Governance Council Summit is planned not only as an annual, large-scale event but as a flexible, fast-moving working group, with regular on/offline work sessions expected to be held throughout 2020.As more and more real-world enterprises use cases are pursued by both Council members and non-Council partner enterprises, it is guaranteed that Klaytn will be at the forefront of enterprise adoption of blockchain technology.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Shaping the Future of Enterprise Blockchain: Klaytn Governance Council Summit was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 17

Klaytn Governance Council: ...

GS HomeShopping, the commerce unit of GS Group, is the №1 multimedia retailer in Korea, operating commerce platforms across TV home shopping, e-commerce, and t-commerce.“Together with Klaytn, we will put our efforts towards implementing blockchain technology to the services that we use in our daily lives.” — Huh Tae-soo, CEOFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: GS HomeShopping was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 05

Klaytn 사용성 개선 Series #3: 대납 기능

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.키와 주소의 분리플랫폼에서의 멀티시그 지원대납 기능플랫폼에서의 Role-based key 지원명시적인 타입이전 포스팅에서는 플랫폼 레벨에서 멀티시그를 어떻게 지원하는지에 대해 설명했습니다. 이번 포스팅에서는 대납 기능에 대해 설명하고자 합니다.대부분의 블록체인 플랫폼에서는 트랜잭션 수수료라는 개념이 있습니다. 트랜잭션이 발생할 때마다 해당 트랜잭션의 발신자(Sender)가 트랜잭션의 실행에 발생한 비용을 부담하는 방식입니다. 블록체인 네트워크의 계산 비용과 저장 비용을 사용하기 때문에, 비용을 발생시키고 그에 대한 부담을 지는 것은 합리적으로 보입니다. 다만 사용자의 관점에서 바라보게 되면, 사용자가 어떤 행동을 취할 때마다 비용을 납부하는 것은 좋은 사용자 경험이라고 이야기 할 수는 없습니다.대부분의 서비스를 생각해 보면, 사용자에게 비용을 부담하기보다는 서비스 제공자가 비용을 부담하며 사용자를 유치하는 방식을 사용합니다. 예를 들어, 트위터에서 트윗을 할 때마다, 페이스북에서 담벼락에 글을 쓸 때마다 사용자가 비용을 부담한다면, 사용자가 그 서비스를 사용할까요? 이러한 것이 일반적인 사용자 경험이 아닌데, 왜 블록체인에서는 이러한 사용자 경험을 강요할까요?Klaytn은 이러한 사용자 경험이 굉장히 불편한 경험이라고 생각했습니다. 이 불편한 경험을 해소하고자, Klaytn에서는 “대납 기능”을 제공합니다. 사용자 대신 서비스 제공자가 트랜잭션 수수료를 납부하는 개념입니다.이에 대한 동작은 아주 간단히 이루어집니다. 트랜잭션을 생성하고, 발신자가 서명하고, 트랜잭션 수수료를 대신 납부할 서비스 제공자(fee payer)가 추가 서명을 합니다. 예를 들어, KLAY를 전송하는 트랜잭션이라면, 발신자로부터 수신자로 정해진 양 만큼의 KLAY가 전송되고, 이 트랜잭션의 수수료는 서비스 제공자가 납부합니다. 이 트랜잭션의 자료구조를 좀 더 살펴보면 아래와 같습니다.기존의 트랜잭션 자료구조에 fee payer address와 fee payer signature 필드가 추가되었고, 이 필드를 기반으로 fee payer에게 비용을 부과합니다. 당연히, fee payer signature가 fee payer address의 signature가 아니라면 유효하지 않은 트랜잭션으로 간주합니다.이러한 대납 트랜잭션은 Klaytn transaction type별로 다양하게 존재합니다. 모든 대납 트랜잭션에 대한 자세한 설명은 KlaytnDocs/Transactions에서 확인하실 수 있습니다.추가적으로, 단순히 서비스 제공자가 모든 트랜잭션 수수료를 부담하는 것이 아니라, 일부만 부담하는 부분 위임 트랜잭션도 제공합니다. 예를 들어 서비스 제공자가 수수료의 70%를 부담하고 나머지는 발신자가 부담하는 형태도 가능합니다.이러한 대납 방식을 통해 서비스 제공자는 다양한 형태의 사용자 유치 전략을 만들어 낼 수 있습니다. 서비스 제공자가 수수료 전부를 내는 방식, 수수료의 일부만 대신 내는 방식, 일정 기간동안 수수료를 내는 방식, 일정 개수의 트랜잭션까지만 수수료를 내고 그 이후는 사용자가 부담하는 방식 등 다양한 형태의 과금 전략을 만들어 낼 수 있습니다. 이러한 다양한 방식으로 사용자들을 서비스에 끌어들이는 것이 가능해집니다.이 대납 기능을 기반으로 기존의 사용자 경험을 유지하는 다양한 블록체인 서비스들이 개발될 수 있을 것이라고 기대합니다.이번 포스팅에서는 대납 기능에 대해 알아보았습니다. 다음 포스팅에서는 한 계정 내의 기능을 분리하여 각 기능별로 다른 키를 사용하는 방식인 role-based key에 대해 알아보도록 하겠습니다.Klaytn 사용성 개선 Series #3: 대납 기능 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 03

Klaytn Governance Council: ...

SK Networks, a global services and trading company, is part of the larger SK Group. With subsidiaries across the globe, SK Networks’ business portfolio ranges from steel and energy trading to hotels and accommodation.“We are excited to join forces with Klaytn to together push for mass blockchain adoption for our users across the globe.” — Sang-Gyu Park, CEOFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: SK Networks was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 03

Diversity in Blockchain Ser...

Dear readers,We would like to introduce our data engineer, Jensen Yap, as the second interviewee for [Diversity in Blockchain] series. You can find the diverse perspectives of data in the blockchain. Please enjoy reading his story and career journey to the blockchain industry.Jesen at Tableau ConferenceWhat is your main job in the data engineering team of Klaytn?My main job is to set up a stable infrastructure for data to transfer them from multiple sources to our data storage. I have to make sure that the collected and transferred data is safe, clean and stable. We are now collecting data from Ethereum and Klaytn, which has a mainnet and one or multiple testnets. After collecting, compiling and saving the data, what data engineering team does is analyzing, modeling, experimenting and reporting them based on safe and clean data sets. It is about laying a solid foundation for data analysis. That is the first step.What kind of data do you collect and what do these data mean to us?There are two types, blocks data, and traces data. Blocks data is piling up every time blocks are created and transactions happened in specific blocks. Also, we can understand what happened in these transactions, such as the activities of token created and token transferred. However, blocks data do not show how one block is connected to the other block. That is the reason we should see traces data as well. With all two types of data, we can assume the user journey, from where the users start, where they are going, and where they are now.The primary reason why we are looking at Ethereum and other platform data is that we can find certain patterns from the previous data of Ethereum and see how certain activities start and go viral. After learning from similar cases, we can apply the same model as Ethereum to our platform. We can find a way of improvements based on the comparison. The examples we can refer to are our governance models and policies to operate the platform. Also, we can identify and judge users’ behavior that abuse and harm the ecosystem of our platform.If you have any lessons learned from your analysis, could you share it with us?According to our analysis, transactions in a certain platform are creating every two seconds. That is not what a human can do consistently. We can assume that users are running bots by creating self-transactions at a fast pace automatically. This activity may result from users’ behavior to populate blocks and get more fees, and it is not a healthy signal to our ecosystem. As each platform is establishing policies to deal with abusement, the past data of other platforms can be a good source for us to improve our chain and set up an appropriate policy within our chain.You have worked for Coupang, Korbit and are currently working for Klaytn as a data engineer. Could you explain your career journey from Coupang to the blockchain industry? What brought you here?It was right after the coin market went up. I invested in coins at that time. I wanted to know why the price went up and down but there were not the exact facts to convince me. As a data engineer, I wanted to bring a ‘data’ perspective to a new technology that no one is doing well.I used to deal with trading-related data after moving to Korbit after Coupang because Korbit is an exchange to enable trading of any blockchain assets. A pretty big amount of users in this exchange were actually robots and the volumes of trading in an out from these robots were more than half. I saw how robots influenced the value of the coin. However, staying at a high volume of trading is quite important for an exchange because it shows how healthy this exchange is, even if the transaction was self-made. We can also identify heavy traders and made them stay by giving them exclusive benefits.In 2014, Mt Gox, the largest cryptocurrency exchange in the world, was hacked and 850,000 bitcoins were stolen. Chainalysis was the official investigator in the Mt.Gox bankruptcy case. After this case, Chainalysis, whose business is crime-fighting and regulatory compliance, is contributing to detecting fraud and preventing money laundering with data analysis.When I heard that news, I was really inspired by what Chainalysis did and realized that it is exactly what I have been looking for. Data can mean more than numbers. It can tell the truth. While not many blockchain companies invest money and time in data analytics, as far as I know, Klaytn is willing to do so and has already many types of data in its chain. That is why I joined here.As you said, data can be an important source for the top management’s decision-making process. However, human behavior and traces, which are the base of all data, may not be always right because humans are not always reasonable. What do you think about that?I think the reason why most of the people are not used to data-driven decisions is that our life is not always data-driven but experience-based, surrounding-based, and emotion-based. I do not want to necessarily force people to always be data-driven. But the data-driven decision needs to be part of the conversation within a company.Let’s take an example of a business meeting that diverse teams are participating in. We look at a presentation material saying that 40% of the users are robots. Teams can interact emotionally discussing this issue during the meeting but the data shows us the truth and help everyone to stay on the same page. There may be different ways to translate the data depending on the team but what they are looking at is ultimately the same.What I want to do is to create a healthy culture that empowers everyone in a company to articulate and tackle every decision based on data. That is why our data team created a data lake. Building one true source of data is necessary to help people discuss the same truth within an organization. Even though our analysis can be wrong sometimes or has no insights, at least we can give everyone enough space to start a conversation, be more objective and give diverse views and feedbacks.What are you and your team’s next plan?The mission of our team is to support other teams to make data-based decisions. We, as a platform player, want to look into Klaytn and define who Klaytn users are, what they do, finding out the differences between healthy users and abusing users and what kind of activity is happening in our chain.At present, the reputation of blockchain technology itself is connected with what the exchanges do. We plan to release some articles or papers to show the professional and unbiased view about the blockchain. We would like to show blockchain is not about the price on the exchange but it is a genuine technology.What I want to do personally in terms of data science is to create more open-source tools to analyze the chain. Analyzing a certain chain is very expensive because it is very hard to get clean data to analyze. We are continuously developing a service to use for the community when they want to analyze our public Klaytn chain data.As you have studied and worked in Korea for a long time, you are exposed to a diverse environment. As a person who has a diverse experience in different contexts, how do you feel about the ‘Diversity’ issue?I think that the issue of diversity is something we cannot avoid at this time. Technology has been and being advanced in a way to connect people globally. It is getting easier to travel across the border and to get a job in a different country. It means we can be exposed to a diverse environment easily and naturally.From the perspective of business, your service or product cannot survive only in a local market. To penetrate the global market, we need to understand global users’ needs based on their diversity such as ethnicity, age, and gender.On the other hand, big data, AI, deep learning are being considered as a hot trending technology to change the world but even right now we do not truly understand what they are and how we can fully utilize them in our daily life. What we need now is to integrate diverse contexts and backgrounds as technology advances.Blockchain is in a similar situation. Blockchain is still in a very early stage and it is not simple to apply it to the real world for service. We should encourage our community to discuss more our technology with diverse perspectives and imagine how it can change our life with blockchain. This approach can be a healthy starting point if you don’t want blockchain to remain just as a concept.Diversity in Blockchain Series #3: Jensen Yap, The issue of diversity is now inevitable. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 12. 02

Klaytn 사용성 개선 Series #2: 플랫...

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.키와 주소의 분리플랫폼에서의 멀티시그 지원대납 기능플랫폼에서의 Role-based key 지원명시적인 타입 정의이전 포스팅에서 키와 주소의 분리에 대해 알아보았습니다. 키와 주소의 분리를 위해 Klaytn의 계정에는 key라는 필드가 추가되었다고 설명하였습니다. 이번 포스팅에서는 이 key 필드를 이용하여 멀티시그를 지원하는 것에 대해 이야기 해 보겠습니다.멀티시그는 계정의 보안성 강화를 위해 사용할 수 있습니다. 대부분의 블록체인 플랫폼에서는 멀티시그를 이용하려면 복잡한 기능이 필요합니다. 이더리움을 예로 들면, 멀티시그를 사용하기 위해서는 스마트 컨트랙트를 이용해야 합니다. 원하는 기능은 계정의 보안성 강화인데, 그보다 훨씬 다양한 기능을 할 수 있지만 그만큼 복잡한 “스마트 컨트랙트”라는 것을 이해해야 합니다.아래 질문들에 대답을 할 수 있어야 멀티시그를 제대로 사용할 수 있습니다.스마트 컨트랙트가 무엇인가?스마트 컨트랙트를 이용해 멀티시그 컨트랙트를 어떻게 구현해야 하는가?구현한 컨트랙트가 안전하게 구현되었는가?구현한 컨트랙트를 네트워크에 어떻게 배포해야 하는가?구현한 컨트랙트를 어떻게 실행해야 하는가?이러한 질문에 대답하기 위해서는 상당한 지식수준을 요구하며, 단순히 계정 보안 강화를 위해 위의 내용을 다 이해하는 것은 너무 어렵습니다. 우리가 만약 은행의 대여 금고 서비스를 이용한다고 할 때, 그 금고가 어떻게 구성되어 있는지 동작원리를 다 이해해야 할 필요는 없습니다. 단지 서비스가 거기 있고, 필요하면 그것을 그냥 이용하면 되는 거죠.블록체인도 마찬가지라고 생각했습니다. 금고처럼 보안성 강화를 위한 기능이라면 플랫폼 수준에서 그 기능을 제공하는 것이 더 안전하고 사용하기 쉬운 방법이라고 생각했습니다. 이전 포스팅에서 Klaytn의 계정에 key 필드를 추가했고, 이를 이용해 쉽게 멀티시그로 확장할 수 있습니다. 해당 필드에 키를 여러개 저장하면 되니까요.다만 좀 더 자유도를 높이기 위해 가중치(weight)와 임계치(threshold)라는 개념을 도입했습니다. 각 키는 가중치 값을 가지며, 트랜잭션 내 서명한 키들의 가중치 합이 임계치를 넘어야 유효한 트랜잭션으로 인정됩니다. 예를 들어, 가중치 1인 k1, 가중치 2인 k2, 가중치 3인 k3가 있고, 해당 계정의 임계치가 3이라고 하면, 아래와 같은 키 조합으로 서명한 트랜잭션이 유효한 트랜잭션으로 인정됩니다.k3k1, k2k1, k3k2, k3k1, k2, k3이번 포스팅에서는 플랫폼 수준에서 구현된 멀티시그 기능에 대해 알아보았습니다. Klaytn을 이용하면 쉽게 여러 개인 키를 사용하여 보안을 높일 수 있습니다. 이 기능을 플랫폼 레벨로 내렸기 때문에, 사용자 또는 지갑 개발자들이 좀 더 쉽게 멀티시그를 이용할 수 있을 거라고 기대합니다. 다음 포스팅에서는 대납 기능에 대해 알아보겠습니다.Klaytn 사용성 개선 Series #2: 플랫폼에서의 멀티시그 지원 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 28

Klaytn 사용성 개선 Series #1: 키와...

Klaytn은 블록체인 플랫폼의 사용성을 개선하기 위해 다양한 노력들을 했습니다. 아래의 포스팅을 통해 사용성 개선 기능들을 살펴보고자 합니다.키와 주소의 분리플랫폼에서의 멀티시그 지원대납 기능플랫폼에서의 Role-based key 지원명시적인 타입 정의이 포스팅에서는 키와 주소의 분리를 통한 사용성 개선에 대해 살펴보겠습니다. Klaytn은 비트코인, 이더리움과 동일하게 secp256k1 커브를 이용하고 있습니다. 기존의 블록체인 플랫폼들은 모두 개인 키로부터 계정 주소를 도출하는 방식을 사용하고 있습니다. 이러한 방식은 개인 키가 노출되었을 경우, 해당 계정을 더이상 사용할 수 없다는 단점이 있습니다.만약 해당 개인 키를 다른 누군가가 알고 있을 가능성이 있다면, 빨리 새로운 개인 키를 발급하고 해당 계정의 모든 자산을 새로운 계정으로 이동해야 합니다. 그렇지 않다면, 기존 계정의 자산을 탈취당할 수 있습니다. 하지만, 새로운 계정을 만들고 자산을 이동시킨다는 것은 꽤 불편합니다. 만약 지인들이 기존 계정의 주소를 알고 있고 그 주소로 자산을 보낼 가능성이 있다면, 그 사람들이 기존 계정으로 자산을 보내기 이전에 새로운 주소를 알려주어야만 합니다.만약 BApp을 사용하고 있었다면 더 불편해질 수 있습니다. 기존 계정과 BApp이 연동되어 있기 때문에, 기존 계정으로부터 새로운 계정으로 BApp 내 자산을 이동시켜야 합니다. 하지만 만약 해당 BApp이 그러한 기능을 제공하지 않는다면, 자산 이동이 불가능할 수도 있습니다. 추가적으로, 의도하지 않은 거래 내역의 파편화를 가져오게 됩니다.만약 키가 또 한 번 노출된다면 어떻게 될까요? 위에서 설명드린 계정 이동을 다시 한 번 해야만 하겠죠. 이건 재앙과 가깝습니다. 물론, 개인 키를 노출하지 않도록 잘 관리하는 것이 중요하긴 합니다만, 의도치 않게 개인 키가 노출되었을 경우에 대한 대비책도 제공되어야 한다고 생각합니다.이러한 경험은 기존의 서비스 사용 경험과 굉장히 다릅니다. 예를 들어, 은행과 사용 경험을 비교해 볼 수 있습니다. 블록체인의 계정 주소는 은행의 계좌 번호, 개인 키는 해당 계좌의 비밀번호로 생각할 수 있습니다. 만약 비밀번호가 노출된다면 어떻게 해야할까요? 가장 쉽고 일반적인 방법은 해당 계좌의 비밀번호를 변경하는 것입니다. 비밀번호가 노출되었다고 새로운 은행 계좌를 만들지는 않습니다.사람들은 기존의 사용 경험이 변경되는 것을 바라지 않습니다. 심지어 그 경험이 더 불편해지는 경험이라면 더더욱 변경을 원하지 않을 것입니다. 그렇다면 블록체인에서의 사용 경험도 기존의 사용 경험과 유사하게 제공해야 하지 않을까요? Klaytn은 이를 위해 계정 주소와 키를 분리했습니다. Klaytn에서는 더이상 개인 키를 통해 계정 주소를 도출할 수 없습니다. 이를 통해, 개인 키가 노출되더라도, 새로운 개인 키를 해당 계정에 설정하여, 계정을 계속하여 사용할 수 있습니다. 위에서 예시로 설명드린 자산 이동을 더이상 할 필요가 없습니다. 결과적으로 은행과 동일한 사용 경험을 얻을 수 있습니다.이러한 분리를 위해 Klaytn의 계정은 key라는 필드를 별도로 관리하고 있습니다. 이 key 필드에 공개 키를 저장시키고, 대응되는 개인 키로 트랜잭션에 서명을 하면 됩니다. 만약 새로운 개인 키로 변경하고 싶다면, AccountUpdate Transaction을 통해 해당 계정에 그에 대응되는 공개키를 설정하면 됩니다. 이후 발생하는 트랜잭션들은 새로운 개인 키로 서명해야만 유효한 트랜잭션으로 인정됩니다.Klaytn 계정에 대한 더 자세한 정보는 KlaytnDocs/Accounts에서 확인할 수 있습니다.이 key 필드를 공개 키 하나만을 위해 제공하는 것은 조금 비효율적으로 느껴집니다. 그래서 Klaytn에서는 이 필드를 이용해 다양한 키를 설정하도록 설계하였습니다. 다른 키들은 어떤것들이 있는지는 다른 포스팅을 통해 알아보겠습니다.Klaytn 사용성 개선 Series #1: 키와 주소의 분리 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 28

Klaytn Governance Council: ...

Hanwha Systems is the information technology arm of Hanwha Group, providing smart technology solutions in defense electronics and information infrastructure.“We are committed to offering blockchain services for a larger audience, and we are excited to participate in the Klaytn Governance Council to together accelerate mass blockchain adoption.” — Haejin Jeong, Digital Innovation Lab Manager, Hanwha SystemsFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Hanwha Systems was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 28

5 Months Since Klaytn Mainn...

It’s been almost five months since we launched the Klaytn mainnet on June 27, and we are excited to share with you that 6 of Klaytn-based BApps made the top 10 DApps on both State of the DApps and Dapp.com.4 of Klaytn BApps on State of the Dapps5 of Klaytn BApps on DApp.comOn both SOTD and DApp.com, we have:Cloudbric: The global security solution enterprise providing threat database with deep-learning AI technologyCosmochain: The beauty contents platform integrated into beauty-themed social network service ‘FitsMe’ with fully-functioning user incentivizing featuresAtlas: A blockchain-based travel platform that connects all consumers and suppliers in the travel industry to a decentralized marketplace that incentivizes content creation, transaction, and consent-based data-sharingAntube: A blockchain-based mobile video entertainment platform powered by DATA, which is a U.S.-based digital data authentication and attention monetization project. Antube also works with Yomob that integrates global mobile ad networks including Google and FacebookOn DApp.com, we also have:Insureum: A blockchain protocol that supports the development of novel insurance products by connecting insurance companies, policy holders, and data providers to be shared in an automated, transparent, and simultaneous manner for easier data analysis, sales, and claims management of insurance productsFurther, according to SOTD Statistics, our Klaytn platform has the most number of daily active users — unique source addresses in transactions to DApp contracts — with only 19 applications so far.Klaytn Platform with the most daily active users of 23.73k as of November 21Dedicated to providing readily usable blockchain-powered services, our platform is equipped with an intuitive development environment(DX) and friendly user experience(UX). Built upon solid reliability and significant stability with substantial service development for mass adoption, Klaytn allows high-quality, user-friendly applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.We are partnering with great blockchain projects with massive global user base in various industry domains. More services are set to open until early next year, so stay tuned![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/5 Months Since Klaytn Mainnet Launch…Klaytn BApps Going Strong was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 22

[Klaytn Hackathon] Winner I...

[Klaytn Hackathon Winners] Interview #1 — BlockDevs Asia#Unlock your keyboard, and go hack.Dear Klaytn readers,The Klaytn Hackathon was Klaytn’s first blockchain hackathon, and developers were able to create BApps (Blockchain Applications) on Klaytn’s public testnet, Baobab. Klaytn allows developers to build service-centric, user-oriented BApps, and the Klaytn Hackathon was a virtual hackathon designed to allow global developers to unite and work together towards a common goal.Passionate developers from all around the world joined together to commit and create BApps. During the 5 weeks of the hackathon, developers from across the world joined together virtually, and 4 winners were ultimately selected from the diverse, creative submissions.The Klaytn Hackathon Winner Interview Series will feature the first and second place winners, BlockDevs Asia and TryCrypto, respectively. Through the series, Klaytn readers will be able to learn more about the winning teams, their projects, and their thought process behind and throughout the Klaytn Hackathon experience.#1. IntroductionsHello BlockDevs Asia! Congratulations on winning 1st place at the Klaytn Hackathon! Could you please introduce your team and team members? How does it feel to be the winners of the Klaytn Hackathon? :)Hello Klaytn! BlockDevs Asia is a non-profit community group organized by and for software developers, technology enthusiasts, and business people looking to learn more about developing blockchain apps or systems. By organizing free, educational meetups about complex and technical topics, we dive together with a large group of passionate developers into advancing blockchain technology. To date, we have organized more than 20 events, 2 large hackathons, and 20 meetups.We all have diverse professional experiences individually, but we are united by our strong interest in blockchain along with our experiences in software development and IT.Our team members are:Caspar Oostendorp, Amadeo Brands, Roy Selbach, Tracy Li (left to right)Caspar OostendorpCaspar Oostendorp is a software/blockchain architect, entrepreneur, and co-founder of Oost and Voort, a software consulting company based in the Philippines.Amadeo BrandsAmadeo Brands is a co-founder of EOI Digital, a digital marketing agency based in the Philippines with strong roots in blockchain technology.Roy SelbachRoy Selbach is a co-founder of EOI Digital with Amadeo Brands.Teresa (Tracy) Li.Tracy Li has been a software engineer/architect for 17 years. Many of her experiences were in building enterprise solutions for corporations.Despite our time constraints, we were able to create a working BApp in just a few days by devoting a significant amount of time. We feel nothing but proud for what we have done, and being the first place winners, we are very excited to promote our BApp and the Klatyn blockchain platform to everyone.#2. The Journey from the Netherlands to the PhilippinesYour team, BlockDevs Asia, is currently based in the Philippines, but it seems like some of you are from elsewhere. Why did some of you relocate to the Philippines, and how did all of you come together to form a team? What piqued your interest in blockchain?With Asia as one of the most promising continents regarding blockchain innovations, Caspar Oostendorp, Amadeo Brands, and Roy Selbach moved from the Netherlands to the Philippines. Blockdevs was founded in early 2017 by Caspar Oostendorp and Chris Verceles. At that time, there were a modest number of developers attending the meetups; then things changed in 2018 — blockchain gained more interest.We all came together at the start of this year, 2019. We started as volunteers, and we eventually found ourselves continually contributing our skills and resources to grow the organization. From there, we were able to build a good synergy as a team, hence, we decided to formally incorporate it as a non-profit industry organization for blockchain.What piqued our interest in blockchain was the strong narrative of having a purely decentralized, trustable, and immutable system that grows in open governance. Blockchain gives us the ability to subvert overbearing government and central authorities, which is quite powerful.Wow, what a dynamic journey! In that case, how would you describe the blockchain community and ecosystem in the Philippines? Would you say that the Philippines is a blockchain-friendly environment?The blockchain community in the Philippines is very vibrant and interactive due to the 2017 hype that stimulated community growth. There are regular meetup events that occur in different parts of the country. Once we saw how quickly people were starting to become interested in blockchain and crypto, we realized that we should foster and grow the technical talents here in the Philippines. We would like to position the Philippines as a global hub for the blockchain and crypto industries.#3. Klaytn Hackathon & Klaytn ChampWhy did your team decide to participate in the Klaytn Hackathon? How was the experience? What challenges, if any, did your team overcome and was your team able to grow from the experience?We first learned about Klatyn from Asia Blockchain Review. They asked us to co-organize an event to introduce Klatyn in Manila, Philippines. After the event, we saw the huge potential of Klaytn.We later noticed the hackathon by coincidence, which gave us many opportunities to build on Klaytn. We decided to participate in the Klaytn Hackathon since we are strong advocates of blockchain technology and would like to push mainstream adoption forward. We also believe that Klatyn has the potential to drive blockchain technology since Klaytn is developed by Ground X, a subsidiary of its multi-billion, parent company: Kakao.The Klatyn hackathon was an opportunity for us to showcase a fully functional blockchain application (BApp) to the world. Despite our busy schedules, we managed to devote a significant amount of time to create the Klatyn Champ BApp, which is a challenge game for all users with verifiable scoring and certification. We have implemented an ownable smart contract that stores each user’s level information and certificate while also verifying developer activity at the same time. Our goal is to make technical documentation and onboarding with Klaytn more fun through gamification and incentivization.We are always motivated to promote positive usage of blockchain, which is the main reason why we joined the hackathon. We also strive to encourage developers to build tools that would help solve real world problems, especially in the areas of corruption and government bureaucracy.By partnering with bright talents, we put each of our skills into play and encouraged each other to produce the best possible results. The major challenge we faced was the time constraint and our busy schedules, but we all pulled it through. Asides, not only did we learn to work effectively as a team, but we also learned how to work with Klaytn. This opens future doors for building blockchain tools and for utilizing Klaytn.Looking back, would you participate in the Klaytn Hackathon again? Why or why not?Yes, definitely! We strongly believe in Klaytn’s mission, and we firmly believe in the technology that Klatyn has established. Secondly, we’d like to expand our reach globally to promote Klatyn and blockchain in general. We, of course, learned much through this experience, but it was a fun process overall to work with Klaytn to build a winning app.Do you have plans to continue and develop your project, Klaytn Champs? What additions could you make to Klaytn Champs to improve it even more?It’s good that you ask that question — currently we are building out the project even more. Thanks to the hackathon, we saw a huge potential for this tool. After the announcement that we were winners, we immediately created a roadmap with the end goal of pushing it to the public. With the addition of many new courses and features such as leaderboards, referral programs, and integration, we are aiming to take a prominent position in rewarding and onboarding developers onto Klaytn. We are confident that Klaytn Champs can be beneficial for the long term strategy of Klaytn.#4. Klaytn from a Developer’s PerspectiveHaving experienced Klaytn first-hand, are you continuing to use Klaytn? How has Klaytn helped you and your team?Yes, we are using Klaytn to further develop Klaytn Champs. Klaytn has helped us as an easy-to-start-with platform, and we see great potential for Klaytn especially in Asian markets due to Klaytn’s enterprise blockchain system. Since Klaytn is based from Solidity, contracts are easily portable, which makes it very easy to get started.For our last question, we would like to ask if you would recommend Klaytn to other developers. How is Klaytn different or better from a developer’s perspective?Klatyn has more user-friendly developer tools and documentation compared to other blockchain platforms. It is easy and quick to set up and get started. Since we are all familiar with Solidity, we were able to build our smart contracts quickly. We also didn’t have that much difficulty in integrating our contracts with the frontend. We used caver-js, and it was pretty straightforward.Once again, congratulations! We look forward to inviting your team to our all-expenses paid, TXGX conference in October!— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —The next article in the series will be an interview with our second place winners — TryCrypto! Please be on the lookout for more content and events from Klaytn.[Klaytn Hackathon] Winner Interview #1 — Blockdevs Asia was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 22

[Klaytn Hackathon Winners] ...

[Klaytn Hackathon Winners] Interview #2 — TryCrypto#Unlock your keyboard, and go hack.Dear Klaytn readers,The Klaytn Hackathon was Klaytn’s first blockchain hackathon, and developers were able to create BApps (Blockchain Applications) on Klaytn’s public testnet, Baobab. Klaytn allows developers to build service-centric, user-oriented BApps, and the Klaytn Hackathon was a virtual hackathon designed to allow global developers to unite and work together towards a common goal.Passionate developers from all around the world joined together to commit and create BApps. During the 5 weeks of the hackathon, developers from across the world joined together virtually, and 4 winners were ultimately selected from the diverse, creative submissions.The Klaytn Hackathon Winner Interview Series will feature the first and second place winners, BlockDevs Asia and TryCrypto, respectively. Through the series, Klaytn readers will be able to learn more about the winning teams, their projects, and their thought process behind and throughout the Klaytn Hackathon experience.The previous article introduced BlockDevs Asia, the first place winners of the Klaytn Hackathon. In this article, we will introduce our second place winners, TryCrypto.#1. IntroductionsHello TryCrypto! Congratulations on winning 1st place at the Klaytn Hackathon! Could you please introduce your team and team members? How does it feel to be the winners of the Klaytn Hackathon? :)Thanks so much, it feels awesome. We’re really excited about Klaytn’s mission to make blockchain usable and we’re excited to be part of that mission.Our team is TryCrypto, and we’re building the foundational building blocks for Web3.0. For the Klaytn Hackathon, we built SmartPage, a product that allows people to deploy a BApp without writing code.Our team is three people: Nik Kalyani, Chase Chapman, and Niharika Singh.Nik Kalyani, Chase Chapman, and Niharika Singh (left to right)Nik Kalyani:Nik is a serial entrepreneur who is passionate about emerging technology trends and teaching about technology. Nik is a 12-time Microsoft MVP and the co-founder of TryCrypto as well as WhenHub, a blockchain-based startup. Previously, Nik co-founded DotNetNuke, a CMS in the Microsoft ecosystem (acquired in 2017).Chase Chapman:Chase is the co-founder of TryCrypto and she’s on a mission to make blockchain technology accessible. As a business student at the University of Michigan with no technical background, Chase saw the need for empathy in the space and began working with Nik on what is now TryCrypto.Niharika SinghNiharika is a masters student studying Management, Technology, and Economics at ETH Zurich. Niharika’s insatiable desire to learn and help others learn drove her to begin writing Medium posts. Now, she is a top writer on Medium in Bitcoin with about 3,000 followers.#2. The Remote Collaboration Experience & BlockchainYour team, TryCrypto, is currently based in Mountain View, California, but it seems like some of you are located elsewhere. How did all of you come together to form a team? What piqued your interest in blockchain?We are definitely spread geographically! We’re based out of Mountain View, California, where Nik lives, but Chase lives in Ann Arbor, Michigan and Niharika recently moved to Zurich for graduate school. We were already working together on projects for TryCrypto when we came across the hackathon, which was aligned with our overall vision for TryCrypto. We were very excited to see a project that focuses on usability, so we knew we had to participate in the hackathon.As for how we became interested in blockchain:Nik Kaylani: Nik has been developing software since he was a teenager, constantly looking for innovative new technologies to explore and use. Nik first got into blockchain mining Bitcoin and became excited about the technology when he discovered the ability to program blockchains with smart contracts on Ethereum.Chase Chapman: Chase became interested in blockchain while working in marketing, specifically looking at the potential for blockchain to track rights to personal data. After exploring more, Chase realized blockchain could impact almost every industry and became very excited about the potential for the technology.Niharika Singh: Niharika began her journey into software development during her bachelors. Niharika explored many technologies until she resonated with blockchain. Eventually, she started documenting her learnings in Medium posts which connected her with the blockchain community. On learning about blockchain at a deeper level, Niharika loved the underlying philosophy of blockchain: self-sovereignty.Wow, what a dynamic journey! In that case, how would you describe the blockchain community and ecosystem in the U.S.? Would you say that the U.S. is a blockchain-friendly environment?The U.S. is blockchain-friendly — there’s a lot going on here and some exciting projects coming out of the U.S. The blockchain communities here are strong, and there’s a lot of diversity of thought when it comes to the approach. People are taking mass adoption of blockchain technology and applications. That being said, we’re really excited to get more involved in the blockchain scene in Asia, specifically Korea.#3. Klaytn Hackathon & SmartPageWhy did your team decide to participate in the Klaytn Hackathon? How was the experience? What challenges, if any, did your team overcome and was your team able to grow from the experience?We first learned about Klaytn through Nik, who saw a post about the Klaytn hackathon, and we thought that this would be an awesome opportunity to support the usability movement in blockchain.We were very excited about Klaytn’s focus on user-friendly blockchain experiences. At TryCrypto, we are very focused on usability, so the goals of Klaytn were aligned with our own. Ultimately, we believe that decentralized technology does nothing if no one can use it. We decided to participate in the hackathon to help further that shared mission of providing user-friendly experiences for the decentralized web.From a technical perspective, the ability to generate a JSON Schema on the fly to create HTML elements that users can instantly grab for interacting with a smart contract was a challenge. On the business side of things, our challenge was thinking through ways to support both marketplaces that SmartPage creates. SmartPage allows users to pay to deploy smart contracts from a template, but it also requires developers who contribute to that library of smart contracts, which effectively creates two different marketplaces.We worked remotely across three different time zones, so that always requires extra coordination. Using UTC is certainly one of the best ways to coordinate work in that situation. We didn’t have too many issues, but we had been working together remotely as a team for a couple of months prior, so we worked well together for the hackathon.Looking back, would you participate in the Klaytn Hackathon again? Why or why not?Yes! The Klaytn Hackathon was a fantastic experience and we are so grateful for the opportunity. The team was communicative and helpful, and the hackathon was a great opportunity to get acquainted with the Klaytn ecosystem.We learned a lot and improved our dynamic as a team. One of the best parts about having such a diverse set of perspectives and experiences on our team is that we always learn from one another, sometimes when we least expect it. SmartPage was a new and interesting challenge both technically and in terms of telling a story.Ultimately, the hackathon was a learning experience for the entire team and we are so glad we participated.Do you have plans to continue and develop your project, SmartPage? What additions could you make to SmartPage to improve it even more?We are continuing to develop SmartPage and expect to launch in early November. At launch, the focus will be in the gaming industry, but we expect to expand beyond gaming after the initial launch.As far as improvements, we are working to make the experience of selecting a smart contract and customizing that contract very intuitive. We’re also considering partnerships with firms focused on design — we want to make sure SmartPage users have the best web design tools they need to build beautiful decentralized apps. Ultimately, our goal is to make SmartPage the go-to for anyone building a decentralized application.#4. Klaytn from a Developer’s PerspectiveHaving experienced Klaytn first-hand, are you continuing to use Klaytn? How has Klaytn helped you and your team?The Klaytn team was helpful and knowledgeable, answering questions and ensuring we had the resources we needed for a successful submission. We will continue to use Klaytn and hope to partner with Klaytn in the future to provide support for new applications as we continue to build SmartPage.For our last question, we would like to ask if you would recommend Klaytn to other developers. How is Klaytn different or better from a developer’s perspective?From a technical perspective, Klaytn provides unique flexibility that makes developing new solutions or integrating blockchain technology into existing systems simple. Klaytn also provides a unique benefit to developers in terms of enterprise backing — the hybrid model and corporate partnerships make it a reliable business platform. Their emphasis on usability is really an important part of building on Klaytn and the developer tools reflect that focus.Klaytn’s positioning as South Korea’s representative blockchain is beneficial to developers who want to get involved in that ecosystem. We are excited to see the future of Klaytn open up opportunities for developers hoping to get involved in the South Korean blockchain ecosystem (and beyond) and we hope to get more involved in that ecosystem as well.Once again, congratulations! We look forward to inviting your team to our all-expenses paid, TXGX conference in October!— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —This is the final article in the Klaytn Hackathon Winner Interview Series. We hope that readers enjoyed the content and learned more about Klaytn and the Klaytn Hackathon.As always, subscribe and stay tuned for more exciting updates from the Klaytn team![Klaytn Hackathon Winners] Interview #2 — TryCrypto was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 22

[Klaytn Next] Be Part of th...

Be Part of the Klaytn Week!Hi, Klaytn Fans!We would like to introduce the opportunity to be part of Klaytn Week!As we have announced before, two big events will take place as part of the ‘Klaytn Next’ on 28 and 29 November at MOSS Studio in Seoul, Korea. One is ‘Klaytn Governance Council Summit’ for the Klaytn’s Governance Council members and another is TXGX, an annual technology forum to introduce Klaytn’s core technology and use cases.We truly believe in the power of the community to make our open-sourced Klaytn platform more stable and powerful. The more blockchain community is engaged, the closer the mass adoption of blockchain is. That is why we also welcome and support various events driven by Klaytn community besides two events hosted by Ground X.Then, what is going to happen during the week of Klaytn Next? Please suggest to us if you want to host seminars, conferences, tutorial sessions, or any form of activities (community@klaytn.com). Be the part of Klaytn Week!Tutorial Session by UnivChainWhen: 19:00 on 25th, NovemberWhere: Taebong-ro, Seocho-gu, Seoul 114 (Yangjae R&CD Innovation Hub 1F Playground)Topic: How to Deploy Blockchain-based Application on KlaytnRegistration: https://www.onoffmix.com/event/198712Tutorial Session by Gacheon UniversityWhen: 16:00 on 26th, NovemberWhere: Gacheon UniversityTopic: Introduction of Klaytn & TechnologyRegistration: None (Invitation Only)Blockchain Open Seminar by Skkrypto (Blockchain Association @ Sung Kyun Kwan University (SKKU))When: 18:00 on 26th, NovemberWhere: International Hall 90110, Humanities and Social Sciences Campus, Sung Kyun Kwan UniversityTopic: Blockchain for Social ImpactRegistration: http://bit.ly/2OiAQvI[Klaytn Next] Be Part of the Klaytn Week! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 18

Our 2nd Annual Tech Forum T...

Today we are excited to announce that our second annual technology forum TXGX will be taking place on November 29 in Seoul, Korea.Our first TXGX, short for Tech Forum by Ground X, took place at Kakao HQ in Jeju Island last year, with speakers including Dawn Song from Oasis Labs and Xinshu Dong of Zilliqa to discuss scalability, storage, consensus algorithm, etc.This year’s TXGX brings together Klaytn developers and partners to discuss the latest Klaytn developments centered around the Klaytn mainnet that launched this past June. Some of the key topics include Klaytn architecture, Service Chain solutions, and developer tools that enhance blockchain application development.Jason Han, the CEO of Ground X, who heads the development and operation of the Klaytn platform will speak along with other numerous engineers of the Klaytn including Sangmin Seo, the Head of Technology and Junghyun Colin Kim, the Leader of the Platform team. Further, some of Klaytn partners that provide Klaytn-based blockchain services are also presenting.This year’s TXGX This year’s TXGX will take place as part of the ‘Klaytn Next’ event, which will be held over two days from November 28 to 29 at MOSS Studio in Seoul, Korea. On the first day of the event, Klaytn invites the participating Governance Council members for ‘Klaytn Governance Council Summit’ to introduce blockchain use cases in business and Council development strategy.Klaytn partners with major firms and organizations in various industry domains as part of its Governance Council program, jointly operating its consensus node network dedicated to advancing blockchain utility. Klaytn Governance Council Summit invites the participating firms including the Union Bank of the Philippines to share their Klaytn technology implementation in business and also collaborate amongst themselves to drive mass blockchain adoption.Klaytn partners with major firms and organizations in various industry domains as part of its Governance Council program, jointly operating its consensus node network dedicated to advancing blockchain utility. Klaytn Governance Council Summit invites the participating firms including the Union Bank of the Philippines to share their Klaytn technology implementation in business and also collaborate amongst themselves to drive mass blockchain adoption.We are excited to hold the 2nd annual TXGX with our partners and developers that utilize the Klaytn platform to offer services. We hope that the Klaytn platform and its advanced technology can contribute to mainstream adoption of blockchain. Also, we are first bringing together our Governance Council members since the mainnet launch this past June to showcase Klaytn-implemented use cases, and we hope to open an in-depth discussion on the future of blockchain technology.Register NOW to attend TXGX 2019. For more information, visit the official website at http://txgx.io.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Our 2nd Annual Tech Forum TXGX Is Open for Registration was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 07

Presenting Klaytn at Ethere...

Presenting Klaytn at Ethereum’s Devcon — Part 1It all started with an e-mail from Devcon5 that our Junghyun, the leader of Platform & SDK Team, received:Junghyun had believed that the rigorous demands of taking care of blockchain user account addresses, which typically associate with randomly generated character strings, stand as one of the biggest barriers that hinders blockchain mass adoption. In order to overcome such usability limitations, specifically within the Ethereum sphere, Junghyun, together with the Klaytn team, focused on extending account and transaction models while preserving compatibility, which were successfully incorporated into the Klaytn mainnet, launched this past June.He believed that Klaytn’s new account and transaction models are applicable to other Ethereum-compatible blockchain platforms to increase usability and performance. He thus proposed to introduce this system at this year’s Devcon, and he was officially invited to speak at this year’s Devcon, with a comment from the Devcon Team: “the Ethereum community should see this.”And we were off to Osaka, Japan.Devcon 5 at ATC Hall in Osaka, JapanDevcon is the annual Ethereum developers conference held by the Ethereum Foundation. With a mission to educate and empower the community to bring decentralized protocols, tools, and culture, Devcon invites builders of all kinds: developers, designers, researchers, community organizers, social economists, and artists.The first day of the conference started with the opening ceremony of the Ethereum Magicians, which is a self-organized fellowship, initiated by James Pitts and Greg Colvin in order to maximize technical opportunities, share ideas, and work together effectively across boundaries. With a mission to keep Ethereum “the best it can technically be,” the fellowship seeks to nurture community consensus on the technical direction and specification of Ethereum. In doing so, the fellowship invites any interested person to participate in improving the Ethereum improvement process, which can be submitted to the Ethereum Improvement Proposals, aka the EIPs. The EIPs describe standards for the Ethereum platform, including core protocol specifications, client APIs, and contract standards, which can be proposed by any Ethereum community member.The opening ceremony also introduced the Ethereum Cat Herders, a global grassroots community dedicated to improving the Ethereum protocol and community by improving underlying practices. The Cat Herders are in a sense ‘project managers,’ dedicated to facilitating and coordinating tasks required to achieve specific project outcomes within the Ethereum ecosystem and so assist with moving Ethereum forward.It was no surprise that Devcon 5 kick-off emphasized the power of community, which is often overlooked when we discuss blockchain. Community is the group of people, companies, and other organizations that together support and maintain the blockchain. It can include the core developers who work on building the network itself, the miners who own and operate the nodes that constitute the network, the larger ecosystem of developers and entrepreneurs who are developing applications on the network, the users who enjoy a variety of applications built on the network, and other researchers, participants, advisors, etc.¹ To run, maintain, and support a project, especially if it is decentralized, the communication, coordination, and facilitation among the productive community of dedicated members stand as key components.Klaytn, the Ground for All Blockchain ServicesWe Klaytn also believe that building a strong community is one of the key elements in running our project. Committed to facilitating the creation of readily-usable blockchain applications (BApps), we are a 100% open source project to which we invite all the community to participate as a partner, a contributor, and a supporter of the project. You can visit our GitHub page at https://github.com/klaytn/klaytn to find more about the official Go implementation of the Klaytn protocol. For more details on Klaytn design, node operation guides, and application development resources, please visit the official Klaytn Docs, which recently released its Korean version as well. Further, you can also visit our Community at Klaytn Medium page to find more information about our efforts towards community building.After the Opening Ceremony, our team enjoyed a variety of inspiring sessions including Ethereum Roadmap 2020: EEA Meets with the Ethereum Community, which called for the protocol standardization, How Two Microsoft Engineers Build Blockchain Apps on Ethereum Networks featuring Microsoft’s Azure, Ethereum Roadmap 2020: Ethereum 1.0 and Eth1.x with Vitalik, State of Ethereum 2019, which explored the network’s growth based on Google Analytics data, Preventing Disaster: Advances in Smart Contract Vulnerability Detection, featuring MythX, and many more.Continue to Part 2 →[1] Josh Stark, “Building the Foundations for a Scalable Ethereum Community” CoinDesk: https://www.coindesk.com/building-foundations-scalable-blockchain-ethereum-communityPresenting Klaytn at Ethereum’s Devcon — Part 1 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 01

Presenting Klaytn at Ethere...

Presenting Klaytn at Ethereum’s Devcon — Part 2Continued from Part 1 →After the first day of the conference, we attended the Global Coin Research x Decrypt Media Founder Happy Hour in the evening to see our partner, Joyce, the Founder and Editor-in-Chief of GCR. Joyce earlier participated in a discussion session with our Jason at the Consensus 2019 in New York. GCR’s recently published e-book, “The Small Handbook to Asia Crypto: on Local Ecosystems, Trends and Regulations,” also features Klaytn, which you can access via here.Sam introducing Klaytn’s vision and technology at KryptoOsaka MeetupLater, we participated in the KryptoOsaka Meetup: BUIDLing projects of East and West, hosted by Erica of KryptoSeoul. Our Sam, the Head of Technology, introduced Klaytn’s vision and technology, and engaged in a discussion session with other great panelists from CoinMarketCap, HyperLedger, Cosmos, Terra, Zcash, and BlockStack. We were also excited to see some of our community members including the 1st place winner of the past Klaytn Hackathon!Junghyun presented on the 2nd day on Klaytn’s extension of Ethereum’s account and transaction models. He first introduced some of Klaytn’s features that support enterprise usability and mass user adoption: immediate finality, high performance, high scalability, hybrid network architecture, and high usability.He then identified some of Ethereum’s usability limitations that include immutable private key, lack of multisig mechanism, difficulty of extending functionalities, unnecessary transaction fields, and lack of fee delegation.In efforts to improve such limitations, Klaytn has adopted some of new features. First, Klaytn has added account management functions to offer better flexibility in empowering users: changeable private keys, support of multiple private keys, and support of role-based keys, i.e. breaking own permissions based on signing transactions, updating accounts’ key, paying transaction fee on behalf of users. The native support of multi-sig and role-based keys, which is demanded by industry, will hopefully accelerate the blockchain mass adoption and build trust with users.Junghyun presenting ‘Extending Ethereum’s Account and Transaction Models in Klaytn’ at Devcon5Klaytn also refined the transaction model so that each transaction type serves a specific function. This separation of concerns gives more opportunities for performance, usability enhancement, and storage optimization (i.e. 64B reduced for EOAs by adding 1B overhead for type per account) as well as makes it easy to add or extend platform features. Utilizing this design, we introduce several new transaction types without breaking backward compatibility to support the transaction-fee delegation and the extended account management features mentioned above.Klaytn’s new account and transaction models are also applicable to other Ethereum-compatible blockchain platforms, and we hope that our system can trigger the mass adoption of blockchain experiences for millions of users across the globe.It truly was a meaningful opportunity for us to be able to share our efforts towards enhancing usability at this year’s Devcon. We are very grateful for all the attendees, including the Tokyo FinTech’s wrap-up on Junghyun’s presentation!In addition to our sessions and meetups, we also met with several teams and projects that could potentially work together with us in the future. We are dedicated to continually offering high-quality and user-friendly blockchain services, and together with our partners, we will further strengthen our ecosystem.Devcon 5 was full of inspiring sessions and exhibitions, plus great rest zones, giveaways, and treats. We also look forward to seeing the newly proposed Ethereum 2.0 moving forward.More updates on our technology and business to be shared on our Medium page.Thank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Presenting Klaytn at Ethereum’s Devcon — Part 2 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 01

Klaytn welcomes new KLAY BA...

We first welcomed the 1st batch of KLAY BApp Partners this past June. And today we are excited to announce that 8 new ‘KLAY BApp Partners’ have joined Klaytn to expand the Klaytn blockchain ecosystem in bringing mass blockchain adoption.First, Klaytn is partnering with Korea-based weneepl’s TCG (Trading Card Game) ‘Crypto Legends.’ With a mission to ensure user benefits, Crypto Legends allows gamers to utilize their blockchain-powered digital cards as their unique assets. In order to cater to a wide spectrum of users, weneepl is also pushing a number of strategies to evolve Crypto Legends into an e-Sports to offer a variety of services.Skypeople’s collectible RPG (Role-Playing Game) ‘FiveStars’ is also participating. Users are able to make their unique game items while farming materials, which then can turn into NFTs (Non-Fungible Tokens).The blockchain-based game platform ‘PlayDapp’ is another KLAY BApp Partner to join Klaytn. Some of PlayDapp-based popular game services, including ‘Crypto Dozer,’ which was ranked №1 Ethereum game DApp, along with ‘Dozer Bird’ and ‘Dozer Treasures’ will be released on the Klaytn platform.Other notable partners include ‘Battle Racers,’ an action-packed arcade game where you design, build, and race model cars; ‘EVOLUTION,’ a dating simulation game where you decorate your own island and discover an ideal mermaid; and, ‘Terra Virtua,’ the digital collectibles platform that offers immersive collectibles with gamification across PC, mobile, AR, and VR.We are excited to be working with global blockchain service providers to offer high-quality, user-friendly blockchain services for our users. Together with our community, we look forward to further strengthening the Klaytn ecosystem. Thank you!![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Klaytn welcomes new KLAY BApp Partners was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 11. 01

San Francisco Blockchain We...

It’s that time of the year again.Last October, we successfully held our very first Hello, Klaytn meetup in San Francisco during SFBW. This year, we are again coming to San Francisco to celebrate the blockchain week right after we wrap up with the SDC in San Jose.San Francisco Blockchain Week is where blockchain startups, enterprise companies, academics, developers, and investors from around the world come together to define the future of blockchain and cryptocurrencies.This year, we are holding our exhibit booth at SFBW Epicenter @ Marriott Marquis from October 31st to November 1st, so you can stop by to talk to our team to learn more about our technology, business, brand, and ecosystem. Plus, you can get free Klaytn goods, so come visit our booth!In addition, we are also having our VIP lunch on October 31st to introduce more about the Klaytn platform. Our Sam, the head of technology, will give an overview of how Klaytn’s technology works, followed by Sebae, the head of product management, introducing Klaytn’s vision and milestone. We are also planning to do a networking event for the guests. Our team will be available to discuss any partnership, marketing, and community collaboration opportunities, so make sure to register for the VIP lunch here.See you in San Francisco![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/San Francisco Blockchain Week, again. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 31

Experience Our KlaytnPhone ...

Last month, together with Samsung Electronics, we launched the KlaytnPhone, the blockchain variant of Samsung Electronics’ latest flagship smartphone series Galaxy Note10. To further strengthen our collaboration with Samsung, we are also attending Samsung Developer Conference 2019, which is taking place in San Jose, California on October 29th and 30th.SDC (Samsung Developer Conference) brings together thousands of developers, creators, and technologists to explore the newest tech and imagine what’s possible in the future. The two-day conference features exciting keynote announcements and technical sessions by technical leaders.We are running an exhibit booth to introduce our collaboration with Samsung Blockchain Keystore, which earlier added support for Klaytn so that Klaytn’s token KLAY can be stored and managed in Samsung’s Galaxy S10 and Note10 smartphone series. Klaytn, along with Bitcoin, is the second blockchain platform to be supported by Samsung Blockchain Keystore, which initially supported Ethereum. Samsung Blockchain Keystore puts consumers in control of their data by providing a platform to consolidate and easily manage private information and digital keys with vault-like security.Once you visit our booth, you will also be able to experience the recently launched KlaytnPhone. As the first and only smartphone specialized to a blockchain platform, the KlaytnPhone provides an easy and seamless experience for users interacting with blockchain-powered services. The phone has 5 pre-loaded Klaytn-based blockchain applications along with KlaytnPhone Wallet, which supports Klaytn’s token KLAY and KLAY compatible tokens. This wallet is linked with Samsung Blockchain Keystore, which is managed by Samsung Knox, the Samsung’s defense-grade security platform designed to protect from chipset to software. KlaytnPhone is available for purchase online in Korea at www.klaytnphone.com and all buyers are given 2,000 KLAY with 2,000 additional KLAY given on a first-come basis.Furthermore, the Klaytn team members will be available at the booth for two full days, so feel free to stop by and talk to us should you have any question on our technology, business, brand, and ecosystem. Plus, make sure to claim your Klaytn goods!We will continue working together with Samsung to develop many more opportunities to bring the benefits of blockchain. Come visit our booth at SDC![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnhttps://www.facebook.com/groups/klaytndevelopers/Experience Our KlaytnPhone at Samsung Developer Conference 2019 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 29

KLAY listed on Upbit Singap...

A month ago, we celebrated the initial listing of our token KLAY on Upbit Indonesia’s Rupiah market. And today, we are again excited to share with you that KLAY is now listed on both Upbit Singapore and Upbit Indonesia’s BTC markets.The KLAY transfer is currently available between Upbit Singapore and Upbit Indonesia wallets only. Further details of the official transfer of KLAY on other exchanges will be announced only via the official Klaytn webpage at www.klaytn.com and our social channels on Facebook, Twitter, LinkedIn, and Medium. The KLAY listing on Upbit Singapore will also be announced later.With the official introduction of KLAY, we look forward to seeing more developers and service providers participate in the growth of the Klaytn platform. For more information, visit the Upbit Indonesia homepage at https://id.upbit.com and the Upbit Singapore homepage at https://sg.upbit.com.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKLAY listed on Upbit Singapore on Oct. 29 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 29

Klaytn’s fastest-growing bl...

We are excited to announce today that numerous global exchanges, wallets, and blockchain application listing portals have joined Klaytn to expand its blockchain ecosystem in bringing mass blockchain adoption globally.For exchanges, OKEx is participating, in addition to Upbit Indonesia and Coinone that already support Klaytn’s token KLAY or KLAY compatible tokens. Supporting the trading of over 300 crypto assets from 180 different countries, OKEx is one of the world’s largest cryptocurrency exchanges, serving over 20 million users. Also joining Klaytn is BitForex, which supports the trading of over 300 crypto assets from 200 different countries. BitForex operates global offices in Singapore, Malaysia, Korea, and the Philippines.We are also partnering with OpenSea, one of the largest digital asset platforms that allows users to buy and sell blockchain-based collectibles, game items, and other digital assets. Once Klaytn-powered BApps launch NFTs (Non-Fungible Tokens) based on their in-app game items or assets, the users will be able to trade them via OpenSea.In addition to NOVA Wallet and Bitberry, 7 new wallets are now supporting the trade of KLAY or KLAY compatible tokens. The partners include ‘Bitkeep,’ the decentralized multi-chain wallet with 1.4 million global users; ‘ZenGo,’ the first keyless crypto wallet that offers both simplicity and security to manage and buy multiple blockchains; ‘Huobi Wallet,’ the China-based multi-currency wallet, famous for its highly reliable security and simple functions; ‘Torus,’ the blockchain wallet that allows users to log on with their Gmail,Facebook, and Reddit accounts; ‘Hexlant,’ the blockchain laboratory that developed the ‘KlaytnPhone Wallet,’ which was embedded in the Samsung’s Galaxy Note10 variant, ‘KlaytnPhone’; ‘D’CENT,’ the hardware wallet that provides bank grade EAL 5+ safely executed on Secure OS; and ‘Midas Protocol,’ the universal crypto wallet that ensures strong security, integrated with an in-app marketplace and multiple exchanges.Blockchain application listing sites including ‘DApp.com’ and ‘State of the DApps’ are also participating in the Klaytn ecosystem. Functioning as curated directories of blockchain applications built on various platforms such as Ethereum, EOS, and Steem, the portals categorize and rank applications based on data analysis. More than a dozen Klaytn-powered blockchain applications are already listed on both DApp.com and State of the Dapps, with more BApps to be listed soon.We look forward to seeing more developers participate in our platform as we continue to expand and solidify our ecosystem. As Asia’s no. 1 blockchain platform, we will offer high-quality, user-friendly blockchain services for millions of users.Thank you![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKlaytn’s fastest-growing blockchain ecosystem with additional partners onboard was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 25

Klaytn Governance Council: ...

Binance, the first blockchain company to join the Klaytn Governance Council, is a blockchain ecosystem comprised of several arms to serve the greater mission of blockchain advancement and the freedom of money. Binance Exchange is the leading global cryptocurrency exchange by trading volume, with users from over 200 countries and regions. The Binance ecosystem is also comprised of Binance Labs (venture capital arm and incubator), Binance DEX (decentralized exchange feature developed on top of its native, community-driven blockchain software system, Binance Chain), Binance Academy (educational portal), Binance Research (market analysis), Binance Charity Foundation (blockchain-powered donation platform and non-profit for aiding in sustainability), etc.“Ground X and its public blockchain project Klaytn share a mutual vision with Binance in fostering and stimulating sustainable growth in the industry and to bring meaningful use cases. We are excited to join the Klaytn Governance Council and to work with other key partners like LG Electronics and Kakao, who are the most innovative companies Asia, to foster the growth of the global blockchain ecosystem in this joint and open effort.” — Wei Zhou, CFOFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Binance was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 22

Klaytn Docs 한글 버전 공개

안녕하세요.Klaytn 기반 BApp 개발자를 위한 기술 문서 사이트인 Klaytn Docs의 한글 버전이 출시되었습니다.Klaytn Docs는 개발자가 블록체인 애플리케이션(BApp·Blockchain Application)을 위해 Klaytn 플랫폼에 적응하고 또 손쉽게 사용할 수 있도록 여러 개발 도구와 API를 제공합니다. Klaytn Docs에서는 이러한 도구의 사용법과 API 명세를 제공하고 또 BApp 개발을 처음으로 시도하는 사람도 쉽게 시작할 수 있도록 샘플 애플리케이션과 튜토리얼을 제공하고 있습니다. 스마트 컨트랙트 개발부터 BApp 개발까지 따라해 보실 수 있습니다. 뿐만 아니라, Klaytn Docs를 통해 Klaytn의 비전, 미션, 마일스톤 등에 대해서도 확인하실 수 있습니다.Klaytn은 서비스 중심의 블록체인 플랫폼으로, 편리하고 직관적인 개발 환경을 제공하여 더 많은 유저들이 쉽고 유의미한 블록체인 기반 서비스를 경험하는데 초점을 맞추고 있습니다. 이를 통해 블록체인 기술의 가치와 유용성을 증명하여 블록체인 기술의 대중화를 목표로 합니다. Klaytn Docs의 한글 버전 출시를 통해 국내 개발자들이 Klaytn 플랫폼을 활용하여 유의미한 블록체인 서비스 개발에 보탬이 되고자 합니다.Klaytn에 대한 최신 정보를 제공하기 위해 지속적으로 Klaytn Docs를 업데이트하고 있으니 많은 관심 부탁 드립니다. 이미 한글로 번역된 Klaytn Docs의 품질 향상에 기여하거나 그 외 언어로 Klaytn Docs를 번역하는데에 참여하실 수 있습니다. 관련 정보는 여기를 참조해 주세요.Klaytn Docs 한글 버전을 지금 바로 만나보세요: https://ko.docs.klaytn.com감사합니다.<Klaytn에 대하여>Klaytn은 한국 최대의 모바일 플랫폼 카카오의 블록체인 전문 계열사인 그라운드X가 개발한 퍼블릭 블록체인 플랫폼이다. 블록체인 기술의 가치와 유용성을 증명해 블록체인 기술을 대중화하는 것을 목표로 하고 있다. 이를 위해 이용자들이 쉽게 블록체인 기술을 접할 수 있도록 기존 블록체인 플랫폼이 가지고 있는 이용자 경험(UX)의 한계점을 개선하고, 직관적이고 쉬운 개발 환경을 만들고자 한다. 또한, 수백만명 이상의 이용자들을 대상으로 하는 블록체인 기술 기반의 다양한 서비스들이 시장에 나올 수 있도록 뛰어난 성능을 갖춘 플랫폼으로 개발되었다.<Klaytn 소셜미디어 계정>http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKlaytn Docs 한글 버전 공개 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 18

Klaytn Docs now available i...

Today we are excited to announce that the Korean version of Klaytn Docs has been released. Klaytn Docs is a set of documents that introduces and explains Klaytn platform, with a mission to help developers easily use and adapt to Klaytn platform for their BApp (Blockchain Application) development. You can find more information about the developer guides, resources, and tools including APIs and various tutorials with complete sample codes. With Klaytn Docs, you can also learn more about Klaytn’s vision, mission, and milestone.Klaytn is a service-centric platform, seeking to trigger the mass adoption of blockchain experience for millions of users across the world. In doing so, Klaytn provides an intuitive development environment for developers so that more users can easily enjoy various blockchain-powered services. With Klaytn Docs now available in Korean language, we hope to see more Korean-based developers and service providers participate in the growth of the Klaytn platform.We are constantly updating our guidelines and instructions to provide the most up-to-date information about the Klaytn platform, so we look for your continued support. You can also participate in translating or improving the Klaytn Docs into other foreign languages. For more information, click here. In the meantime, come visit the Korean version of Klaytn Docs now: https://ko.docs.klaytn.comThank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing an intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKlaytn Docs now available in Korean was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 18

8 New Service Partners Join...

Dedicated to building readily usable blockchain-powered services, Klaytn is partnering with promising blockchain projects in various industry domains with massive global user base. More than a dozen of its partners that earlier joined Klaytn have already launched blockchain services, while others are set to open until early next year. With 8 new partners onboard, we now have a total of 47 service partners.Operated by Korea’s art promotion initiative ‘ARTWA Platform,’ ‘STARTnet’ is a social commerce-based art platform committed to fostering new artists and innovating the art industry. It seeks to create a transparent art market by equipping the artists with the right to protect their own artworks. It also provides friendly art services and curations that anybody can enjoy.Developed by Korea’s big data-based social media platform ‘0.8L,’ ‘LITER’ will also be operated through Klaytn. By applying the blockchain-powered incentive mechanism to its over 600,000 existing global users, LITER will offer fair rewards for reviews of the products and services.‘GoodMorning’ is a marketing and data distribution platform that adds commercial value and creates trust index to various information and social networks owned by individual users.A blockchain-based logistics service, ‘Dkargo’ has also released its plan to collaborate with Klaytn. By incorporating new mobility services beyond the existing freight transport, Dkargo seeks to create an efficient network and expand the entire logistics industry.Other notable industry partners include ‘LOON,’ the blockchain-based healthcare service focused on women’s physiological health; ‘Monopoly,’ the platform that provides investment information for collectibles market including art, wine, and jewelry; ‘Spl.yt,’ the decentralized e-commerce protocol for global inventory and affiliate marketing system across marketplaces; and, ‘TUNE Token,’ the smart contract design service for the U.S.-based award winning music platform ‘Cre8tor.app,’ which rewards all stakeholders in the creation and distribution of music while providing a transparent royalty system.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn8 New Service Partners Join Klaytn was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 18

Klaytn Governance Council: ...

Yeahmobi is an intelligent mobile advertising platform whose data-driven marketing solutions cover over 200 regions. With a vision to construct an infrastructure to connect global advertising with blockchain technology, Yeahmobi operates in areas of consumer applications, mobile games, cross-border e-commerce, lifestyle, and travel. Headquartered in China, it has global offices in the U.S., Germany, Korea, and Japan.“We are going to build a brand new blockchain digital advertising platform for users and publishers, and we also hope to develop a stronger blockchain community.” — Simon Lan, Co-FounderFor more information on Klaytn Governance Council, visit our Council pageon our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Yeahmobi was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 14

Klaytn Governance Council: ...

AhnLab, Inc. is the Korea’s leading security software provider, committed to delivering comprehensive protection for endpoints, networks, and transactions. It offers threat prevention that scales easily for high-speed networks by combining cloud analysis with endpoint and server sources. its multidimensional approach combines with exceptional services to create global protection against attacks that evade traditional security defenses.“We hope to work with the initial members of the Council to provide a stable and reliable infrastructure of the Klaytn platform.” — Ho Woong Lee, CTOFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: AhnLab, Inc. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 11

Klaytn Governance Council: ...

LG Uplus is a major ICT company owned by LG Corporation, one of the largest Korean conglomerates, and also the parent company of LG Electronics and LG International. Its services include personal mobile services, business solution services, and global roaming phone rentals.“With our expertise in providing cutting-edge telecommunications services, we hope to develop more advanced services together with Klaytn technology.” —Hyun-Hwoi Ha, CEOhttps://www.uplus.co.kr/en/For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: LG Uplus was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 01

Klaytn Governance Council: ...

LG Uplus is a major ICT company owned by LG Corporation, one of the largest Korean conglomerates, and also the parent company of LG Electronics and LG International. Its services include personal mobile services, business solution services, and global roaming phone rentals.“With our expertise in providing cutting-edge telecommunications services, we hope to develop more advanced services together with Klaytn technology.” —Hyun-Hwoi Ha, CEOhttps://www.uplus.co.kr/en/For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: LG Uplus was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 10. 01

Klaytn Governance Council: ...

Based in Korea, Netmarble is the fastest-growing mobile game company in Asia. As a top mobile developer and publisher worldwide, Netmarble has produced and serviced some of the most successful mobile games, including MARVEL Future Fight, Seven Knights, Raven (Evilbane in U.S.) and Everybody’s Marble. Netmarble strives to entertain audiences of all ages and around the world by providing innovative mobile gaming experience.For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Netmarble was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 30

Klaytn Governance Council: ...

Kakao is the №1 mobile platform and service provider in South Korea. Starting from the operator of a mobile messenger application, KakaoTalk, with over 50 million active users, Kakao grew as a major IT conglomerate with almost 100 subsidiaries, including Kakao Page, Kakao IX, and Kakao Games, providing a wide range of mobile and Internet services. With the vision to innovate the way people connect, Kakao aims to intensify the connections between people and technology based on its wide-reaching power to our daily lives in many industries.“Together with Klaytn, Kakao will trigger the mass adoption of intuitive and user-friendly blockchain experience for millions of users around the world.” — Maydeen Shin, CTOhttps://www.kakaocorp.com/?lang=enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Kakao was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 27

Klaytn Governance Council: ...

NEOPLY is an investment arm of Neowiz, one of the largest gaming companies in South Korea, specializing in blockchain and cryptocurrency investments. As a startup accelerator, NEOPLY also provides mentoring, angel-funding and workspace for startups.“Together with Klaytn, we will develop killer blockchain services that can deliver meaningful value to users.” — Yongkil Kwon, CEOhttp://www.neoply.comFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: NEOPLY was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 25

KLAY to be Listed on Upbit ...

KLAY to be listed on Upbit Indonesia on Sep. 26thTwo weeks ago, we shared with you a teaser for the KLAY listing… And today, we are excited to announce that KLAY is to be listed on Upbit Indonesia this coming Thursday the 26th.You can only transfer KLAY between Upbit Indonesia and Upbit Singapore wallets. Further details of the official transfer of KLAY on other exchanges will be announced only via the official Klaytn webpage at www.klaytn.com and our social channels on Facebook, Twitter, LinkedIn, and Medium. The KLAY listing on Upbit Singapore will also be announced later.With the official introduction of KLAY, we look forward to seeing more developers and service providers participate in the growth of the Klaytn platform. We also invite you to join our BApp competition, Klaytn Horizon for chances to win KLAY. The project submission is open until October 31st.In the meantime, for more information on the KLAY listing, visit the Upbit Indonesia homepage at https://id.upbit.com.Thank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKLAY to be Listed on Upbit Indonesia on Sep. 26th was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 24

Klaytn Governance Council: ...

Creating featured characters based on KakaoTalk emoticons online and offline, Kakao IX is the character business unit of Kakao. In addition to producing goods that use Kakao’s intellectual property for characters, Kakao IX also serves as a documentary magazine publisher, food and beverage brand owner and real estate developer.“We look forward to creating an environment in which our customers can enjoy a new kind of brand experience based on token economy.” — Seung Jo Kwon, CEOhttps://www.kakaoix.com/en/indexFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Kakao IX was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 23

Klaytn Governance Council: ...

Hi Inc. is a global travel and lifestyle business providing services to hotels, travelers, brands, destination marketing organizations and tourism boards.“We are very excited to join Klaytn ecosystem, which stands at the forefront of applying blockchain technology to everyday life.” — Terence Kwok, CEOhttps://www.hiinc.comFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: hi, Inc. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 20

Klaytn Governance Council: ...

Kakao Page is Kakao’s main content platform for webtoons, novels, bestsellers, and movies. Kakao Page also functions as a digital content marketplace that allows brands and individuals to create and distribute content.“We are excited to explore the boundless opportunities of enterprise-level blockchain technology together with Klaytn partners.” — Jerry Cha, CSOhttps://www.kakaocorp.com/service/KakaoPage?lang=enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Kakao Page was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 09

Meet Samsung Galaxy Note10 ...

Today, we are excited to unveil KlaytnPhone, the blockchain variant of Samsung Electronics’ latest flagship smartphone series Galaxy Note10.KlaytnPhone is the first and only smartphone that offers easy and seamless experience for users interacting with blockchain-powered services. With KlaytnPhone, you can experience an all-in-one blockchain ecosystem from token to wallet to blockchain application.KlaytnPhone comes with 5 pre-loaded Klaytn BAppsincluding Antube, FitsMe, Haemuknamnyeo, Piction Network, and Womanstalk.More importantly, KlaytnPhone features our new digital wallet (remember our KakaoTalk-embedded digital wallet Klip?) called ‘KlaytnPhone Wallet,’ which safely stores KLAY along with KLAY compatible tokens. KlaytnPhone Wallet is also linked with the pre-loaded Samsung Blockchain Keystore, which recently added support for Klaytn and bitcoin after Ethereum. With Samsung Blockchain Keystore, users can easily create a key storage in the Secure File system for blockchain transactions.With the KlaytnPhone, we hope more users can more easily access and interact with blockchain-powered services. Those who have never experienced a blockchain application before can use our preloaded Klaytn BApps and send tokens via KlaytnPhone Wallet with ease.KlaytnPhone is available for online purchase at www.klaytnphone.com.And mostimportantly, all buyers will be given 2,000 KLAY later this year. Claim your KlaytnPhone NOW![About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnMeet Samsung Galaxy Note10 KlaytnPhone: Your First All-in-One Blockchain Smartphone was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 06

Klaytn Debuts Its Initial L...

At last, we are announcing the official listing of our KLAY token, which will occur on Upbit Singapore and Upbit Indonesia by the end of September.Upbit is the cryptocurrency exchange operated by South Korean fintech firm, Dunamu. Supporting the trading of over 150 crypto assets, Upbit operates global exchanges in Korea, Singapore, and Indonesia. Upbit is also a partner of the U.S.-based exchange, Bittrex.To celebrate the KLAY listing, Upbit is holding a social media event for KLAY airdrop campaign to give away a total of 5,000,000 KLAY. For more details, please visit the Upbit Singapore homepage at https://sg.upbit.com or the Upbit Indonesia homepage at https://id.upbit.com.With the official introduction of KLAY, we look forward to seeing more developers and service providers will participate in the growth of the Klaytn platform. Stay tuned for more updates.Thank you.[About Klaytn]Klaytn is a global public blockchain platform developed by Ground X, the blockchain subsidiary of the leading South Korean Internet company, Kakao. Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytnKlaytn Debuts Its Initial Listing on Upbit was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 05

Klaytn Governance Council: FSN

Futurestream Networks is an IT/software development company that incubated Six Network that provides financial services, digital asset wallet and decentralized e-commerce services in Thailand.“Blockchain technology is essential in rapidly changing media environment. Together with Klaytn’s technology, we will innovate customer journey.” — Changhyun Cho, CEO of Global and Innovative Grouphttps://www.fsn.co.krFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: FSN was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 09. 03

Klaytn Governance Council: ...

Wemade is one of the largest gaming companies in Korea, serving gamers with a portfolio of entertaining, high quality PC and mobile games. Wemade’s one of the biggest assets is The Legend of Mir, which has over 200 million users along with its IP produced into over 2,000 different games.“Wemade’s entrepreneurial DNA will once again bring a new solution to the world.” — Suk Hwan Kim, CEO of Wemade Treehttp://www.wemade.com/en/mainFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Wemade was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 29

See you at Upbit Developer ...

We are participating in the 2nd annual Upbit Developer Conference 2019, taking place on September 4th to 5th at Grand Hyatt Incheon.Our Jason, the CEO of Ground X, heading the development and operation of Klaytn, will speak on the first day on the 4th at 13:20 at West Tower, B1F. For more information on the agenda, visit the detailed program page section on the UDC webpage.We are also exhibiting our booth for two full days in the WEST Zone from 10:00 to 18:00. We are Booth W3, located at Grand Salon, B1F of West Tower. Further, our blockchain developer evangelist, Eric, will speak at Exhibitor Presentation on the second day at 14:50 at Grand Foyer, B1F of West Tower. If you want to find out more about Klaytn technology or claim your Klaytn goods, stop by our booth and talk to our team![Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.See you at Upbit Developer Conference 2019 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 28

Klaytn Governance Council: ...

Cocone is the leading social network digital content company from Japan. Headquartered in Tokyo, Cocone develops and publishes mobile games and application services to global users worldwide.“Cocone will bring unique values and sensibilities to Klaytn blockchain services.” — Executive Chairman, Yang Hyun Chunhttps://www.cocone.co.jp/eng/index.htmlFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Cocone was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 26

We’re coming to if (kakao) ...

It’s that time of the year…we are coming to if kakao developer conference 2019!if(kakao), short for if kakao developer conference, is held by Kakao, the leading mobile platform in Korea, and also one of Klaytn Governance Council members. We are participating as our Klaytn’s developer, Ground X, which is the blockchain subsidiary of Kakao.The conference is taking place for two days on August 29th and 30th, from 9 a.m. to 5 p.m. at COEX Grand Ballroom in Seoul. Our Jason, the CEO of Ground X, heading the development and operation of Klaytn, will deliver the keynote speech on the 2nd day at 10:30am. Further, we are featuring 4 of our team members to speak in the afternoon. For more information, visit program page.We are also exhibiting our booth for two full days. We will be operating ‘connecting bar’ along with 7 other Kakao’s subsidiaries, including some of our other Governance Council members, Kakao Games, Kakao Pay, and Kakao Page. We will be under the name ‘Ground X’ and our team will be there full time, so if you want to find out more about our technology, or simply say hello and connect with us, come talk to us![Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.We’re coming to if (kakao) dev 2019 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 22

The latest updates from Kla...

We deeply appreciate your interest in Klaytn Horizon. Ever since our first official announcement, we received many requests from our participants, and we decided to reschedule the submission deadline to September 30th.The focus of our Klaytn Horizon far transcends simply building a BApp on Klaytn. Backed by Kakao, the mobile platform company owing 97% of South Korea’s mobile messenger market, Klaytn aims at leveraging the significant traffic of Kakao’s existing 50 million active users for BApps built and operated on Klaytn.You may participate either individually or within a team with no limit to the number of teammates. You can build BApps to serve an industry of their preference, ranging from contents to entertainment, healthcare, finance, commerce, payment, lifestyle, technology, etc.With a prize pool of USD 1,000,000, which will be awarded in Klaytn’s token, KLAY, a total of 15 teams, in 4 different tiers, will be selected.Tier 1 (the first five teams) : $100,000 eachTier 2 (the second five teams) : $50,000 eachTier 3 (the third five teams) : $30,000 eachSpecial : $100,000 totalFurthermore, there are additional members joining our judge panels from Klaytn’s valuable partners: Kyle Lu, the Founder and CEO of Dapp.com, and Fauve Altman, the Community Manager of State of the DApps. They both represent well-known Dapp ranking sites and have good knowledge of how to make your blockchain services more attractive.Please stay tuned with our official Klaytn twitter page for more news from Klaytn Horizon.Create code. Create value. Create BApp. We challenge you to expand your horizons and join our 1 million-dollar BApp competition. For more information, visit the official Klaytn Horizon website.Cheers,Team Klaytn[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.The latest updates from Klaytn Horizon was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 21

Community Building Series #...

# Why Klaytn focuses on building a communityDear Klaytn readers,Building blockchain communities is one of the key elements in making the blockchain business successful. There are three reasons why blockchain companies must consider building and growing blockchain communities. In the blockchain industry, a community acts as a partner in development, a contributor to the project, and as a supporter of the project. Klaytn helps so that communities can grow stronger, since they are the most important assets in the development of the platform. In this new series of articles ‘Community Building Series’, we share interesting ideas about community building, what it means, and why we need them. We get together with blockchain community experts from the Southeast Asia region and discuss their experiences and thoughts as well as the current status of blockchain community formation.In this second article, we share an interview with Ellena Ki, who is a Marketing Leader at Infinito Solutions’ Ho Chi Minh City, Vietnam office. Infinito Solutions has headquarters in Singapore.#1. From finance person to blockchainKJ: Hello, Ellena. It is a great pleasure to have you for an interview. Please introduce yourself to Klaytn readers about what you do as a community builder at Infinito Solutions.Ellena Ki, Marketing Leader at DiInfinitoEllena: Hi, KJ and Brian. It is an honor for me to participate in the Community Building Series as the second speaker. I am Ellena Ki, and I work at Infinito Solutions in the marketing and business partnership department. My main role is to expand the Infinito ecosystem and enhance the Infinito brand by partnering with top blockchain service providers. At Infinito, the marketing team aims to establish strong branding among crypto communities and the blockchain industry as a whole. We work closely with business and technical teams so we can make better products, services, and solutions in order to improve customer experience.We strongly believe in the power of collaboration, as we can leverage the expertise of many to enhance and deliver better value to our community. That is why our team is focusing on partnerships with industry experts. We must bring new value to the Infinito ecosystem to achieve maximum benefits for our users and customers.Brian: Alright! I’m now curious how you entered the blockchain industry.Ellena: I spent the past 15 years of my professional life in the finance industry, working in Japan and Hong Kong. My work centered in particular around intercontinental finance services: the flow of money across borders including fixed income, equities, funds, settlement, custody, collateral management, fund settle, and more. After years of working in the finance world, I was seeking something new. That is how I eventually ended up in the blockchain world. I realized that the transparent yet secure way of recording data means that system breaches, funds misappropriation, and lack of consumer trust will become issues of the past. I also realized that a smart contract of blockchain can optimize the cost and speed of the transaction significantly — industry leaders are gradually seeing the value of blockchain and will eventually try to utilize it.#2. Thoughts about Community Building from EllenaBrian: A common sentiment throughout the blockchain space is that blockchain companies regard the community as a very important part of building a blockchain ecosystem for their projects. Would you share your thoughts and opinions on why blockchain companies focus on community building so much?Ellena: The blockchain industry is still fairly young, and the communities are not as large or mature in comparison to other industries. Blockchain technology users tend to be a niche demographic that are very tech-savvy. The average consumers, however, usually believe that blockchain products are difficult to use, prone to scams, and are not practical. Therefore, to expand the mass adoption of this technology, blockchain companies need to develop easy and safe to use products and services. Additionally, they should aim to solve the needs of real users so that they become viable in the mainstream market — where less tech-savvy users value speed and convenience above all.KJ: Okay. Could you tell our readers what kind of communities your company is trying to build?Ellena: Infinito has always been building its ecosystem around community needs. We support the most wanted blockchains, functionality, cryptocurrencies, and DApps (Decentralized Applications).Our wallet expanded its functionality beyond send and receive. We included support for unique utilities of specific blockchains such as managing EOS resources, claiming NEO GAS, etc. We also collaborated with IOHK and Binance to give our wallet the best performance for Cardano & Binance Chain networks users. As for DApp support, we have been working with Ontology and EOS partners as our technology providers.We join and host many meetups, programs, events, and charities to engage better with our communities as well as reward them for being part of the Infinito ecosystem. These include global EOS account registration campaigns, frequent token airdrops from ecosystem partners, programs for global users who meet us, and community campaigns such as referrals, bounties, and more.Infinito will issue utility token INFT soon, which has been well-rated as BB by TokenInsight, a leading crypto project rating and analysis agency. We also organized INFT airdrop exclusively for participants who participated in many events such as Bibox Meetups. We have been and we will continue to do various AMAs with global partners such as Ontology, IOST, COSMOS, COCOS, and more. As you can see, Infinito is always seeking collaboration with the industry’s best to deliver better services to our communities.Our soon-to-be-released INFT token is designed to encourage community growth, specifically for the Infinito ecosystem. With features such as staking to receive benefits, voting for Infinito product roadmaps, rating for service quality of ecosystem DApps and etc., we aim to accelerate growth in the number of blockchain users and developer communities in our ecosystem. This will help us achieve the final goal of mass adoption.Brian: Can you give us the pros and cons about community building in your country? Also any thoughts on your government’s stance on blockchain (in general / cryptocurrency / development, etc.)?Ellena: Our country, Singapore, is very open to blockchain technology and cryptocurrency. All blockchain and crypto businesses operating in the country must comply with the official laws set by the government. Thus, it is less complicated to build a community in Singapore compared to less open-minded countries, where laws are unclear. On the other hand, due to the market being so open, there is more competition not only now but also in the future.Currently, Infinito ecosystem users come from many different parts of the world and have a diverse array of needs. This is why the products, services, and solutions of our ecosystem must cover a wide range of demands. And this is why one of our top priorities is to always understand and serve the different needs of the community.The Singaporean government is open to blockchain technology and many blockchain projects on the market. Quite a few of them are even supported by the government itself. This is why Singapore is currently regarded as “the heaven of blockchain” — the country understands how much impact this technology could have to our society. We believe that Singapore is on the right track, and we believe that is is crucial for more countries to recognize the immense potential of blockchain: daily lives can be much improved using this new technology.Vietnam is one of the key markets Infinito is focusing on. There are many reasons as to why Vietnam’s economy is rapidly growing. The government and the public have a high level of understanding in fintech, a large number of crypto users, as well as a skilled blockchain developer community. For these reasons, Vietnam is being regarded as a high potential market for many blockchain companies.We organized many rewards for Vietnamese users. INFT airdrop at ‘Cointime Summit 2019’ event is one of them. The most notable event was last year’s “Junction x Hanoi,” in which our team had the honor to lead a team of young Vietnamese developers to gain global recognition. Infinito is also looking forward to collaborating with blockchain companies in Vietnam. We will build a strong network and promote Vietnam as the blockchain hub of Asia.KJ: We know that you are a blockchain enthusiast who is building blockchain communities in Southeast Asia. Please share your experiences so we can understand more about the community building, even though we have not experienced it directly. And lastly, you mentioned that it is very important for blockchain companies to create communities and collaborate together to make a better blockchain ecosystem. Could you share your personal thoughts on that regard?Ellena: Communities are developing high interests in the practical use cases of blockchain technology. The most notable one is DApp services — especially fiat gateway — and security tokens. This is something that we have foreseen. We have geared up to support security tokens as well as focusing on expanding our ecosystem of services and developing the new payment platform, InfinitoPAY. A seamless experience will be the main selling point. Service providers will need to prioritize this aspect to effectively develop their products and grow their user base.Infinito is always open to collaborations with global blockchain players. In fact, we have formed strategic partnerships with leading blockchain players such as Binance (China), EOS Block Producers and Block Producer Candidates, Ontology, IOST, and many more. We work with big players like IOHK — the company behind Cardano blockchain (Hong Kong), ONTology (China), prominent tech companies, media, and DApp partners worldwide such as Kyber Network, Changelly, ETHFinex, and etc.In the past, we have successfully collaborated with EOS community leaders and achieved over 12,000 users joining the rising EOS blockchain. We also have them access EOS DApps. Infinito was one of the first names in the industry to support Binance’s assets and services including BNB Coin and Binance DEX (decentralized exchange) on our ecosystem via official collaboration. At the moment, we are talking to various global partners such as Sofitto, CryptoWolf, Wisepass, EOS Account Creator, DEXEOS, and many more companies for an upcoming membership program, which will provide premium benefits and incentives to our ecosystem members.Brian: For our last question, could you give our readers some final advice regarding gathering people to build blockchain communities?Ellena: It would be best to really learn and know about the market. Then you can target the right partners. Understanding the demands and expectations of your target community will help you more than anything when you are trying to build one effectively. Having a strong partner network, and I recommend prominent regional players, can significantly boost your branding as well as help you gain trust from communities. Aside from technical collaboration, there are many valuable areas of cooperation that you can explore, such as events and community programs. Be ambitious!Community Building Series #2: Ellena Ki, the professionals of Community Building in Southeast Asia was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 19

Klaytn Governance Council: ...

Kakao Games develops and provides various games and game-related services for numerous platforms including mobile, PC and VR. Kakao Games connects global players across Asia, North America, and Europe.“Our blockchain-based games will deliver a wholly new experience for millions of gamers across the world.” — CEO, Namkoong Hoonhttps://www.kakaocorp.com/service/KakaoGame?lang=enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Kakao Games was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 19

Klaytn Governance Council: ...

Pearl Abyss is a Korea-based company principally engaged in the development and publishing of online games. Established in 2010, Pearl Abyss is best known for its sandbox MMOPRG, Black Desert, available on PC, mobile and console.“We are happy to join Klaytn Governance Council as we look forward to empowering blockchain-powered ecosystem for users across the globe.” — Kyung In Jung, CEOhttps://www.pearlabyss.com/?lang=enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: PEARL ABYSS was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 14

The first sneak peek of our...

We are excited to share an exclusive sneak peek of our first digital wallet Klip, which is set to launch later this year.Developed by Ground X, Klip safeguards our digital asset, including Klaytn’s token KLAY along with Klaytn compatible tokens such as CPT, HINT, CRE, COSM, and more.Safe, Fast, EasyPowered by Klaytn’s technological prowess, as proven in Klaytn platform development, Klip is equipped with high security and performance, which allow safe and fast transfer of your digital assets.Klip is also immensely easy. Once you access Klip with your social network profile, especially your KakaoTalk ID, you send and receive digital asset with your Kakao friends. Further, you do not have to jot down your cryptic private key. Klaytn’s own unique account system allows you to access the wallet with a simple passcode while allowing you to still manage your own private key.More features to comeKlip will also support many more digital assets including NFT’s. Soon, you will also be able to browse various Klaytn-powered BApps on Klip, too.Find Klip in your KakaoTalk today! Go to your KakaoTalk, click More, click Services, and you will be able to find Klip.You can also access via bit.ly/Klip_wallet. Visit our teaser page and share it with your friends and families until the official release later this year.More news to come soon.Cheers,Team KlaytnThe first sneak peek of our digital wallet Klip was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 12

Klaytn Governance Council: ...

HashKey Group is a leading fintech group based in Hong Kong, focusing on developing blockchain and digital asset industry with a commitment to building a global ecosystem. HashKey has a number of affiliates including HashQuark that provides staking services and HashKey Capital that focuses on asset management.HashKey is also the strategic partner of Wanxiang Group, the world-leading industrial-financial conglomerate with main focus on development of automobiles, agriculture, and financial services. Entered the blockchain space in 2015, Wanxiang started the first non-profit blockchain research lab in Asia with Vitalik Buterin as Chief Scientist. Wanxiang also founded Fenbushi Capital, which has invested in over 60 global blockchain startups. Further, Wanxiang holds annual Shanghai International Blockchain Week.“We are thrilled to be a member of Klaytn Governance Council and help co-build the Klaytn ecosystem.” — Xiao Feng, Chairmanhttps://www.hashkey.com/#/For more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: HashKey Group was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 08

Klaytn Governance Council: ...

LG International operates as a specialist resources trading company engaged in numerous business fields including coal, oil, gas, non-ferrous metals, and petrochemicals. With over 80 business hubs across Asia, Europe, and North America, LG International is dedicated to fostering the development of natural resources.“We are pleased to join Klaytn Governance Council as we look forward to building a stable blockchain ecosystem.” — Yoon Chun Sung, CEOhttp://www.lgicorp.com/enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: LG International was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 06

Klaytn Governance Council: ...

Everrich Group is a real estate developer mainly focusing on Korea, Taiwan and Southeast Asia. Everrich is also engaged in business areas of property, investment, hotel, beauty, and publishing.“With our expertise in real estate development, we look forward to building a blockchain-based smart city together with Klaytn.” — Teh Yu Yuan, Vice President of Development and InvestmentsFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Everrich Group was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 08. 02

Klaytn Governance Council: ...

Kakao Pay offers convenient and innovative payment services, pioneering the development of a variety of services including payment, transfer, bills and memberships. The service supports contactless payments using near-field communications and QR codes. Kakao Pay is also incorporated into Kakao Talk, the mobile instant messenger from Kakao.“Klaytn plays a major role in implementing needs of blockchain’s key features of true IT service providers, and by joining Klaytn ecosystem, we will together deliver effortless experiences to the financial flow.” — Hoya Na, CTOhttps://www.kakaocorp.com/service/KakaoPay?lang=enFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Kakao Pay was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 30

Community Building Series #...

Community Building Series #1: Nicole Nguyen, the Professional of Community Building in Southeast Asia# Why Klaytn focuses on building a community.Dear Klaytn readers,Building blockchain communities is one of the key elements in making the blockchain business successful. There are three reasons why blockchain companies must consider building and growing blockchain communities. Unlike other technologies, a “community” is what develops “blockchain” as a core partner. For example, developers from different communities can also participate in blockchain ‘platform’ projects indirectly by creating relevant blockchain tools. And developers who belong to the ‘platform’ community contribute codes directly to this open-sourced project, which is public on GitHub. Therefore, having a community is very important in developing blockchain projects in technical aspects as well as scaling the project to a realistic size so that mass adoption can be achieved. Not only the individual developers, but the communities themselves can also contribute to the project. Community members could be willing to join bounty programs and provide their feedback on a platform or service to improve the project, or spread news about the projects to the public and get rewarded through airdrop. That feedback could help the blockchain project to meet users from the public. In addition, communities participate in ICO and IEO of the project by buying the tokens, the blockchain company to develop their business, and thereby the participants’ loyalty goes up. It means that the community is an important nutrient for the growth of the blockchain project.In the blockchain industry, a community is a partner in development, a contributor to the project, and a supporter of the project. Klaytn helps communities to grow healthy, and this growth of communities is one of the most important assets in the development of the platform. Klatyn strives to build a community, considering it as the key element. In this new series of articles ‘Community Building Series’, interesting ideas and thoughts on meanings of community buildings are shared to rethink why we need them. We talk with blockchain community experts who work in the Southeast Asia region and cover their experiences and thoughts as well as discuss the current status of formation of a blockchain community. Additionally, they share how they work and what they have experienced while building a better blockchain community in each country or a company.In the first article, we share an interview with Nicole Nguyen who is the Head of APAC at Asia Blockchain Review (ABR). ABR, the largest initiative of a blockchain media company, connects all blockchain enthusiasts through a range of group discussions, technical workshops, conferences, and consulting programs.#1. Becoming Blockchain Local ExpertKJ: You are one of few female blockchain enthusiasts in this Southeast Asia blockchain scene. I think that you’ve been a pioneer in evolving the blockchain ecosystem, fostering the industry by connecting the major blockchain players in the crypto space.Nicole: Thank you for your compliment. I have been involved in the space for over 3 years now. At ABR, my role is spearheading the regional initiative to become the top of mind news, media and community platform for players interested in Southeast Asia.KJ: To get to know more about you, we would like to ask you how and why you entered the blockchain industry.Nicole: “Three years ago, I have had the privilege to be the first marketer in Infinity Blockchain Labs — the sister company to Asia Blockchain Review. Since then, it has been a crazy joyful rollercoaster ride for me in this blockchain world. To be able to experiment with new initiatives and meet new inspiring people every day keeps me moving forward. Knowing that I can continuously learn new things from other people, stay fearless of the unknown and inspire more people to join the ride with us is wakes me up every day.Interestingly, my previous professional career had no involvement in tech or emerging tech at all. I used to work for Unilever and a couple of other multinational organizations plus set up a fashion startup on my own before experimenting with this novel technology called blockchain. “I had to start from scratch. I was learning new things every day, talking to absolute strangers and building my network in a totally new domain — Very challenging yet rewarding at the same time.”Brian: So you seem to be enjoying your dynamic journey in the blockchain scene. Let’s talk more about what you have been doing specifically as a community builder.Nicole: “I have started observing more about what other people do and learn from them directly. It may sound different from what a traditional community builder does, but I believe despite how much social media are changing the way we communicate or interact, humans prefer real connections. And mutual interest between people make people more interested in others and this helps your personal growth as well.For media platform, I produce contents that feature blockchain projects and entrepreneurs to grow our network and partnership. Besides the media platform, we organize our Unblock event series regularly in 3 key cities: Ho Chi Minh City, Kuala Lumpur and Bangkok. We also helped with organizing the ‘Klaytn Hackathon Meetup’ in Ho Chi Minh City and Manila. We love bridging people with all these useful events and grow the community as a whole. But the best part about my job is still bugging my colleagues, acquaintances, and friends to teach me, who is a technology illiterate, what the latest issues in blockchain space have been. I think they will miss it if I stop doing so one day.”#2. Thoughts about Community Building from NicoleBrian: Many blockchain companies emphasize the importance of the community because they believe that a better blockchain platform/service can be built with developers contributing to the open sourced project. Could you share your thought on what the blockchain community is?Nicole: I believe that blockchain sets itself apart from other technology because of the impact communities can have to blockchain technology. In the blockchain space, the community includes everything from your prospective investors, evangelists, contributors, first hand users as well as everything in between that keep your product up and running. It is almost impossible for you to live in the blockchain space without having a community.KJ: You regard a community as not just a representation of a single role, but also as prospective investors, evangelists, contributors, and first-hand users. Then what do you think of how the communities will evolve in the future? Is there any implication to other blockchain companies?Nicole: “The community would get more diverse now that more players from mainstream industries are joining the game. Also, I think the community will get even more focused on a specific type of audience, instead of trying to befriend everyone. We now have more niche communities targeting specific trend or business or interest. For example, in trading, we now have communities for traders, family offices, IEO, STO, margin traders, etc. By targeting specific needs, these communities will play more important roles in the landscape. This, consequently, requires blockchain companies to put more efforts in coming up with a relevant community strategy since they need to be really specific and single-minded who they should speak to and what setting or languages they should use.”Brian: It is very interesting that communities will be broken down by the interests and it is actually trending in the communities of ABR. So in this flow, how will you promote the growth of the community and go along with them? What is your community’s development plan and how will you proceed?Nicole: “I always believe that sharing knowledge is the most powerful element of connecting people and building a community. You will grow the community and at the same type grow as an individual as well, without even knowing it. Then, the community building will be embedded in your DNA. This way, you will also be able to provide value to the people in your community. At ABR, we encourage our team to share knowledge, connections, and support to our members and our community and we have been able to receive generous rewards for such initiatives. We hope to connect with like-minded people and together we will be able to spread the blockchain spirit further!”#National Community Building & Government Position of The BlockchainBrian: So let’s move on to a more realistic example. In your country, what difficulties have you encountered when building a community? And what are some good points?Nicole: “I have been working on a regional scale rather than within one single country. For now, Thailand is our main focus and this represents lots of excitement as well as challenges. You can never run out of the fun in Thailand and the market has just started to get exciting. However, local partnership and connections are extremely important in Thailand and it is relatively challenging for a new international player to be able to tap in the ecosystem here within a short run. Still, challenges amass such as a huge gap between the expat and local communities in Thailand, low blockchain awareness and sporadic education schemes which demand collective efforts from not only ABR but other players. Community growth in Thailand requires significant persistence and efforts. However, I believe that the growth comes with commensurate benefits now that Thailand has prominently positioned itself in the regional map. Thanks to forward-thinking regulations and initiatives from the government.”KJ: It is impressive that Thailand’s blockchain regulation is pioneering and the government is also cooperative with the blockchain related industry. Can you tell us more specifically about this, especially given the current situation in which many countries are regulating blockchain technology?Nicole: “I would like to share my opinion on both countries — my home country Vietnam and my second home, Thailand. It is interesting to see how different governments in the region are shaping their strategy around blockchain. Vietnam has exceptionally strong in tech talents, operation cost and entrepreneurship. However, the infrastructure in the country is not ready for mass adoption and the government is taking a more skeptical stance towards cryptocurrency and blockchain technology. On the other hand, Thailand started more slowly yet with its stable financial infrastructure, higher financial literacy and especially the appetite for innovation, Thailand now stands a better chance of getting ahead in the race. The regulators such as SEC, Bank of Thailand, etc. are showing positive moves towards accommodating blockchain, not only from the perspective of the regulator, but also as an adopter. All these exciting movements help shed the spotlight on the blockchain landscape in Southeast Asia, making this region the go-to destination for quality and long term blockchain projects and entrepreneurs.”# Collaboration PossibilityKJ: We know that you are a blockchain enthusiast building blockchain communities in Southeast Asia and beyond. Please give us your thoughts and share your experiences that helped us to gain more indirect experience with the community building. Lastly, you mentioned that it is very important for various blockchain companies to create communities and collaborate together to make the better ecosystem of blockchain. Could you give your opinion with that?Nicole: The nature of Asia Blockchain Review is connecting projects outside Asia with the Asian ecosystem. So we are definitely open to any partnerships both with local or international projects. We are aiming to onboard 300–500 top projects in Asia on our platform within 2019 and thereby create one of the largest and most important gateways for blockchain.At the end of the day, blockchain technology can only prove its value through real life applications. Thanks to collective efforts from connecting platforms such as ABR or GroundX, we will be able to connect like-minded people to address the diverse needs of stakeholders. This will allow us to validate how blockchain can really make the difference and ultimately lead to mass adoption.The following will be an interview with Infinito Solutions community representative. Please keep us interested.Community Building Series #1: Nicole Nguyen, the Professional of Community Building in Southeast… was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 26

Klaytn Governance Council: ...

gumi, Inc. is a leading global mobile game publisher and developer headquartered in Japan. Founded in 2007, gumi has broadened its spectrum of services ranging from mobile online games to VR, AR, MR, and blockchain. gumi, Inc. is also expanding its market from Japan to multiple subsidiaries across Asia, Europe, and North America.“We are pleased to join Klaytn Governance Council as we look forward to more in-depth collaboration opportunities on Klaytn’s platform to strengthen the ecosystem together.” — Hironao Kunimitsu, CEOhttps://gu3.co.jpFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: gumi, Inc. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 24

Klaytn Meets Boltt Protocol

Boltt Protocol, one of Klaytn’s Initial Service Partners, is the incentivized healthcare service leveraging blockchain and gamification. We are interviewing its CEO, Arnav Kishore.Klaytn: We are interested in knowing more about you and your team.Arnav Kishore, CEO of Boltt ProtocolArnav: I have been a sportsman and health and fitness data enthusiast for years. I founded Boltt 5 years ago with a mission to transform healthcare for all, and since then, we have managed to expand our ecosystem with thousands of users and credible partners. Our team also consists of seasoned professionals and veterans with previous work experiences in advanced health data solutions, mobile applications, and wearable technology products.With Boltt Protocol, we have built a decentralized health data sharing network that enables users to own, control, and monetize their health data. Users are rewarded for sharing their data, which is transferred to decentralized storage via permission-based sharing. Further, by staking Boltt tokens on the platform, health organizations including hospitals, insurance, pharmaceutical companies, and IT companies can access this data to analyze and derive meaningful insights.Klaytn: Can you tell us more about how and why you decided to partner with Klaytn?Arnav: We share Klaytn’s vision for blockchain mass adoption. Boltt is building products and solutions with a mission to unleash global potential of blockchain for the mass as well.Also, we are leveraging Klaytn for faster transactions and better scalability solutions. Klaytn’s technology is designed to make a highly reliable and trust-reinforcing blockchain platform with high performance that can enable products and services to benefit from a higher degree of transparency, integrity, and security. We believed that Klaytn is the ideal platform for Boltt Protocol.Klaytn: Tell us more about your blockchain service.Arnav: Boltt Protocol is a decentralized service that empowers users to own, control, and monetize their health data, and at the same time enables permission-based sharing of users’ data with organizations that help manage users’ heath. In the data sharing process, our service gives solution for privacy and secure data transfer issues by using Smart Contracts and decentralized storage on the blockchain. Once shared, the users are rewarded with Boltt Tokens for contributing to the network. The tokens are later used to avail products and services offered by health and fitness organizations. With this overall incentivized service, Boltt marketplace enables personalized commerce. Further, by gathering all of users’ health data, our platform provides continuous access to the data from over 350 in-home medical devices, wearables, pharmacies, EHRs, labs, patient portals, mobile apps, personal doctors’ office, and anywhere else it is stored.Further, with the users’ shared datasets, the organizations and developers are empowered to make better decisions. The access to datasets enables them to derive and analyze meaningful insights from the data. The datasets will be delivered via customized APIs and decentralized storage solutions on the network. The Boltt network will encompass a highly focused health community, enabling the health organizations to effectively market their products and services based on data-driven decisions.Klaytn: How do you foresee the future of blockchain industry?Arnav: I cannot imagine the future of healthcare without blockchain technology. The healthcare industry is in the midst of a major paradigm shift, witnessing some exponential growth. The world is now predicting a 300% growth in healthcare data between 2017 and 2020. This exponential growth is not only from internal systems such as electronic health records but also from external touchpoints at consumers’ ends including wearables, fitness apps, medical devices, etc.With this importance of health data, I would say, blockchain and healthcare are a perfect match. That is, blockchain technology allows transparent, peer-managed, secure data tracking across computing devices, and creates a public, chronological database. Also, decentralization disrupts the traditional data brokerage process in healthcare industry. And most importantly, blockchain will empower users to monetize and regain control of their own health data.Klaytn Meets Boltt Protocol was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 23

Klaytn Governance Council: ...

Celltrion is the biopharmaceutical company headquartered in Korea, engaged in the development, manufacture, and distribution of pharmaceuticals. As one of the largest biopharmaceutical companies in Asia, Celltrion operates through various businesses including Celltrion Healthcare.“Based on Klaytn technology, we will focus on strengthening the healthcare industry through smart healthcare marketing solution based on efficient distribution and clinical testing of medicines.” — Woo-Seong Gi, CEOhttps://www.celltrion.com/en/main.doFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Celltrion was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 19

Blockchain for Social Impac...

Hi there all,We are holding our 2nd Blockchain for Social Impact Conference on August 9th at Change Makers, HEYGROUND B1, 5, Ttukseom-ro 1na-gil, Seongdong-gu, Seoul, South Korea (Map).With a strong commitment to leveraging blockchain for social good, we have worked with numerous charities and non-profit organizations in Korea. In particular, the Korean NGOs including Good Neighbors, The Happiness Foundation, Guidestar Korea, and the Beautiful Foundation have cooperated with us to identify the pain points of charity donation processes in the current industry and discussing the promise and potential of blockchain to enhance social funding. They also supported us in identifying potential areas where blockchain technology could further be applied to help improve existing business flows.The 1st conference last year successfully covered general dialogue and discourses to emphasize our commitment to leading global initiatives to drive blockchain-powered social impact, while the 2nd Blockchain for Social Impact Conference, this year, will bring various actors across the international development and donation sectors to discuss key lessons and way forward in the realm of blockchain for social impact.The event consists of two main parts: the morning session covers two specific pilot projects that we proceeded with a mission to leverage blockchain for social good, particularly in donation sector. The afternoon session will be divided into two parallel tracksㅡone for blockchain for donation and impact investment, another for blockchain for sustainable development.We invite all people who might be interested in blockchain for social impact, or those interested in frontier technology for development in general. If you are interested in attending, please register HERE. You can also find more information on our speakers. The event will take place from 10 a.m. to 4 p.m. with lunch provided.Join us!Cheers,Team Klaytn[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Blockchain for Social Impact Conference 2019 was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 18

51 BApps on Klaytn!

The first 9 initial service partners joined Klaytn back in October. 8 more partners in December, 9 more in March, another 8 in May. And now, with another 8 new service partners and 9 KLAY BApp partners that we are announcing today, our ecosystem has grown into a total of 51 service partners.One of our Klaytn Governance Council members, ‘Hi, Inc.’ is launching its blockchain service on Klaytn. Serving over 140 million users in travel industry, Hi, Inc. is the Hong Kong-based unicorn company engaged in global travel and lifestyle business providing services to hotels. Hi’s blockchain project ‘PASSPORT’ provides an all-in-one traveling application that offers services ranging from booking flight tickets to reserving hotels and scheduling sightseeing trips.‘Pledgecamp’ introduces the world’s first escrow wallet framework called ‘Backer Insurance’ for its crowdfunding platform that can allow anybody to seamlessly participate in crowdfunding campaigns. ‘BlockPet’ is a blockchain-powered social community platform for pets and pet owners. The project allows pet owners to record and manage their pets’ health information in order to provide effective measures for cure and ultimately prevent abandonment or unanticipated losses. ‘Project WITH’ is a sports career management platform connecting fans, players, agencies, and sports clubs via blockchain technology. Players and fans can be rewarded providing sports career information while clubs and agents can purchase such information using cryptocurrency.Other notable partners include ‘Pibble,’ the image-based social network service; ‘ARGear,’ the AR-technology-based content ecosystem backed by Seerslab; ‘DATA,’ the blockchain-powered digital data authentication protocol from U.S.; and ‘Tokky,’ the blockchain-based prepaid loyalty and points issuance platform from Bulgaria.We also feature ‘KLAY BApp Partners’ whose blockchain-powered services use KLAY token for reward and payment. The users are able to earn KLAY and use them across diverse services.KLAY BApp Partners include ‘Klaytn Knights,’ an updated version of ‘EOS Knights,’ developed by the no. 1 global blockchain game development studio, Biscuit, and ‘Marvel Clans,’ the new game services developed by MixMarvel, which previously developed Hyper Snake, the no. 1 DApp on TRON. Also on Klaytn is ‘Axie Infinity,’ a digital pet collectible game developed by Vietnam-based Sky Mavis Pte. Ltd.Some popular character-based games are also recreated via Klaytn. mgame, the Korea-based online game developer with over 20 million users, is transforming ‘Hon’ and ‘Princess Maker’ into blockchain-powered games by utilizing their IP’s. In addition, ‘Crypto Sword & Magic’ of Nod Games, ‘Infinity Star’ of Nodebrick, two of which are selected by the Korea-based blockchain accelerating program ‘Hashed Labs,’ along with ‘Crypto Fishing’ of MEMORY Inc., are utilizing KLAY for their game services.With over 700 million combined users of Klaytn’s 51 service partners and 23 Governance Council members, we are excited to drive mass adoption of blockchain experience for millions of users across the world.In the meantime, we recently held a Klaytn mainnet launch event on in Seoul. Stay tuned for exciting stories and photos. Thank you![Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.51 BApps on Klaytn! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 12

Klaytn Governance Council: ...

Axiata Digital is a global Internet company that builds, accelerates, and invests in winning ventures. Axiata Digital Service Indonesia is the digital services arm of Axiata Group, supporting the digital lifestyle of 350 million customers in 10 markets and beyond.“Together with Klaytn, we are excited to enable businesses that are making an impact on the world through digital innovation.” — Joseph Lumban Gaol, Chief Executive Officer of Axiata Digital Services Indonesiahttps://boost.idFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]http://www.klaytn.comhttp://twitter.com/klaytn_officialhttps://www.facebook.com/klaytn.official/https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Axiata Digital was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 12

Klaytn Governance Council: ...

Union Bank of the Philippines, more commonly known as UnionBank, is one of the largest banks in the Philippines. Headquartered in Pasig, the Philippines, UnionBank has over 433 branches, providing innovative and customized cash management products and service offerings.“Klaytn, particularly with Kakao behind it, is a promising endeavor and we are keen to explore future collaboration with Klaytn and Kakao that will deliver innovative products for our customers, and service Korean tourists and residents in the Philippines.” — Arvie de Vera, Head of Fintech Business Grouphttps://www.unionbankph.comFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_officialFacebook: https://www.facebook.com/klaytn.official/LinkedIn: https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: Union Bank of the Philippines was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 05

Klaytn Governance Council: ...

We are excited to introduce our Council member, PUBG Corporation. PUBG is a subsidiary of South Korean video game company Bluehole, which developed and published PlayerUnknown’s Battlegrounds, serving over 400 million users worldwide. PUBG Mobile is also the no. 1 paid game company, famous for PUBG Mobile Star Challenge (PMSC), the major international tournament featuring celebrity streamers from 6 global tournament regions.“We look forward to exploring more opportunities of implementing blockchain technology to gaming services together with Klaytn.” — Changhan Kim, CEOhttps://www.pubg.comFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com.[Klaytn Governance Council]Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for operating consensus node network and driving ecosystem growth. Undertaking the platform ownership, the Council members participate in key decisions related to business and technical updates. They are also committed to providing a stable foundation for the Klaytn ecosystem by empowering service providers to operate blockchain-powered services for users across the world.[Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_officialFacebook: https://www.facebook.com/klaytn.official/LinkedIn: https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: PUBG was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 03

Winners of Klaytn Hackathon...

Dear Klaytn community,Thank you for your participation in Klaytn Hackathon. A total of 40 teams participated, coming from 8 different countries and 20 different cities. This amazing diversity has successfully driven such well-crafted BApps (Blockchain Applications) that it was difficult for our judging panel to select winners.And… here it goes! We’re very excited to announce the winners of Klaytn Hackathon.Again, thank you all for your participation. We were excited to meet developers from all over the world. We plan to have more competitions and community events in the future, and we encourage you to join an incredible journey with us to build Klaytn World together. For more information, visit the official Klaytn webpage at www.klaytn.com.Further, Klaytn Build Program is still ongoing and we invite you to take part in our Klaytn ecosystem via various activities like translating Klaytn Docs for KLAY.Cheers![Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_officialFacebook: https://www.facebook.com/klaytn.official/LinkedIn: https://www.linkedin.com/company/klaytn[About Klaytn Hackathon]Unlock your keyboard, and go hack.Klaytn Hackathon is a virtual hackathon, designed to reach all developers around the world to join the event. This is Klaytn’s first blockchain hackathon where developers can create blockchain applications on the Klaytn’s public testnet, Baobab.Winners of Klaytn Hackathon are announced! was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 07. 01

Klaytn Governance Council: ...

Hi all,As we launched the Klaytn mainnet on June 27th, we also announced Klaytn Governance Council, the alliance of multinational enterprises and organizations that together operate the platform.Klaytn Governance Council is committed to generating long-term growth of Klaytn and undertaking Klaytn governance. As key decision makers for business and technical agenda, the Council members are responsible for operating the consensus node network. They also support mass adoption by delivering new services to Klaytn.We invited an initial group of 23 Council members, and we are especially excited to welcome LG Electronics to Klaytn Governance Council. As you know, LG Electronics is one of the world’s largest electronics company, and also a fortune 500 electronics company.“As LG’s technology has been widely used in our daily lives, we will further contribute to creating real-world uses of blockchain together with Klaytn.” — Jo Seoung-jin, CEOhttps://www.lg.com/usFor more information on Klaytn Governance Council, visit our Council page on our official website www.klaytn.com. We are also going to introduce each Council member through Medium series, so stay tuned for more stories![Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_officialFacebook: https://www.facebook.com/klaytn.official/LinkedIn: https://www.linkedin.com/company/klaytn[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides intuitive development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Klaytn Governance Council: LG Electronics was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 28

Come sit under our tall, ta...

Hello, World!We are excited to announce the official launch of Klaytn mainnet.Klaytn is a service-centric blockchain platform with a mission: to trigger the mass adoption of blockchain experience for millions of users across the world. In doing so, Klaytn combines the best features of both public blockchains (decentralized data & control, distributed governance) and private blockchains (low latency, high scalability) via an efficient ‘hybrid’ design. Further, Klaytn is secured by participation from numerous highly-reputable firms and businesses, working together to create a reliable enterprise-grade platform. Klaytn enables businesses and entrepreneurs today to capture value using blockchain technology.Blockchain Applications (BApps) are first-class citizens in Klaytn’s world. We strive to offer the highest performance and most productive environment that caters to a wide spectrum of engineering audience, from micro startups to enterprise divisions. With combination of Klaytn features, including low-latency network responsiveness, reliable yet powerful transaction throughput, flexible scalability through Service Chains, and transaction fee subsidization for end-users, the BApp designers will be liberated to deliver the best experience for their customers. We are working with some of the most globally powerful firms and businesses in diverse industries whose mission is to create substantial real use cases of blockchain technology.For more information on our technology, business, partners, communities, and token economy, visit our official webpage at www.klaytn.com.This is just the beginning. More exciting stories to come. Can’t wait to connect with you all.Cheers,Team Klaytn[Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_official[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides an easy development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Come sit under our tall, tall Cypress tree— Klaytn mainnet is here for you to explore. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 27

Introducing Klaytn Governan...

Klaytn believes that the contributors who build and grow the platform with their interests aligned with the platform’s long-term development are the most qualified entities to undertake Klaytn governance.Committed to generating long-term growth of Klaytn, Klaytn Governance Council is an alliance of multinational businesses and organizations, responsible for platform governance, consensus node operation, and ecosystem growth. The Council consists of 23 global top-tier companies that have successfully produced massive user-based popular services in various industry domains including IT, telecommunications, content, game, and finance.They are also key business units of some of Asia’s largest conglomerates. Considering the region’s booming market with its strong drive towards blockchain implementation for new business models and the wider audience eager to embrace new technologies, the assembled alliance is expected to usher in a new era of blockchain through Klaytn. The geographic proximity among the participating Council members centered around Asia allows greater cross-border synergies and blockchain-based joint enterprises to occur among differing industries beyond the platform co-operation.As key decision makers for business and technical agenda, the Council members are responsible for operating the consensus node network. Undertaking the Klaytn platform ownership, Klaytn Governance Council also works towards developing blockchain services to be operated on Klaytn and accelerating user acquisition at a great scale for the wider audience to experience blockchain-powered services.The participating Council members include ‘LG Electronics,’ ‘LG Uplus,’ ‘LG International’ along with ‘Celltrion,’ one of the largest biopharmaceutical companies in Asia with $2.5 billion market value. Other notable members are ‘Netmarble,’ the no. 1 game developer and publisher in Korea; ‘Wemade,’ the popular game developer company with its diverse portfolio of IP’s, most notably the ‘Legend of Mir’ with over 500 million users; ‘Pearl Abyss’; the developer of MMORPG ‘Black Desert,’ the globally famous game around 150 countries; ‘PUBG,’the no. 1 paid game company in the world, boasting its famous ‘PlayerUnknown’s Battlegrounds’; ‘Neoply,’ the investment arm of ‘Neowiz,’ one of the largest gaming companies in Korea; ‘FSN,’ the IT development company that incubated Six Network, providing financial services and digital asset wallet in Thailand; ‘Kakao,’ the no. 1 mobile platform in Korea, together with its subsidiaries including ‘Kakao Pay,’ ‘Kakao Page,’ ‘Kakao Games,’ and ‘Kakao IX.’Further, ‘Union Bank of the Philippines (UnionBank),’ one of the largest banks in the Philippines, along with ‘Axiata Digital and Axiata Digital Service Indonesia’ the digital services arm of the largest telecommunications conglomerate in Southeast Asia, ‘Axiata Group,’ and ‘HashKey,’ the strategic partner of China’s ‘Wanxiang Blockchain Labs’ and the Hong Kong-based fintech group are also joining Klaytn. Further, ‘Everrich,’ the real estate developer heavily focused in Southeast Asia; ‘Hi Inc.,’ the Hong Kong-based unicorn company engaged in global travel and lifestyle business providing services to hotels; ‘Cocone,’ the leading social network digital content company from Japan; and ‘gumi Inc.,’ the leading global mobile game publisher and developer headquartered in Japan, are also part of Klaytn Governance Council.As the Klaytn platform and its ecosystem continue to expand at an advanced speed, Klaytn plans to invite competent service providers to become the potential members of the Council. The candidates will be reviewed through Klaytn Governance Process.For more information, visit our website at www.klaytn.com.[Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_official[About Klaytn]Klaytn is a public blockchain platform of the leading South Korean mobile platform, Kakao. Dedicated to validating the value and utility of blockchain technology by providing a blockchain service for mass adoption, Klaytn provides an easy development environment and friendly user experience. Klaytn seeks to continue advancing the platform to offer blockchain services for millions of users.Introducing Klaytn Governance Council was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 26

Introducing PoC & KIR

Introducing Klaytn PoC & KIRKlaytn established economic growth and distribution as one of the core design principles. As such, Klaytn identifies economic entities that contribute to sustainable growth of the platform and provide compensation and support commensurate with each participant’s level of contribution. We thus operate two programs in which anybody can participate and receive rewards based on his or her contribution level, namely Proof of Contribution (POC) and Klaytn Improvement Reserve (KIR).Proof of Contribution (PoC) assesses the contribution level of all economic entities within the Klaytn ecosystem and provides rewards in KLAY that correspond to each entity’s level of contribution.Klaytn Improvement Reserve (KIR) is allocated for anybody committed to maintaining sustainable ecosystem growth through platform development or community building efforts.*They are not ad hoc promotions but regular programs to be run while the Klaytn platform is in operation.Proof of ContributionProof of Contribution is designed to encourage and incentivize all participants within the Klaytn ecosystem to spontaneously engage in economic activities by creating and exchanging values with one another. Such activities collectively build up an economy of circulating wealth that helps improve the stability of the Klaytn platform and also drives economic growth of the entire ecosystem.In order to maintain the network and strengthen the economic growth at a greater scale, Klaytn compensates more diverse forms of contributions from a wider range of participants. In doing so, Klaytn rewards all economic entities in the Klaytn token economy that make meaningful contributions via transparent evaluation and incentive mechanism.Proof of Contribution aims to assess the contribution level of all economic entities and provide rewards that correspond to each entity’s level of contribution. PoC primarily focuses on two types of economic entities: service providers and end users.Service ProvidersTo achieve mass adoption of blockchain technology, it is important to implement and leverage widely popular blockchain applications to create a solid foundation of end users who discover value from such applications. Our service providers play a key role in the Klaytn economy as entities on the supply side. They not only create supply of services to satisfy our end users, but also serve as channels of new user acquisition and as anchors of user engagement. Acknowledging their contributions, Klaytn is designing PoC as an incentive mechanism for service providers to effortlessly join the Klaytn platform and enjoy sustained support as they continue to grow in our ecosystem.End UsersKlaytn is currently reviewing the potential for enabling PoC an incentive mechanism for end users as well. Our end users are the fundamental driving force behind economic growth as the primary demand-side entities, creating valuable market signals by carefully selecting and using services and sharing reviews with each other. During the early operation period of the Klaytn platform, we will analyze the user behavior in order to formulate a method of quantitatively assessing a user’s contribution to the platform.For more information on Proof of Contribution, please refer to Klaytn Docs — Proof of Contribution Operation Plan.To apply for Proof of Contribution, fill out the PoC Application form.Klaytn Improvement ReserveKlaytn also operates the Klaytn Improvement Reserve (KIR) for sustainable ecosystem growth. As technology continues to improve and as the needs of users change over time, our platform must be able to quickly adapt to new circumstances that arise. To respond to such changes, Klaytn Governance Council will make spending decisions for three main categories to maintain Klaytn ecosystem:PlatformEngage in research and development, and support infrastructureToolsCreate better development environment and enhance developer experienceCommunityDevelop programs to encourage participation in the Klaytn ecosystem including community events, meetups, hackathons, etc.*We encourage all participants in the Klaytn ecosystem to submit KIR proposals.Committed to sharing the economic growth among service providers and users, Klaytn supports diverse activities and collaborations that can contribute to expanding the Klaytn community and triggering the mainstream adoption of blockchain experience.Join now! The more meaningful contributions you make, the more rewards you are given. For more information, visit our official webpage at www.klaytn.com. We also updated the Token Economics & Governance Paper on the Technology page.Cheers,Team KlaytnIntroducing PoC & KIR was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 26

Interested in building the ...

Klaytn Build Program — The 1st Seed AnnouncementWe previously released the private testnet, Aspen and the public testnet, Baobab. As we’d say, we planted Aspen and Baobab, and we are planning to plant more seeds within our ecosystem to build a big forest. To begin, we are kicking off ‘Klaytn Build Program’ to invite developers to create developer tools to enhance the Klaytn platform usability. This program enables developers to dive into the Klaytn ecosystem to develop, improve, and stabilize the Klaytn platform together.For the ‘1st Seed,’ we would like to focus on language translation and creating tutorials or BApp (Blockchain Application) demos. The contributors will be rewarded with Klaytn’s token, KLAY, based on the level of contribution at each task. We plan to run this program on a regular basis, and the next announcement for the ‘2nd Seed’ will be made right here on our Medium page, so make sure to stay tuned.The 1st Seed — Klaytn Build Program 2019Task 1: Language TranslationThe Klaytn Docs and the online Klaytn lectures are available in English language only as of now, so we would like to invite developers to translate them into other foreign languages. By providing Klaytn materials in multiple languages, we would like to invite all developers worldwide to join our platform without any language barriers. We believe that the participating developers themselves would be the most talented translators. The more languages become available, the more different ideas shared on Klaytn. Be the first contributor from your country.Task 1–1: Klaytn Online Lecture Subtitle TranslationKlaytn Online Lecture Subtitles:You can check out the Klaytn lectures on YouTube or Inflearn.Languages: Vietnamese, Thai, Japanese, Chinese, Korean*Should you prefer to work with any other languages, feel free to let us know by writing to us at [community@klaytn.com].Contribution Steps:1. Go to GitHub (Task 1–1 Klaytn Online Lecture Subtitle Translation).2. Commit translated work in the language folder you want to translate.3. Translate based on the English text in the ‘English’ folder. *Please do not change anything in the ‘English’ folder.4. Feel free to provide feedback and suggest other amendments if needed. We encourage you to collaborate amongst yourselves.5. Your pull requests will be reviewed and merged by our team.Range of Bounties: 4,000 KLAY**This is based on the full translation of 1 language. You will be rewarded based on several criteria including the portion of your contribution, being the first contributor, and contributing as the second revision translator, etc.Note:1. Start: 2019.06.05 Deadline: 2019.07.262. Please don’t change anything in the ‘English’ folder.3. We may consider giving the commit approval permission to an active user in the long term.4. Once all the translations are finished, the final results will be applied to the subtitles of Klaytn YouTube videos.Task 1–2: Klaytn Docs TranslationDetails for this task will be announced after the mainnet launch.Task 2: Klaytn Tutorial and BApp DemoIt takes a certain amount of time for everyone to learn something new, but if you are provided with useful educational materials, you can speed things up! In order for our developers to easily understand and use Klaytn, we are inviting you to make Klaytn tutorials and BApp demos. The contents may include what to set up before using the Klaytn platform, how to develop BApps on Klaytn, and whatever else you think it’s necessary or helpful for the Klaytn users. There is no specific requirement as to what you may or may not do, so explore as much as you can.Contribution Steps:1. There are two options to choose from. You may also do both options: - Option A: Create tutorials that outline Klaytn or teach other developers how to use Klaytn. - Option B: Create demo contents that describe the BApp development process. You can refer to the tutorial contents on our Klaytn Docs (https://docs.klaytn.com/tutorials).2. Please send your final projects in formats of either Google Docs or md file to [community@klaytn.com].3. After submitting the final results via e-mail, please let our team know of your submission on Slack channel (channel ‘result_share’) so that we can confirm.Range of Bounties: 500 – 25,000 KLAYNote:1. Start: 2019.06.05 Deadline: 2019.07.262. After Klaytn Team’s review, the selected contents will be exposed to the official Klaytn Docs.How to Communicate with the Klaytn TeamEvery contributor is encouraged to join Slack for further communication. By using the Slack, you will receive updates from Klaytn Team, ask questions regarding your task, and communicate with other developers. The detailed rules are provided accordingly if needed. We will also update on the next bounty program on the Slack.How the Amount of Bounty is DecidedOur internal technical writer and developers will be examining the submitted results. After the thorough review, the reward will be provided considering the complexity, completeness, and the level of difficulty. For the language translation tasks, the following criteria will be considered: the portion of your contribution, being the first contribution, and contributing as the second revision translator, etc.How to Claim Your BountyKlaytn Team will be reviewing all submissions and Github after the deadline. We will then select the contributors for each task, and reward them accordingly by sending KLAY via e-mails. The notice for reward distribution will be announced at the end of 2019.*We will reward more for those who contributed more.AcknowledgmentFor Task 1, your pull requests of the translation will be applied to our GitHub, and you will be acknowledged as a contributor. For Task 2, the selected contents will be uploaded on the official Klaytn Docs with your name.Legal StatementKLAYTN BUILD PROGRAM IS NOT BEING OFFERED AND IS NOT AVAILABLE IN THE UNITED STATES, CHINA OR THEIR AFFILIATED TERRITORIES. IF YOU ARE(I) U.S. PERSON (AS DEFINED IN RULE 902(K)(1) OF REGULATION S UNDER THE U.S. SECURITIES ACT OF 1934, AS AMENDED), OR (II) RESIDENT, LOCATED, DOMICILED, INCORPORATED OR ESTABLISHED, OR CONDUCTS BUSINESS IN THE PEOPLE’S REPUBLIC OF CHINA (EXCLUDING THE SPECIAL ADMINISTRATIVE REGIONS OF HONG KONG AND MACAU, AND THE TERRITORY OF TAIWAN) (“PRC”) (INCLUDING, FOR THE AVOIDANCE OF DOUBT, A PERSON OF DUAL OR MULTIPLE NATIONALITIES WHO HOLDS A PRC PASSPORT), YOU ARE NOT ELIGIBLE TO PARTICIPATE IN THIS PROGRAM AND WILL NOT RECEIVE ANY REWARDS. KLAYTN WILL STRICTLY ENFORCE THIS RULE VIA OUR KYC PROCEDURES.The notice for the receiving date will be announced at the end of 2019. In order to claim or receive any of the rewards after the notice, you will be required to provide certain identifying documentation and information. Failure to provide such information or demonstrate compliance with the restrictions herein may result in forfeiture of all rewards, prohibition from participating in future Klaytn programs, and other sanctions.Your submission of your program (the “Program”) to the Klaytn Build Program will constitute your representation, confirmation, and authorization to Klaytn that the Program may be released under an open source license. LGPL (Lesser General Public License) will be applied to the Program. You are not entitled to claim any infringement of proprietary rights for the Program, such as copyright infringement or license breach, so long as Klaytn or any third party complies with the open source license.You hereby guarantee and acknowledge that the Program does not infringe any copyright, license, patent, trademark, trade secret or other proprietary rights of any third party. You will be liable for any damages, including but not limited to damages due to any infringement of a third party’s proprietary rights, incurred in connection with the Program.More detailed announcements regarding the Klaytn Build Program will be made on Medium and Slack.Join Klaytn’s community on Facebook, Reddit, and Twitter for more.Cheers,Team Klaytn[Klaytn official community]Homepage: http://www.klaytn.comTwitter: http://twitter.com/klaytn_official[About Klaytn]Klaytn is a service-centric blockchain platform providing intuitive development environment and friendly end-user experience. It is built upon solid reliability and significant stability with substantial service development for mass adoption. The platform allows real world applications of large scale to be produced right away so that our end-users can make full use of services without much expertise in blockchain or cryptocurrency. Klaytn seeks to convey the value and potential of blockchain technology to people.Interested in building the Klaytn ecosystem? Join Klaytn Build Program. was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 05

Diversity in Blockchain Ser...

Dear readers,We are excited to introduce the first interviewee for [Diversity in Blockchain] series, Songyi Lee. She co-founded 37 Coins and worked for Metadium as Chief Strategy Officer. She refers to herself as “the pioneer of blockchain diversity”. As an early female player in the blockchain industry, she has prioritized her efforts on solving real-world problems by using blockchain technology. And now, she is on a quest for her next destination.In addition to ‘the pioneer of blockchain diversity,’ Songyi has quite a number of other descriptions that did not seem to match the co-founder or CSO position at a private firm:Zentrepreneur¹, Creative Director, Host of guesthouse named ‘B-Salon’…When you introduce or describe yourself in a professional setting, it is typical to use your company name or position. But Songyi’s identity, expressed by her various experiences and personal values, puzzled us; it was difficult to get a full grasp of her. It was only later we realized that all of this complexity is perhaps what makes her just the right person to be the first interviewee for [Diversity in Blockchain] series.After the interview, we could sense that her complex personal inclinations, experiences, and thoughts all converge into one story and create one individual named ‘Songyi Lee.’ She focuses fully on discovering herself and listening to her voice.#The Blockchain Journey Narrated by A Self-ExplorerWhile she has various modifiers to explain herself, her favorite is ‘self-explorer.’ As ‘self-explorer,’ she has been able to ponder about her wants and needs, what she can do to change the world, and take actions. Then, what could have made this self-explorer dive into the world of blockchain?“As a self-explorer, I have been able to examine my own special capabilities and potentials. Through the process, I believed that it was my job to actively understand and solve real-world problems. I studied social welfare in college and worked at World Vision, the international humanitarian organization. While working at World Vision, I had an incident with a refugee, which ultimately led me to step into the business of blockchain. During a business trip to Mali in West Africa back in 2013, I met a refugee named Fatima, who had been subsidized by her husband in Côte d’Ivoire and living off a bag of money that had been handed to her. I was shocked to find that there were still people like Fatima, who seemed so far away from the kind of world that we were living in. In “our” world, we could send as much money as we wanted to our friends and families living abroad through our online banking system. Witnessing the gap between these two different realities — one that actively uses technology and the other that doesn’t — I had an intense desire to close this gap.”Songyi then co-founded 37 Coins, a service by which people could send receive Bitcoin via SMS. Although 37 Coins did not last long due to market limitations, she was not discouraged to consider the potential of blockchain technology as a useful tool to resolve many social problems. Rather, her failure encouraged to study harder and deeper.(Source: 37Coins)“When I started 37 Coins business, it was not easy to implement the features I wanted, as the technology was not mature, the team was small, and also there were not enough resources to work with. Besides, I did not have enough time to fully understand and communicate with the team members who came from diverse backgrounds. It was only after the 37 Coins project failed that I started to have fundamental questions about myself. I was exhausted both mentally and physically, but at the same time, rather ironically, I was given an opportunity to look deep inside of me to think about who and what I really am, how I cope with disasters, and what it is that I really want. Such questions gave me the power to stand on my own and gave me a chance to live my life thoroughly, not controlled by others or my external surroundings.”Running a startup company was definitely not a simple task, and returning to the blockchain industry would have been a much more difficult decision, we assume.“Although 37 Coins failed to prove its business model in the market, I was able to better understand the philosophy behind blockchain technology and the potential social impact that blockchain could create. The industry grew at a fast pace and the market perceived the technology only as a tool for speculation. My colleagues and I were overwhelmed by the rapid speed at which blockchain technology was growing, and at the same time, feeling a bit deprived by the new-rich who have recently profited enormously out of the crypto investment. In the midst of this crypto craze, I wanted to contribute to shaping the direction that this industry is heading in a more positive light.”(Songyi Lee at CoinSummit 2014)#Self-Sovereign Identity — the Answer to Who I AmReturning to the blockchain industry, Songyi decided to work at Metadium hoping to find an answer to the question that she has always posed: who am I? The current identity system in society does not allow the actual owner of the identity to control his or her data; instead, it is owned and managed by a central entity or organization. On the other hand, when the data is leaked, it is not the central entity that is damaged, but the owner. It is estimated that there are about 1.1 billion people² in the world including women, children, and refugees living without official identities. This is not to be overlooked as it means that they would not be able to integrate into a social system without official identities. For instance, they cannot receive basic support such as education or healthcare from the government. It is almost as if they are invisible, excluded, and completely powerless.On the contrary to the traditional registration system that consists of specifically given numbers like Social Security Number(SSN), Metadium breaks away from this traditional concept of identification to pursuing an idea of considering a variety of factors and elements to define a single identity. Name, age, occupation, academic background, as well as preferences, religion, and sexual orientation are the elements that express and reveal ‘oneself.’ The individual characteristics that are presented online and offline spaces also have to be recognized as their unique identities. In order to implement this new concept of identity, a secure and convenient identity verification solution is needed. And Songyi believed that blockchain technology could provide the solution to this identity issue, which is also the question she had for herself.The Self-Sovereign Identity model enables individuals to not only possess sole ownership over their online and offline identities but also control the sharing and distribution of their personal data. With this model, the individuals have the power to own, manage, and utilize their identities without any intermediaries. A single company doesn’t — and also shouldn’t — have all the solutions, and the fact that there are many companies and projects working on identity solutions shows that there is so much to be done in this realm. She is again looking for the new space to contribute her experiences and insights.#Individuality and Diversity“There are no two people in the world who are exactly the same. That is why we must live as ourselves, and make sure that the answer to ‘who am I?’ is reflected in our identity. The world will then be made up of truly diverse individuals. We must recognize and support the characteristics and potentials of every individual. In reality, however, such diversity is often deemed as a cause of conflicts and problems. People form groups and cliques by putting themselves under a single frame rather than recognizing each unique individuality. Conflicts arise among differing groups — women v. men, old v. young, native-born v. immigrants, those with disabilities v. those without, etc. People often generalize a person’s characteristics as the entire group’s characteristics. “Why do women behave that way?” “Why are young people like that?” On the other hand, there can always be ‘good’ conflicts that can contribute towards making a better society and not leave hate. Such ‘good’ conflicts start when people become more open-minded to diversity and understand others’ potential. Blockchain is a kind of technology that can identify and test the potentials of individuality and also realize democratic, fair, and transparent values.Songyi believes in the power of communities consisting of autonomous individuals who seek to define their identities from fresh perspectives. Throughout her career journey and personal life, Songyi has explored the philosophy and characteristics of blockchain, such as community, autonomy, and decentralization. We are happy to have another story of why we should value and acknowledge personal identity and diversity from her valuable experiences as well as the self-sovereign identity project, which seeks to give people their own unique identities.[1]: Zentrepreneur is a newly coined term combining words ‘zen’ and ‘entrepreneur,’ and is used to refer to an entrepreneur who adheres to the core essence of values[2] “Identification for Development Global Dataset | Data”. data.worldbank.org. Retrieved 2017–11–28.Diversity in Blockchain Series #2: Songyi Lee, the Pioneer of Blockchain Diversity was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 03

Diversity in Blockchain Ser...

Hi readers,We are delighted to introduce to you a new series: [Diversity in Blockchain]. As Klaytn is dedicated to mainstream adoption of blockchain, it is important to explore the greater ecosystem and observe the works and visions of those who are contributing to this ecosystem. This [Diversity in Blockchain] series will be an opportunity to shed light on unique stories, works, and impacts that individuals around us are making.#squatforchange(Source: Instagram@3boys_1goal)#squatforchange is a trending hashtag that has recently echoed throughout Instagram. A man had to squat down to change his baby’s diaper in a men’s washroom that had no diaper changing station. After this post went viral on Instagram, many fathers shared their similar experiences. One said he had to take off some of his clothes and put them on the bathroom floor to take care of his baby’s diaper.The preconceived notion that mothers are the only ones to change diapers has given some men uncomfortable experiences with their babies at men’s washroom where there is no diaper changing station installed. Why do we still somehow believe that it is only women who take care of children? Washrooms are just one example. Many services and products we use in our daily lives may also be equipped with such prejudices and inconveniences without us even realizing them.There are, however, some efforts that seek to reflect the diverse demands of people to the services and products that we use.#toylikeme(Source: Toy Like Me Facebook)Toy Like Me, a campaign that first started in the U.K., calls on toy manufacturers to make toys that reflect various human physical features and characteristics. By playing with toys that resemble themselves, the children with disabilities or diseases can recognize that their differences are not so ‘different’ after all. They also learn to accept themselves just as they are. A number of big toy brands like Playmobil and Lego are attempting to reflect such diversity to toy design and manufacturing, and by doing so, they are sending a powerful message that everyone should be included and celebrated.#emoji(Source: Unicode Blog)The Unicode Consortium is a non-profit corporation devoted to developing, maintaining, and promoting software internationalization standards and data, particularly the Unicode Standard, which specifies the representation of text in all modern software products and standards. Last February, Emoji 12.0 data has been released with 59 new emojis, including emojis for hearing aid, wheelchair, mechanical arm and leg, cane, and guide dog. This update is the result reflecting the voices that there are not enough emojis to express the emotions and feelings of those who live with disabilities.-We live together with a variety of people with diverse characteristics whether they be gender, religion, language, race, or sexual orientation. In addition to such varying external features and appearances, we all have individual tendencies and characteristics, which we want to be able to express through the products and services we use. To meet such desires and needs, the services and products must be able to capture the diverse characteristics and individual behavior patterns of people. In particular, a kind of world that technology embodies should be able to reflect a broad spectrum of varying perspectives, because a kind of bias that the technology connotes could be rather frightening.Let’s take a look at the AI — Artificial Intelligence — cases. According to a Fortune news article published last October, Amazon has developed an AI-powered recruitment system based on people’s resumes accumulated over the past 10 years. This system, however, downgraded resumes with the word “women’s” in them, and also marked lower scores to those who graduated from women-only colleges. Amazon’s efforts to improve its system failed and ultimately had to kill the entire project in 2017.The results of an AI-powered beauty contest held by a group of scientists in Russia in 2016 are also a similar case. When a contestant sends her headshot, the artificial intelligence, supported by complex algorithms, would make evaluations on her beauty by examining various factors including facial features, symmetry, wrinkle marks, etc. However, because the system considered light skin-colored contestants to be more attractive, only 1 out of 44 finalists turned out to be a dark skin-colored contestant. Meanwhile, Google also had to officially apologize because Google Photos auto-tagged colored people as gorillas.It is dangerous to assume that technology can solve all the problems of this society. Technology is not a ‘cure-all.’ Only when those who develop and utilize technology have balanced and open perspectives can technology contribute towards creating more positive impacts with inclusivity and openness.-The blockchain technology is often dubbed as the potential game-changer for diverse industries and markets, and it is thus necessary for those who utilize blockchain to consider the potential issues of diversity and inclusion in advance. We need to make rooms for blockchain to grow into a safer and more reliable technology with robust security. It must be able to meet the diverse needs of end users and reflect such needs in blockchain application services.In addition, the distinct characteristics of blockchain technology also point that we must take diversity into a great consideration. The nodes in a blockchain network must reach a consensus in the process of recording and modifying data. In doing so, the process and standards of reaching a consensus as well as the governance model should be created in a systematic manner in order to avoid the unfair decision.The nodes are also rewarded in proportion to their contribution to the network. The same is true of the application services created based on this underlying technology. In the blockchain world, a new economic or social model can be established in which anybody who contributes to the network can benefit based on his or her contribution. That naturally leads to the importance of considering issues of how much incentives will be rewarded to whom in which occasions when designing a token economy.-Klaytn is a public blockchain platform. It is a playground upon which service providers and users can freely interact. In doing so, Klaytn strives to be as inclusive and universal as possible, not being wholly owned by any single entity. The ‘platform’ is supposed to be open for everyone. The more diverse stakeholders behave positively within the platform, the higher the platform’s value becomes.To this end, we Klaytn will use our ‘diversity lens’ when developing the platform and partnering with various service providers with whom we build together our ecosystem. Just as a person with poor eyesight wears glasses to see things more clearly and accurately, we seek to approach potential issues with inclusive and universal perspectives so that they can transform into new innovations. Such ‘diversity-lens,’ ‘gender-lens,’ and ‘minority-lens’ can hopefully contribute to taking greater opportunities and many more possibilities into consideration when developing our Klaytn platform.We plan to explore the greater blockchain ecosystem by working with those who make up this ecosystem with their diverse experiences and backgrounds. This [Diversity in Blockchain] blog series will attempt to shed light on their unique stories, their works, and the impacts they are creating. We hope this series can provide the opportunity to broaden our perspective with which we examine the blockchain technology and industry.Diversity in Blockchain Series #1: Why Diversity Matters to Us was originally published in Klaytn on Medium, where people are continuing the conversation by highlighting and responding to this story.

Klaytn

19. 06. 03

Transaction History

Preparing to be listed on cryptocurrency exchanges
Please leave a message of support for the team

go to leave a message

Security verification

There is security verification of the project
Why security verification is necessary?

Read more

comment

* Written questions can not be edited.

* The questions will be answered directly by the token team.

Information
Platform KLAY
Accepting
Hard cap -
Audit -
Stage -
Location -