Edge darkening happens because you look into the edge at penetratable angle, but from there on is an endless loop of total internal reflection as the ray bounces from one face to the other and angle is never head on enough to penetrate. Glass absorption is normally slightly green. When looking head on it’s pretty much invisible (consider window glass). But when looking edge on it’s a very dark green appearance because the ray goes through so much more material due to total internal reflection (never escapes).
A trick you can use, with all bounces set to something crazy like 256, is to plug in a pure red emission shader at the bottom socket of a mix shader, controlled by a light path/ray depth through a math node greater than 4 check. With interactive rendering on, increase the greater than check until the red disappears. On my very simple test glass I even have red showing up at 12.
Expanding on that trick is to use an environment texture (based on reflective coords) driving the emission shader. I can now set max bounces back to a more sensible 4. It won’t produce the realistic image, but it will get rid of the “black edge caused by too few bounces syndrome”. It’s a hack, it’s inaccurate, but rendering glass with tons of bounces is usually unacceptable to me. Hell, even for glass panes I’ll fake it using transparency based and do the green edge darkening based on normal not being transparent if needed (usually the edge is hidden in a frame though, but glass fencing/railing could have it visible). Do it correct and by brute force only if you can afford the rendering times involved.
The setup I mentioned would look something like this: