Preheat oven to 350°F. Grease and flour two 9-inch round cake pans, lining the bottoms with parchment paper.
In a large bowl, whisk together flour, sugar, cocoa powder, baking soda, baking powder, and salt.
Add eggs, buttermilk, oil, and vanilla extract to the dry ingredients and mix until well combined.
Gradually pour in hot water and continue mixing until the batter is smooth. The batter will be thin.
Divide the batter evenly between the prepared pans and bake for 30-35 minutes, or until a toothpick inserted into the center comes out clean.
Allow cakes to cool in the pans for 10 minutes, then remove from pans and transfer to a wire rack to cool completely.
To make the frosting, melt butter in a saucepan over medium heat. Stir in cocoa powder and buttermilk, heating until the mixture is smooth.
Remove from heat and whisk in powdered sugar and vanilla extract until the frosting is smooth and spreadable.
Once cakes are cool, spread frosting on the top of one cake layer, place the second layer on top, and frost the top and sides of the cake.
Let the cake sit for about 30 minutes to allow the frosting to set before slicing and serving.