Homework 1: Amendment Status Analysis

← Back to Amendments I: Lifecycle and Core Protocol Impact


Objective

Analyze in detail the status of an amendment on the XRPL Mainnet, interpret the response fields of the feature command, calculate the activation timeline, and assess the protocol impact of the amendment.

Format: Written report (Markdown or PDF) with screenshots and code used


Task

Connect to a public XRPL node, choose an amendment, analyze its complete status, and document its impact on the protocol.

Requirements

  1. Connection and Discovery

    • Connect to a public XRPL node (https://xrplcluster.com/ or https://s1.ripple.com:51234/)

    • List all amendments with feature (HTTP or CLI)

    • Count how many are enabled, in majority, and voting

    • Document the chosen node and its server_info response

  2. Amendment Selection

    • Choose an amendment not yet activated (enabled: false) but with votes (count > 0)

    • If all are activated on Mainnet, use Testnet/Devnet

    • Query the specific amendment: rippled feature <HASH>

    • Capture the complete JSON response

  3. Field Analysis

    • Interpret each response field:

      • name: Name and functionality (search for XLS if available)

      • count: Number of validators voting for

      • validations: Total number of trusted validators

      • threshold: Required threshold (floor(validations * 0.8))

      • Calculate percentage: (count / validations) * 100

      • Verify if count > threshold (more than 80%)

      • majority: Timestamp if threshold exceeded (convert to UTC date)

      • enabled: Is the amendment activated?

      • supported: Does the node support this amendment?

  4. Timeline Calculation

    • If the amendment has a majority, calculate the activation date:

      from datetime import datetime, timedelta
      
      def calculate_activation(majority):
          ripple_epoch = datetime(2000, 1, 1)
          majority_dt = ripple_epoch + timedelta(seconds=majority)
          activation_dt = majority_dt + timedelta(weeks=2)
          return {
              'majority_date': majority_dt.isoformat(),
              'activation_date': activation_dt.isoformat()
          }
    • Create a visual timeline showing: Code Release → Vote → Majority → Activation

  5. Protocol Impact

    • Search for amendment documentation (XLS, GitHub, XRPL.org)

    • Document:

      • New transaction types introduced

      • New ledger entry types

      • Modifications to consensus rules

      • Impact on applications (wallets, exchanges)

    • Assess risks:

      • Risk for non-updated nodes

      • Dependencies with other amendments

      • Contingency plans if bug discovered post-activation

  6. Pseudo-transaction Search (Optional)

    • If the amendment has a majority, search for the EnableAmendment transaction with flag tfGotMajority (65536)

    • Use an explorer (Bithomp, XRPScan) or the ledger API with the estimated ledger number

    • Document: transaction hash, ledger, flags


Deliverable

Your report must include:

  • Connection:

    • URL of node used

    • Amendment statistics (total, enabled, in majority, voting)

    • Screenshot of server_info

  • Amendment Analysis:

    • Name and hash of chosen amendment

    • Complete JSON of feature response

    • Interpretation table of all fields

    • Support percentage calculation

  • Timeline:

    • Majority date (if applicable)

    • Expected activation date (if applicable)

    • Complete visual timeline

    • Python/JavaScript code used for calculations

  • Protocol Impact:

    • Transaction types added

    • Ledger entry types added

    • Rule modifications

    • Impact on applications

    • Risk assessment (1 page)

  • Pseudo-transaction (optional):

    • Hash and ledger of tfGotMajority transaction

    • Link to explorer

  • Appendices:

    • Complete source code used

    • Screenshots

    • References (XLS links, documentation)


Tips

  • Public nodes: wss://xrplcluster.com/ or wss://s1.ripple.com/

  • Explorers: https://bithomp.com, https://xrpscan.com

  • Documentation: https://xrpl.org/amendments.html

  • XLS Standards: https://github.com/XRPLF/XRPL-Standards

Useful commands:

Libraries:

  • JavaScript: xrpl.js

  • Python: xrpl-py

Additional Resources

  • XRPL Amendments: https://xrpl.org/docs/concepts/networks-and-servers/amendments

  • Known Amendments: https://xrpl.org/resources/known-amendments

  • EnableAmendment: https://xrpl.org/docs/references/protocol/transactions/pseudo-transaction-types/enableamendment


Good luck! This exercise will give you a thorough practical understanding of the XRPL amendment system.

Last updated