Update ARC API To Reflect Latest Draft

by ADMIN 39 views

Motivation

The latest draft of the ARC (Authenticated Received Chain) specification includes a significant change in how the presentation limit is used. Previously, the presentation limit was baked into the credential request when a client constructed it. However, with the latest draft, the presentation limit has been moved to when a client makes a presentation from a finalized credential. This change is crucial in ensuring that the ARC API remains aligned with the published draft. In this article, we will explore the modifications made to the ARC API to reflect this change and discuss the expected API breakage.

Modifications

The primary modification made to the ARC API is to defer passing the presentation limit until a presentation is made. This change is in line with the latest draft of the ARC specification, which moves the presentation limit from the credential request to the presentation itself. By making this change, the ARC API is now more closely aligned with the published draft.

Benefits of the Change

The change to defer passing the presentation limit until a presentation is made has several benefits. Firstly, it ensures that the ARC API remains consistent with the latest draft of the specification. This consistency is crucial in ensuring that the API remains stable and predictable, which is essential for developers who rely on the API to build their applications.

Secondly, the change allows for more flexibility in how the presentation limit is used. By moving the presentation limit to the presentation itself, developers can now more easily manage the presentation limit and ensure that it is used correctly.

Result

The result of the modifications made to the ARC API is that it now more closely aligns with the published draft of the specification. This change is a significant improvement, as it ensures that the API remains consistent and predictable.

API Breakage

As with any change to an API, there is expected to be some API breakage. In this case, the change to defer passing the presentation limit until a presentation is made will result in the following breaking API changes:

- P384._ARCV1.PublicKey.prepareCredentialRequest(requestContext:presentationLimit:)
+ P384._ARCV1.PublicKey.prepareCredentialRequest(requestContext:)
- P384._ARCV1.Credential.makePresentation(context:)
+ P384._ARCV1.Credential.makePresentation(context:presentationLimit:)

As this change is behind an underscored namespace, we deem this an acceptable break. The underscored namespace is intended to indicate that the API is subject to change and that developers should not rely on it.

Conclusion

In conclusion, the update to the ARC API to reflect the latest draft of the specification is a significant improvement. By deferring the passing of the presentation limit until a presentation is made, the API is now more closely aligned with the published draft. While there is expected to be some API breakage, we deem this an acceptable change given the benefits it brings.

Future Development

As the ARC specification continues to evolve, it is likely that further changes will be made to the API. However, with the latest draft now reflected in the API, developers can be confident that the API will remain consistent and predictable.

Recommendations

Based on the changes made to the ARC API, we recommend the following:

  • Developers should update their applications to reflect the API changes.
  • Developers should be aware of the expected API breakage and plan accordingly.
  • Developers should continue to monitor the ARC specification for further changes and updates.

By following these recommendations, developers can ensure that their applications remain compatible with the latest ARC API and continue to take advantage of the benefits it provides.

References

Future Work

As the ARC specification continues to evolve, there are several areas that require further work. These include:

  • Documentation: The documentation for the ARC API should be updated to reflect the latest changes.
  • Testing: The testing framework for the ARC API should be updated to reflect the latest changes.
  • Example Code: Example code for the ARC API should be updated to reflect the latest changes.

Frequently Asked Questions

The update to the ARC API has generated a lot of interest and questions from developers. In this article, we will address some of the most frequently asked questions about the update.

Q: What is the ARC API update?

A: The ARC API update reflects the latest changes to the ARC specification, which includes moving the presentation limit from the credential request to the presentation itself.

Q: Why was the presentation limit moved?

A: The presentation limit was moved to ensure that the ARC API remains consistent with the latest draft of the specification. This change allows for more flexibility in how the presentation limit is used.

Q: What are the benefits of the update?

A: The update has several benefits, including:

  • Ensuring that the ARC API remains consistent with the latest draft of the specification
  • Allowing for more flexibility in how the presentation limit is used
  • Improving the stability and predictability of the API

Q: What are the expected API breakage?

A: The expected API breakage includes the following changes:

- P384._ARCV1.PublicKey.prepareCredentialRequest(requestContext:presentationLimit:)
+ P384._ARCV1.PublicKey.prepareCredentialRequest(requestContext:)
- P384._ARCV1.Credential.makePresentation(context:)
+ P384._ARCV1.Credential.makePresentation(context:presentationLimit:)

Q: Is the API breakage acceptable?

A: Yes, the API breakage is acceptable because it is behind an underscored namespace, which indicates that the API is subject to change and that developers should not rely on it.

Q: What should developers do to update their applications?

A: Developers should update their applications to reflect the API changes. This includes updating the code to use the new API methods and parameters.

Q: What should developers be aware of when updating their applications?

A: Developers should be aware of the expected API breakage and plan accordingly. They should also continue to monitor the ARC specification for further changes and updates.

Q: What is the recommended approach for developers?

A: The recommended approach for developers is to:

  • Update their applications to reflect the API changes
  • Be aware of the expected API breakage and plan accordingly
  • Continue to monitor the ARC specification for further changes and updates

Q: What is the future of the ARC API?

A: The future of the ARC API is to continue to evolve and improve. The ARC specification is constantly being updated and refined, and the API will reflect these changes.

Q: How can developers get involved in the development of the ARC API?

A: Developers can get involved in the development of the ARC API by:

  • Participating in the ARC specification development process
  • Contributing to the ARC API documentation and testing
  • Providing feedback and suggestions for improvement

Q: Where can developers find more information about the ARC API update?

A: Developers can find more information about the ARC API update on the ARC specification website and on the ARC API documentation page.

Q: What is the timeline for the ARC API update?

A: The timeline for the ARC API update is as follows:

  • The update is currently available for testing and feedback
  • The update will be officially released in the next of the ARC API
  • The exact release date will be announced on the ARC specification website and on the ARC API documentation page.

Q: What is the support for the ARC API update?

A: The support for the ARC API update includes:

  • Documentation and testing
  • Example code and tutorials
  • Community support and feedback

Q: What is the future of the ARC specification?

A: The future of the ARC specification is to continue to evolve and improve. The ARC specification is constantly being updated and refined, and the API will reflect these changes.

Q: How can developers get involved in the development of the ARC specification?

A: Developers can get involved in the development of the ARC specification by:

  • Participating in the ARC specification development process
  • Contributing to the ARC specification documentation and testing
  • Providing feedback and suggestions for improvement

Q: Where can developers find more information about the ARC specification?

A: Developers can find more information about the ARC specification on the ARC specification website and on the ARC API documentation page.