It would probably result in unexpected behavior if different Hyperdrives/Hypercores used different extensions:
const sdk = new SDK()
sdk.Hypercore({extensions: ['a']})
sdk.Hypercore(..., {extensions: ['b']})
as the first hyper* would add the extension a to the swarm but the second hypercore would have a & b (even though only a was specified). And while the first one would expect it only had a connecting to it, in the protocol it would broadcast both the availability of a and b.
For the time being I think the quickest solution to this would be that extensions are added as option to the swarm and explicitly forbidden as option to a core/drive.
It would probably result in unexpected behavior if different Hyperdrives/Hypercores used different extensions:
as the first hyper* would add the extension a to the swarm but the second hypercore would have a & b (even though only a was specified). And while the first one would expect it only had a connecting to it, in the protocol it would broadcast both the availability of a and b.
For the time being I think the quickest solution to this would be that
extensions
are added as option to the swarm and explicitly forbidden as option to a core/drive.