{"author":{"address":"0x56af91a252c1009c5a065eac15aa2ec9a278a0dd","user":"https://learnblockchain.cn/people/16052"},"content":{"body":"\u003e 啊，TON区块链，一个智能合约至高无上的领域，以其坚定不移的忠诚执行着编程逻辑。但即便是这些数字居民，也无法免受时间的流逝和不断前进的进步的影响。\r\n\u003e 今天，我们踏上了一段旅程，一段转变的旅程，我们学习更新和增强这些合约，使它们在面对不断演变的数字景观时永葆青春。\r\n\r\n# 智能合约 - TON的起源\r\n\r\n起初，有了代码，它是好的。\r\n\r\nTON区块链上的智能合约就是这种代码的体现，它们分别驻留在各自的寄存器中（`c3`用于逻辑，`c4`用于存储）。\r\n\r\nTON之所以与众不同，在于它独特的能力，允许这些合约进化，无需重新开始就能更改代码。\r\n\r\n这就是我们故事的开端。\r\n\r\n# 升级的必要性与理由\r\n你可能会问，为什么要费劲去升级这些合约？原因多种多样且令人信服：\r\n- 消灭漏洞：数字世界充满了脆弱性。升级就像是在时间围攻和潜在攻击的箭雨中加固城堡。\r\n- 新特性：添加新功能就像教老狗新把戏，只不过这里的狗是智能合约，而把戏就是你想实施的任何创新想法。\r\n- 效率：有时，升级就像调整乐器，使其演奏性能和性价比的旋律更加甜美。\r\n\r\n# `SimpleContract` 的转型\r\n我们从 `SimpleContract` 开始我们的旅程，这是一个朴素的合约，**只能增加计数器**。但我们的野心更大；我们希望它也能**减少计数**。\r\n\r\n### 第一步：SimpleContractV2的诞生\r\n我们创建了一个新合约，`SimpleContractV2`，它是原始合约的孩子，赋予了**减少计数器**的额外能力。这是我们转型旅程的第一步。\r\n\r\n### 第二步：编写新逻辑\r\n\r\n新逻辑，就像准备盛大宴会的食谱，必须精心准备。我们将 `SimpleContractV2` 编译成区块链能理解的包，这个包包含了我们新功能的种子。\r\n\r\n### 第三步：转型的信息\r\n\r\n我们向区块链发送一条信息，一个宣布新包到达的使者。这条信息触发了`set_code`函数，合约就像蛇蜕皮一样，穿上了新装。\r\n\r\n### 第四步：火的考验\r\n\r\n真相时刻到来了。我们命令新升级的合约**减少计数器**，如果它听从，如果它服从，我们的旅程就成功了。\r\n\r\n# 超越代码 - 双重升级\r\n\r\n但我们的旅程并未结束。如果我们想改变的不仅仅是合约的思维（代码），还有它的记忆（数据）呢？在我们故事的下一章中，我们将深入探讨升级智能合约的大脑和记忆的艺术。\r\n\r\n**存储升级的原因**：\r\n- **结构改进**：就像建筑师细化蓝图一样，我们可能会找到更好的方式来组织合约的数据。\r\n- **新数据字段**：随着合约的成长，它可能需要存储新的信息，就像学者需要更多的书籍来扩展他们的知识。\r\n- **数据访问优化**：高效的数据处理可以比作一个运转良好的机器，确保我们的合约运行顺畅且性价比高。\r\n\r\n# 存储升级的六个步骤\r\n我们的道路是明确的，但必须小心翼翼地走。以下是我们将遵循的步骤：\r\n1. **规划**：就像将军策划战役一样，我们必须决定对存储进行哪些更改。\r\n2. **代码更新**：我们更改合约代码以反映新的存储结构，就像重新组织图书馆的书架。\r\n3. **迁移脚本**：这个脚本是指南，将旧数据转换为新格式而不会丢失任何珍贵的字节。\r\n4. **部署**：我们编译并部署更新后的合约，将其发送到区块链上执行我们的命令。\r\n5. **升级信息**：我们发送此信息，触发升级并应用迁移脚本。\r\n6. **测试**：我们测试合约，确保新的存储按预期工作，所有数据都已正确迁移，并且新功能与它正确交互。\r\n\r\n# 风险与回报\r\n我们的旅程充满了危险，但回报是巨大的。\r\n\r\n我们必须警惕数据丢失，规划潜在的停机时间，并应对迁移的复杂性。但通过谨慎的规划、彻底的测试和清晰的沟通，我们可以取得胜利。\r\n\r\n# 结论\r\n\r\n于是，我们的旅程结束了。\r\n\r\n我们学会了在TON区块链上更新智能合约的艺术，包括它们的`代码`和`存储`。我们穿越了转型的复杂性，现在我们的合约焕然一新，准备好面对不断变化的数字领域的挑战。\r\n\r\n在我们告别之际，请记住这一点：**精通的关键在于持续学习和适应。** 区块链世界在不断发展，我们也必须如此。请留意我们的下一份报告，届时我们将更深入地探讨智能合约维护和优化的奥秘。\r\n\r\n直到那时，愿您的合约永葆青春，您的编码旅程充满奇迹和发现。祝您编码和升级愉快，区块链探险者们！","title":"TON区块链上智能合约进化的艺术：初学者的旅程"},"history":null,"timestamp":1725687350,"version":1}