Preheat oven to 350 degrees F. Lightly grease a large, rimmed 12x18-inch half sheet pan.
In a large bowl, whisk together the flour, sugar, cinnamon, baking soda, and salt. Set aside.
In a saucepan over medium heat, combine the water, butter, and cocoa powder and bring to a boil, stirring to make sure there are no lumps.
Pour the chocolate mixture over the dry ingredients and stir until combined.
Add the buttermilk, eggs, and vanilla, and mix until combined.
Pour the batter into the prepared pan and spread in an even layer. Bake for 18-20 minutes until the cake springs back lightly to the touch and has barely started to pull away from the sides of the pan.
When the cake is almost done baking, start to make the icing. In a medium saucepan over medium heat, combine the butter, cocoa powder, milk, and salt. Heat, stirring constantly, just until the mixture comes to a simmer.
Immediately remove from heat and add the vanilla, then whisk in the powdered sugar until the icing is smooth. Stir in the chopped nuts. If the cake isn't ready yet, keep the icing warm and stir it every so often so it doesn't harden on top.
Let the cake cool for 10-12 minutes, then pour the hot icing over the warm cake and spread it evenly with a spatula. Let the frosting set for 20 minutes before cutting the cake into squares. The frosting will completely set after 1-2 hours.
Serve the cake warm or at room temperature.