Improving Interface Specification

Dear IC enthusiasts,

This post introduces suggestions to improve the specification of the Internet Computer’s interface.

Interface specification is of particular interest for IC agent and CDK developers and expert IC users and canister developers who want to gain deep insight into the IC’s interface, e.g., the HTTP endpoints offered by the IC or the system functions that a canister can call.

There are two main areas in which the existing specification could be improved:

  1. Versioning: While the existing specification is versioned and contains a release changelog, the IC’s subnets do not report the actual version of the specification they support. Moreover, there is no archive of past specification releases which could be an issue since not all subnets support the latest specification release at all times.
  2. Abstraction level: The specification is currently vague about certain aspects of the IC’s interface: reject codes under various error conditions, message size and message queue limits, instruction and cycle accounting, and the values of various constants are kept abstract in the specification.

Do you think addressing the shortcomings listed above would be useful? Are there any other shortcomings in the specification that you would like to see resolved? To help us prioritize the work on improving the interface specification, please give us feedback and suggestions in this thread. We look forward to the discussion.

9 Likes

Pinging @lastmjs as you might be interested in this post.